Starten Sie einen Windows-Dienst über die Befehlszeile neu

82

Gibt es eine Möglichkeit, einen Windows-Dienst über die Eingabeaufforderung neu zu starten?

Joe
quelle

Antworten:

92

Sie können verwenden stoppen sie und beginnen sie wieder im Grunde auf einen Neustart des Dienstes.net stop [service name]net start [service name]

Um sie zu kombinieren, mache einfach das - net stop [service name] && net start [service name].


Es gibt auch einen Befehl, der speziell für das Durcheinander mit Diensten entwickelt wurde: sc

BESCHREIBUNG:
        SC ist ein Befehlszeilenprogramm für die Kommunikation mit dem
        Service Control Manager und Dienste.
VERWENDUNGSZWECK:
        sc [Befehl] [Dienstname] ...


        Die Option hat die Form "\\ Servername"
        Weitere Hilfe zu Befehlen erhalten Sie, indem Sie Folgendes eingeben: "sc [Befehl]"
        Befehle:
          query ----------- Fragt den Status eines Dienstes ab oder
                          Listet den Status für Diensttypen auf.
          queryex --------- Fragt den erweiterten Status eines Dienstes ab oder
                          Listet den Status für Diensttypen auf.
          start ----------- Startet einen Dienst.
          pause ----------- Sendet eine PAUSE-Steuerungsanforderung an einen Dienst.
          abfragen ----- Sendet eine INTERROGATE-Steuerungsanforderung an einen Dienst.
          continue -------- Sendet eine CONTINUE-Steuerungsanforderung an einen Dienst.
          stop ------------ Sendet eine STOP-Anforderung an einen Dienst.
          config ---------- Ändert die Konfiguration eines Dienstes (persistent).
          description ----- Ändert die Beschreibung eines Dienstes.
          failure --------- Ändert die Aktionen, die ein Dienst bei einem Fehler ausführt.
          failureflag ----- Ändert das Failure Actions-Flag eines Dienstes.
          sidtype --------- Ändert den SID-Typ eines Dienstes.
          privs ----------- Ändert die erforderlichen Berechtigungen eines Dienstes.
          managedaccount - Ändert den Dienst so, dass er das Dienstkonto kennzeichnet
                          Passwort wie von LSA verwaltet.
          qc -------------- Abfrage der Konfigurationsinformationen für einen Dienst.
          qdescription ---- Fragt die Beschreibung eines Dienstes ab.
          qfailure -------- Fragt die Aktionen ab, die ein Dienst bei einem Fehler ausführt.
          qfailureflag ---- Fragt das Fehleraktions-Flag eines Dienstes ab.
          qsidtype -------- Fragt den SID-Typ eines Dienstes ab.
          qprivs ---------- Abfrage der erforderlichen Berechtigungen eines Dienstes.
          qtriggerinfo ---- Fragt die Triggerparameter eines Dienstes ab.
          qpreferrednode - Fragt den bevorzugten NUMA-Knoten eines Dienstes ab.
          qrunlevel ------- Fragt den Runlevel eines Dienstes ab.
          qmanagedaccount-Fragt ab, ob ein Dienst ein Konto bei a verwendet
                          Passwort von LSA verwaltet.
          qprotection ----- Fragt die Prozessschutzstufe eines Dienstes ab.
          delete ---------- Löscht einen Dienst (aus der Registrierung).
          create ---------- Erstellt einen Dienst. (Fügt es der Registrierung hinzu).
          control --------- Sendet ein Steuerelement an einen Dienst.
          sdshow ---------- Zeigt die Sicherheitsbeschreibung eines Dienstes an.
          sdset ----------- Legt die Sicherheitsbeschreibung eines Dienstes fest.
          showsid --------- Zeigt die Service-SID-Zeichenfolge an, die einem beliebigen Namen entspricht.
          triggerinfo ----- Konfiguriert die Triggerparameter eines Dienstes.
          preferrednode --- Legt den bevorzugten NUMA-Knoten eines Dienstes fest.
          Runlevel -------- Legt den Runlevel eines Dienstes fest.
          GetDisplayName - Ruft den Anzeigenamen für einen Dienst ab.
          GetKeyName ------ Ruft den ServiceKeyName für einen Dienst ab.
          EnumDepend ------ Listet Dienstabhängigkeiten auf.

        Die folgenden Befehle erfordern keinen Dienstnamen:
        sc   
          boot ------------ (ok | bad) Gibt an, ob der letzte Start erfolgen soll
                          als die zuletzt als funktionierend bekannte Startkonfiguration gespeichert werden
          Sperren ------------ Sperrt die Service-Datenbank
          QueryLock ------- Fragt den LockStatus für die SCManager-Datenbank ab
BEISPIEL:
        sc MyService starten

