winlin

Service überprüfen mit Parameterübergabe

Hallöchen,

habe folgendes vor. Es gibt drei Services die ich gerne überwahen will. Dazu habe ich folgendes bisher verwendet für einen dienst:

@echo off & setlocal
Set "Suchstr=DisplayName"  
Set "SuchStr=%suchstr%:ServiceKeyname"  
goto :skipSomeLines
----ab hier können alle Dienste nach dem skizzierten Muster eingetragen werden...
DisplayName:ServiceKeyname=Dienst:%1 %2 %3
----bis hier können alle Dienste nach dem skizzierten Muster eingetragen werden...
:SkipSomeLines
for /f "tokens=3,4 delims=:=" %%i in ('findstr /i /C:"%SuchStr%" %0') do (  
       call :CheckSvc %%i %%j
)
goto :eof

:CheckSvc Param1=DisplayName Param2=ServiceKeyname
ECHO %1 checken
set Status=NichDa
for /f "tokens=4"  %%b in ('sc query %2 ^|find "STATE "') do set Status=%%b  
if /i "%Status%" == "NichDa" (   
      echo [Fehler] %2 [%1] nicht gefunden...hol mal den Admin..
) ELSE (
echo [Debug] Status von %1 [%2]: %Status%
if /i "%Status%" == "STOPPED" net start %2        
)
goto :eof

Nun möchte ich sozusagen dieses Skript oder was ähnliches so ändern damit es folgendes erfüllt:
- Beim Aufruf des Skriptes gebe ich eines der drei Dienste als Parameter mit z.b. service.bat SERVICE1 SERVICE2 SERVICE2
- Das Skript überprüft nun ob die Dienste laufen und gibt als Rückgabe wert 0 für "Dienst läuft " oder 2 für "Dienst läuft nicht"

Diese Rückgabewerte sollen dann an Nagios weitergegeben werden...Das Skript werde ich dann auf dem Windws Host im plugins verzeichnis ablegen...
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 209086

Url: https://administrator.de/forum/service-ueberpruefen-mit-parameteruebergabe-209086.html

Ausgedruckt am: 02.08.2025 um 17:08 Uhr

winlin
winlin 04.07.2013 aktualisiert um 09:21:32 Uhr
Also Rückgabewer nimmt man ja den Errorlevel den das OS verarbeiten kann oder???? Das ganze soll für das nagios dienen der den Rückgabewert verarbeitet (dienst läuft oder läuft nicht)