Dienst automatisch neustarten

Sollte sich ein Dienst unter Windows sporatisch verabschieden gibts hier ein kleines Batch-File das man einfach in die Geplanten Tasks hängen kann, um den Dienst wieder starten zu lassen:

@echo off
cls
set SRVNAME=VMwareHostd
for /F " tokens=1,3 usebackq delims= " %%i in (`sc query "%SRVNAME%"`) DO (
  if /i "%%i" == "state" (
    if /i "%%j" == "4" (
      goto RUNNING
    )
    goto STOPPED
  )
)
REM Nichts gefunden, dann einfach zum Ende gehen, ist wohl was schiefgelaufen
goto END

:STOPPED
echo Not Running
sc start "%SRVNAME%"
goto END

:RUNNING
echo Running

:END

Einfach beim SET den jeweiligen Dienstnamen einsetzten, schon funktioniert es. Am besten ist es wenn der Kurzname benutzt wird, mit dem funktionierts immer, mit den Anzeigenamen hab ich es noch nicht getestet.

Dann wird der Dienst automatisch wieder gestarted. Der VMware-Dienst wurde hier ausgewählt, da es schon des öfteren passiert ist das dieser Dienst sich immer mal wieder verabschiedet.

Vielen Dank an Ronny für den Tip.