QUERY- und QUERYEX-OPTIONEN:
        Wenn dem Abfragebefehl ein Dienstname folgt, der Status
        für diesen Service wird zurückgegeben. Weitere Optionen gelten nicht in
        dieser Fall. Wenn dem Abfragebefehl nichts oder eines von folgt
        Bei den unten aufgeführten Optionen werden die Dienste aufgelistet.
    type = Art der aufzuzählenden Dienste (Treiber, Dienst, alle)
             (Standard = Service)
    state = Status der aufzulistenden Dienste (inaktiv, alle)
             (Standard = aktiv)
    bufsize = Die Größe (in Bytes) des Aufzählungspuffers
             (Standard = 4096)
    ri = Die Wiederaufnahme-Indexnummer, bei der die Aufzählung beginnen soll
             (Standard = 0)
    group = Zu aufzählende Dienstgruppe
             (Standard = alle Gruppen)

SYNTAX-BEISPIELE
sc query - Listet den Status für aktive Dienste und Treiber auf
sc query eventlog - Zeigt den Status des Ereignisprotokolldienstes an
sc queryex eventlog - Zeigt den erweiterten Status des Ereignisprotokolldienstes an
sc query type = driver - Listet nur aktive Treiber auf
sc query type = service - Listet nur Win32-Dienste auf
sc query state = all - Listet alle Dienste und Treiber auf
sc query bufsize = 50 - Zählt mit einem 50-Byte-Puffer auf
sc query ri = 14 - Zählt mit Resume-Index = 14 auf
sc queryex group = "" - Listet aktive Dienste auf, die keiner Gruppe angehören
sc query type = interact - Listet alle interaktiven Dienste auf
sc query type = driver group = NDIS - Listet alle NDIS-Treiber auf
paradd0x
quelle
5
Die nächste Frage ist, wie man die richtigen nachschlägt [service name].
Iszi
4
Tragen Sie ein net startund es listet alle laufenden Dienste auf.
paradd0x
3
@Iszi Nun, wenn er einen Dienst neu starten möchte , muss er ausgeführt werden, um neu gestartet zu werden. :)
paradd0x
4
@lszi: Führen Sie "sc query" über die Befehlszeile aus. Schauen Sie sich SERVICE_NAME
jftuga 24.06.11
8
'restart! =' stop '&&' start '. Ich habe einen Dienst, der ziemlich schnell über das GUI-Applet neu gestartet wird, aber sehr langsam über die GUI und die CLI gestoppt wird. Immer noch auf der Suche nach einer CLI-Methode für einen echten Neustart ...
Van Jone
16

Bitte beachten Sie, dass andere Dienste, die von diesem Dienst abhängen, normalerweise net stop & net startnicht neu gestartet werden. net stop /ystoppt alle Abhängigkeiten

Häufigstes Beispiel - SQL Server & SQL Agent.

Ich empfehle das PowerShell-Cmdlet, um dieses Problem zu lösen:

powershell -command "Restart-Service MSSQLSERVER -Force"

Nach dem Start von MSSQLSERVER startet das Cmdlet alle zuvor gestoppten Abhängigkeiten.

PS: Stellen Sie sicher, dass Sie den Befehl admin ausführen

Dmitry Gusarov
quelle
2
+1. Das ist die beste Antwort. Das Beenden und Starten von Diensten mit Abhängigkeiten schlägt mit den anderen Antworten fehl. Sie müssen hinzufügen, dass Sie als Administrator ausgeführt werden müssen, damit dies funktioniert.
Freitag,
10

Sie könnten auch PowerShell verwenden:

stop-Service
Devlife
quelle
17
PowerShell bietet auch einen Neustart-Dienst an (nur erwähnt, da das OP speziell nach dem Neustart von Diensten gefragt hat)
Dienstag,
10

Gehen Sie folgendermaßen vor, um einen Windows-Dienst über die Eingabeaufforderung oder geplante Aufgaben neu zu starten:

cmd /c "net stop "Service Name" & sc start "Service Name""
Kiki
quelle
4
Sie möchten wahrscheinlich ein doppeltes Et-Zeichen. Das heißt, es wird gewartet, bis der erste Befehl (erfolgreich) beendet ist, bevor mit dem zweiten fortgefahren wird.
Adam Plocher
4

Um den lästigen Wacom Intuous Driver nicht laufen zu lassen bekomme ich bei jedem Neustart eine Fehlermeldung.

Windows key+ R, einfügen, Bam!

sc stop WTabletServicePro && sc start WTabletServicePro
George
quelle
2

Das Dienstprogramm PsService von PsTools bietet einen restartBefehl für Dienste mit zusätzlichen Parametern, um ihn auf einem anderen Computer auszuführen.

psservice [-accepteula] [\\Computer [-u Username [-p Password]]] restart <service-name>

Das -accepteulaFlag speichert das EULA-Fenster für den Fall, dass Sie dieses Dienstprogramm zum ersten Mal mit dem aktuellen Benutzer verwenden.

cdlvcdlv
quelle
-2

Falls Sie den Pfad des ausführbaren Speicherorts des Dienstes kennen, den Sie verwenden könnten

"[service name.exe] console"

In der Befehlszeile.

Dies hilft Ihnen beim Debuggen des Problems, wenn der Dienst nicht gestartet werden kann.

sup4eli
quelle
Willkommen bei Super User! Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage.
DavidPostill