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 05.02.2015 um 23:19:49 Uhr
Formatierung hinzugefügt.

Content-ID: 262377

Url: https://administrator.de/forum/prtg-uebergabe-fehler-aus-powershell-262377.html

Ausgedruckt am: 27.12.2024 um 09:12 Uhr

Dani
Dani 05.02.2015 um 23:29:50 Uhr
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
Florian-at-Paessler
Florian-at-Paessler 06.02.2015 um 15:30:41 Uhr
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