dschingis
Goto Top

PRTG Übergabe Fehler aus Powershell

Hallo zusammen,

ich möchte gerne eigene Powershell-Skripte verwenden, um einen Fehler zurückzugeben.
Ich möchte in meinem Fall prüfen, ob die Exchange-Datenbank im Status "Mounted" ist. Wenn nicht -> Fehler.
Hier der Code:
cls
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
Get-MailboxDatabase -Identity MBX-0001 -Status| select name, mounted | ForEach-Object {If ($_.Mounted -match "True")   
{
$Result = 0
} 
if ($_.Mounted -match "False")  
{
$Result = 2
}
}
"<prtg>"  
   "<result>"  
       "<channel>Demo Minimum Example</channel>"  
       "<value>$Result</value>"  
   "</result>"  
"</prtg>"  
Wenn ich das Skript so am PRTG-Probe-Server ausführe, bekomme ich ein Ergebnis. Sobald ich jedoch einen Sensor anlege, kommt bei PRTG kein Code an. Sensor ist grün.

Wenn ich als Beispiel folgenden Code verwende, wird der Wert korrekt übergeben:
"<prtg>"  
   "<result>"  
       "<channel>Demo Minimum Example</channel>"  
       "<value>2</value>"  
   "</result>"  
"</prtg>"  
Hat jemand eine Idee?
Kommentar vom Moderator Dani am Feb 05, 2015 um 22:19:49 Uhr
Formatierung hinzugefügt.

Content-Key: 262377

Url: https://administrator.de/contentid/262377

Printed on: April 16, 2024 at 21:04 o'clock

Member: Dani
Dani Feb 05, 2015 at 22:29:50 (UTC)
Goto Top
Guten Abend,
du gehst aus meiner Sicht die Sache falsch an.
Ich habe deine Vorgabe mit einem meiner Skripte angepasst:
Clear-Host
$strDervice=$args

$Result = Invoke-Command -Computername $DEVICE -ScriptBlock {
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;
    Get-MailboxDatabase -Identity MBX-0001 -Status| select name, mounted
}

"<prtg>"  
    "<result>"  
        "<channel>"  
            "Demo Minimum Example"  
        "</channel>"  
        "<value>"  
            echo $Result | Select-Object ....
        "</value>"  
    "</result>"  
"</prtg>  
Hab allerdings keinen Exchange zur Hand um mir die Ausgabe anzusehen. Bei Select-Object kannst du definieren, was du alles ausgeben möchtest.


Gruß,
Dani
Member: Florian-at-Paessler
Florian-at-Paessler Feb 06, 2015 at 14:30:41 (UTC)
Goto Top
Hallo Dschingis,

genau für deinen Fall gibt es einen eingebauten Sensor ('Exchange Database (Powershell) sensor') der unter anderem diesen Channel zurückliefert (inkl. down-limit).

Ansonsten ist an Deinem Script nichts auffälliges zu sehen, aber geh zur Sicherheit die API-Doku unter <prtg-url>/api.htm?tabid=7 nochmal durch. Wenn Dir das nicht weiterhilft, kannst Du gerne unseren Support kontaktieren (support@paessler.com).

Viele Grüße
Flo