Windows Dienst neustarten: Batch Script zum kontrollierten restart

batch-script-zum-kontrollierten-restart-eines-dienstes

Aus aktuellem Anlass habe ich ein Batch Script geschrieben welches einen  beliebigen Dienst (via Start Parameter übertragbar -%1) kontrolliert neustartet. Das Script zum kontrollierten Windows Dienst neustarten, beendet den Prozess und wartet bis dieser auch tatsächlich beendet ist. Sobald der Dienst tatsächlich nicht mehr läuft, wird danach versucht diesen wieder zu starten. Auch hier wird solange gewartet bis der Dienst wieder läuft. Bei dem Script handelt es sich um eine einfache Batch Datei und ist somit auf jedem Windows System lauffähig. Ebenso kann die Datei beliebig angepasst werden. Im aktuellen Fall wird das Batch Script in Kombination mit dem Windows Task Scheduler verwendet.

Das Script: Kontrolliert Windows-Dienst-neustarten

@ECHO OFF
REM /// #Startet, Stoppt & Kontrolliert Service
REM /// #Datum: 2016-01-26
REM /// #Author: Griep Marco
 
REM - MAIN-Prozess
echo.
echo "================================"
echo " Griep Marco - Restart Service"
echo "================================"
echo.
echo "Trying to stop Service"
echo.
sc stop %1
echo.
goto WAITFORSTOP
 
REM - Warte und prüfe ob stoppen funktioniert hat
:WAITFORSTOP
echo "Waiting...."
timeout 5 > NUL
echo.
echo "Check if service is not running anymore"
echo.
sc query %1 | Find /i "RUNNING"
IF ERRORLEVEL 1 GOTO RESTART
IF ERRORLEVEL 0 GOTO WAITFORSTOP
 
REM - Starte dienst
:RESTART
sc start %1
GOTO CHECKAGAIN
 
REM - Prüfe ob Dienst wieder Aktiv
:CHECKAGAIN
timeout 5 > NUL
echo.
echo "Check if service is running again"
echo.
sc query %1 | Find /i "RUNNING"
IF ERRORLEVEL 0 EXIT
IF ERRORLEVEL 1 GOTO CHECKAGAIN

Schreibe einen Kommentar