Hallo zusammen,
Ich habe mir ein Custom Sensor erstellt, welcher den Wert von einem CMD Skript anzeigen soll. Das CMD sieht in etwa so aus:
@echo off for /f "tokens=2" %%i in ('curl --insecure --silent --output nul -x http://PROXY:8080 --proxy-user USER:PW -d "ACCOUNT=USER&PASSWORD=PASSWORD&CMD=CHECKCREDITS" https://smsgateway/cgi-bin/smsgateway.cgi') do set credit=%%i echo %credit%:OK
Wenn ich das Skript auf dem Server mittels CMD ausführe erhalte ich folgende Antwort:
1304:OK
Der Sensor selber gibt mir aber den Wert "0" an. Woran kann das liegen? Habe ebenfalls den Output als String definiert, was mir leider auch nicht geholfen hat.
set x=%credit%:OK echo %x%
Was habe ich übersehen? Oder kommt PRTG nicht klar, wenn ich eine Variable als Wert ausgeben möchte?
Danke und Gruss - Kevin
Article Comments
Hallo Florian,
Danke für die Rückmeldung. Habe es nun über PowerShell mittels Invoke-WebRequest hinbekommen. Nun klappt es auch ohne weitere Probleme.
Hier noch das Skript, falls sich jemand dafür interessiert:
$pass=ConvertTo-SecureString "PASSWORT" -AsPlainText -Force $cred=New-Object System.Management.Automation.PSCredential -ArgumentList "DOMAIN\USER",$pass $postparms = @{ACCOUNT='ACCOUNTNAME';PASSWORD='PASSWORT';CMD='CHECKCREDITS'} $site="https://secure.simmcomm.ch/cgi-bin/smsgateway.cgi" $curl= Invoke-WebRequest -Uri $site -UseBasicParsing -Proxy "http://PROXY:PORT" -ProxyCredential $cred -Method POST -Body $postparms | select Content foreach ($item in $curl) { $output=($item.Content -split " ")[1] -replace "`n|`r","" write-host $output,":OK" }
Gruss - Kevin
Jun, 2020 - Permalink
Hallo Kevin,
Ist natuerlich schwer zu testen. Allerdings aus meiner Erfahrung dies ist meist ein Problem mit dem script selbst.
In diesem speziellen Fall koennte es sein das du den Pfad zu CURL voll angeben musst.
Generell wuerde ich damit starten das PRTG die EXE results in eine Logfile schreibt, siehe hier: https://www.paessler.com/manuals/prtg/exe_script_sensor - Write EXE results to disk.
Die Logfiles duerften vermutlich klar stellen wo das Problem wirklich liegt - eventuell temporaer das ECHO OFF ausschalten.
Alternative koenntest du auch sehen ob du das nicht in PowerShell abbilden kannst: Invoke-WebRequest.
Mfg
Florian Rossmark
www.it-admins.com
Jun, 2020 - Permalink