Ad Widget

Collapse

Windows Hosts : Hardware monitoring avec OHM

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • captainmac40
    Junior Member
    • Jul 2015
    • 5

    #1

    Windows Hosts : Hardware monitoring avec OHM

    Bonjour la communauté, pour mon premier post je vais mettre ici 2 scripts powershell que j'ai galéré à mettre au point et qui permettent de recupérer les infos "Hardware" provenant du logiciel OpenHardwareMonitor via le WMI de windows.

    Voici le lien pour le logiciel OHM : http://openhardwaremonitor.org/downloads/

    Je les post ici pour avoir un feedback sur d'autres installation, et bien evidemment les corrections et/ou améliorations sont les bienvenues !

    Le premier pour faire la decouverte auto des capteurs (couplé à une LLD sur le serveur zabbix :

    ohm_disco.ps1

    Code:
    $strFileName=".\sensors.dat"
    $strFileName2=".\sensortmp.dat"
    If (Test-Path $strFileName){
    	del $strFileName
    }
    If (Test-Path $strFileName2){
    	del $strFileName2
    }
    $cle = '{"{#ID_WMI}":"'
    $valeur = '","{#NAME_WMI}":"'
    $fermeture = '"},'
    $bcl = 1
    ADD-content -path $strFileName -value '{"data":['
    Get-WmiObject -Namespace "Root\OpenHardwareMonitor" -Query "SELECT * FROM Sensor" | ForEach-Object {
    	$clecomplete = $cle + $_.Identifier + $valeur + $_.Name  + $fermeture
        ADD-content -path $strFileName -value $clecomplete
        $bcl = $bcl +1
    }
    (get-content $strFileName -totalcount $bcl)[-1] | foreach-object {$_ -replace "},","}" | add-content $strFileName}
    $bcl = $bcl - 2
    $fichier = get-content $strFileName
    $fichier[0..$bcl] > $strFileName2
    $bcl = $bcl + 2
    $fichier[$bcl] >> $strFileName2
    move $strFileName2 $strFileName -Force 
    ']}' >> $strFileName
    Get-Content $strFileName
    sa ligne UserParameter :
    Code:
    UserParameter=ohm_disco,powershell.exe -Noprofile -ExecutionPolicy Bypass -file c:\zabbix-agent\conf\externalscripts\ohm_disco.ps1
    le deuxième pour recupérer les données des capteurs :

    ohm_get.ps1

    Code:
    param([string]$ident)
    $strFileName=".\sensors.tmp"
    If (Test-Path $strFileName){
    	del $strFileName
    }
    $cle = '{"{#ID_WMI}":"'
    $valeur = '","value":"'
    $fermeture = '"}]}'
    $request = "SELECT * FROM Sensor WHERE Identifier=" + "'" + $ident + "'"
    
    Get-WmiObject -Namespace "Root\OpenHardwareMonitor" -Query $request  | ForEach-Object {
    	$clecomplete = $_.value -replace ',','.'     
        ADD-content -path $strFileName -value $clecomplete
    }
    Get-content -path $strFileName
    sa ligne UserParameter :
    Code:
    UserParameter=ohm_capteur[*],powershell.exe -Noprofile -ExecutionPolicy Bypass -file c:\zabbix-agent\conf\externalscripts\ohm_get.ps1 $1
    Attached Files
    Last edited by captainmac40; 13-07-2015, 14:18. Reason: Ajout des fichiers
Working...