23
Juni
2026
Skript zum Neustart eines Dienstes in MS Windows
16:48

Skript zum Neustart eines Dienstes in MS Windows

23 Juni 2026 16:48

Ein Skript zum Neustart eines Dienstes (zur Hinzufügung zur Aufgabenplanung) unter Windows.

Der Dienst „Hasp Loader“, der die Schlüssel für die Netzwerklizenz der Finanzsoftware 1C lädt, zeigte regelmäßig eine Meldung über eine fehlende Netzwerklizenz an. Der 1C-Support empfahl, den Dienst „Hasp Loader“ einmal täglich über die Aufgabenplanung neu zu starten. Zitat: „Hasp Loader hat keine ‚Null‘-Lizenzen mehr, die beim Anmelden verwendet werden.“ Die Aufgabe besteht darin, ein Skript zu schreiben, das den Dienst „Hasp Loader“ stoppt und startet.

Unten finden Sie den Text eines von mir entwickelten VBS-Skripts (VB Shell), das den Dienst mit dem in der Variable sName angegebenen Namen neu startet. Das Skript verwendet WMI (Windows Management Instrumentation). Die Lizenz ist GPL.

On Error Resume Next
sName="Hasp Loader"
Set objService = GetObject _
("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number  0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If

If sName="" Then
    WScript.Echo "The service name is empty."
    WScript.Quit
End If

For Each objS In objService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='" & sName & "'" )
    Exit For
Next
If IsObject (objS) Then 
 WScript.Echo objS.Name & " - StopService()"
 ret = objS.StopService()
 DebugPrint ret

 WScript.Sleep 1500 ` 1,5s

 WScript.Echo objS.Name & " - StartService()"
 ret = objS.StartService()
 DebugPrint ret

Else
 WScript.Echo sName & " - service not found"
End If

Sub  DebugPrint(number)
Select Case number
   Case 0
      WScript.Echo "Done!"
   Case 1
      WScript.Echo "Error. Not supported"
   Case 2
      WScript.Echo "Error. No user rights"
   Case 3
      WScript.Echo "Error. Depends"
   Case 4
      WScript.Echo "Error. Wrong request"
   Case 5
      WScript.Echo "Error. Wrong state"
   Case 6
      WScript.Echo "Error. Not started"
   Case 7
      WScript.Echo "Error. Timed out"
   Case 8
      WScript.Echo "Error. Unknown failure"
   Case 9
      WScript.Echo "Error. Wrong path"
   Case 10
      WScript.Echo "Error. Already started"
   Case 11
      WScript.Echo "Error. DB is locked"
   Case 12
      WScript.Echo "Error. Dependency is deleted"
   Case 13
      WScript.Echo "Error. Dependency not found"
   Case 14
      WScript.Echo "Error. Disabled"
   Case 15
      WScript.Echo "Error. No authenticity"
   Case 16
      WScript.Echo "Error. Uninstalling"
   Case 17
      WScript.Echo "Error. No exec process"
   Case 18
      WScript.Echo "Error. Dependency is cycled"
   Case 19
      WScript.Echo "Error. Already started by this name"
   Case 20
      WScript.Echo "Error. Bad chars in name"
   Case 21
      WScript.Echo "Error. Bad parameters"
   Case 22
      WScript.Echo "Error. Bad account"
   Case 23
      WScript.Echo "Error. Service exists"
   Case 24
      WScript.Echo "Error. Service is paused"
End Select
End Sub

Ausführen eines Skripts in der Windows-Befehlszeile:

cscript.exe hasp.vbs

Ausführen eines Skripts in der Aufgabenplanung:

  • Einfache Aufgabe
  • Aktion: cscript.exe
  • Parameter: //B hasp.vbs

Es wird empfohlen, die vollständigen Pfade zu den Dateien anzugeben, z. B. C:\Windows\system32\cscript.exe und C:\Windows\hasp.vbs.
Die Berechtigungen sollten ausschließlich dem Administrator zugewiesen werden, der den Dienst mithilfe der Aufgabenplanung neu startet.


Quellen:


Die Liste der Rückgabecodes für die Methoden StopService() und StartService() ist unten aufgeführt:

0 Anfrage akzeptiert.
1 Anfrage nicht unterstützt.
2 Der Benutzer verfügte nicht über die erforderlichen Zugriffsrechte.
3 Der Dienst kann nicht beendet werden, da andere laufende Dienste von ihm abhängen.
4 Der angeforderte Steuercode ist für diesen Dienst ungültig oder nicht zulässig.
5 Der angeforderte Steuercode konnte nicht an den Dienst gesendet werden, da der Dienststatus (Win32_BaseService. Status-Eigenschaft) 0, 1 oder 2 ist.
6 Der Dienst wird nicht ausgeführt.
7 Der Dienst hat innerhalb der vorgegebenen Zeit nicht auf die Startanforderung reagiert.
8 Beim Starten des Dienstes ist ein unbekannter Fehler aufgetreten.
9 Der Verzeichnispfad zur Dienst-Executable wurde nicht gefunden.
10 Der Dienst wird bereits ausgeführt.
11 Die Datenbank zum Hinzufügen eines neuen Dienstes ist gesperrt.
12 Eine Abhängigkeit dieses Dienstes wurde vom System entfernt.
13 Dieser Dienst konnte einen von einem abhängigen Dienst benötigten Dienst nicht finden.
14 Dieser Dienst wurde auf dem System deaktiviert.
15 Dieser Dienst unterstützt die für die Ausführung auf dem System erforderliche Authentifizierung nicht.
16 Dieser Dienst wird vom System entfernt.
17 Der Dienst verfügt über keinen Ausführungsthread.
18 Der Dienst weist beim Start zirkuläre Abhängigkeiten auf.
19 Ein Dienst mit demselben Namen wird bereits ausgeführt.
20 Der Dienstname enthält ungültige Zeichen.
21 Der Dienst hat ungültige Parameter empfangen.
22 Das Konto, unter dem dieser Dienst ausgeführt wird, ist ungültig oder verfügt nicht über die Berechtigung, den Dienst auszuführen.
23 Der Dienst ist in der Datenbank der auf dem System verfügbaren Dienste vorhanden.
24 Der Dienst ist derzeit im System pausiert.



Verwandte Veröffentlichungen