Mahlzeit zusammen,
ich habe ein Problem mit PRTG und einem kleinen Powershellscript welches in PRTG immer nur eine 0 ausgibt. Ich hab jetzt viel gegooglet weiß aber nicht weiter.
Mein Script sieht folgendermassen aus:
$status = @(Get-WmiObject Win32_USBController -Computername ??? | Where-Object -FilterScript { ($_.Manufacturer -eq "SafeNet, Inc.") } | Select Status)
$wert = if($status.status -eq "ok") { "1" } else { "0" }
Die Ausgabe in Powershell 32Bit sieht so aus:
<?xml version="1.0" encoding="UTF-8" ?><prtg><result><channel>Safenet USB Token</channel><value>1</value><Unit>Count</Unit></result> <text>Stand: 6. August 2018 19:10:37 </text></prtg>
In Powershell ist die Value immer 1, über PRTG leider nur eine 0.
Der Befehl Set-ExecutionPolicy -ExecutionPolicy remotesigned
wurde als Admin in der 32 bit und 64 bit Powershell ausgeführt und für alle bestätigt. Das Script wird laut PRTG mit dem Administratorkonto des Servers ausgeführt. Was mache ich hier wo falsch? Trage ich in Value keine variable ein sondern eine 1 wird auch in PRTG eine 1 ausgegeben.
Als Computername habe ich es mit dem Server, Localhost, 127.0.0.1 und nix probiert. Alles keine Wirkung.
Wäre schön wenn mir einer helfen könnte.
Mfg Stephan
Article Comments
Hallo Stephan :)
Powershell wie folgt gestartet:
%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noprofile
folgendes gibt PS zurück:
Status
------
OK
Mit freundlichen Grüßen Stephan
Aug, 2018 - Permalink
Und das wurde auf dem PRTG-Server selbst ausgeführt? Sprich, die WMI-Abfrage PRTG -> Ziel ansich funktioniert?
Mit freundlichen Grüßen,
Stephan Linke, Tech Support Team
Aug, 2018 - Permalink
So, der Dienst PRTG Probe Service wurde nur mit Lokalen Berechtigungen gestartet. Jetzt funktioniert das. Danke :)
Aug, 2018 - Permalink
Mit Local_System? Saubere Sache :)
Kind regards,
Stephan Linke, Tech Support Team
Aug, 2018 - Permalink
Hi Stephan,
Was gibt die PowerShell denn zurück, wenn folgendes ausgeführt wird:
Get-WmiObject Win32_USBController -Computername fqdn.des.target.hosts | Where-Object -FilterScript { ($_.Manufacturer -eq "SafeNet, Inc.") } | Select Status
PowerShell vorher bitte mit dem Schalter -noprofile starten (so startet's auch PRTG).
Mit freundlichen Grüßen, Stephan Linke, Tech Support Team
Aug, 2018 - Permalink