So verwalten Sie Windows-Dienste mit CMD

Windows-Dienste sind Programme, die im Hintergrund des Windows-Betriebssystems laufen und wichtige Funktionen wie Sicherheit, Netzwerk, Drucken usw. bereitstellen. Windows-Dienste können automatisch beim Einschalten des Systems oder manuell durch den Benutzer oder Administrator gestartet werden. Windows-Dienste können bei Bedarf auch beendet, angehalten oder fortgesetzt werden.

Eine Möglichkeit, Windows-Dienste zu verwalten, ist die Verwendung von Command Prompt oder CMD. CMD ist ein integriertes Windows-Tool, mit dem Benutzer Textbefehle ausführen können, um verschiedene Aufgaben auszuführen. Mithilfe von CMD können Benutzer eine Liste der verfügbaren Windows-Dienste anzeigen, den Status des Diensts ermitteln, den Startmodus des Diensts ändern und Dienstvorgänge wie Starten, Beenden, Anhalten und Fortsetzen steuern.

In diesem Artikel erläutert Bardimin anhand von Details und Beispielen, wie Sie Windows-Dienste mit CMD verwalten können. Dieser Artikel gliedert sich in mehrere Teile, nämlich:

  • Wie öffne ich CMD als Administrator?
  • So zeigen Sie eine Liste der verfügbaren Windows-Dienste an
  • So ermitteln Sie den Status von Windows-Diensten
  • So ändern Sie den Startmodus eines Windows-Dienstes
  • So steuern Sie den Betrieb von Windows-Diensten
Windows Service CMD

Wie öffne ich CMD als Administrator?

Um Windows-Dienste mit CMD zu verwalten, müssen wir CMD als Administrator öffnen. Dies liegt daran, dass einige Windows-Dienste hohe Berechtigungen erfordern, um geändert oder gesteuert zu werden. Wenn wir CMD als normaler Benutzer öffnen, erhalten wir möglicherweise Fehlermeldungen wie “Access is denied” oder “The requested pause, continue, or stop is not valid for this service”.

Hier sind die Schritte, um CMD als Administrator zu öffnen:

  • Klicken Sie auf die Schaltfläche Start  in der unteren linken Ecke des Bildschirms
  • Geben Sie cmd in das Suchfeld ein
  • Klicken Sie mit der rechten Maustaste auf das Suchergebnis Command Prompt  und wählen Sie Run as administrator aus
  • Klicken Sie  im  angezeigten Dialogfeld User Account Control  auf Yes

Danach sehen wir ein CMD-Fenster mit dem Titel Administrator: Command Prompt. Dies bedeutet, dass wir CMD erfolgreich als Administrator geöffnet haben.

So zeigen Sie eine Liste der verfügbaren Windows-Dienste an

Um die Liste der auf unserem System verfügbaren Windows-Dienste zu sehen, können wir den Befehl sc query verwenden. Mit diesem Befehl werden Informationen zu allen in Windows registrierten Diensten angezeigt, einschließlich des Dienstnamens, des Anzeigenamens, des Typs, des Status und anderer.

Hier ist eine Beispielausgabe des Befehls sc query:

C:\Windows\system32>sc query

SERVICE_NAME: AdobeARMservice
DISPLAY_NAME: Adobe Acrobat Update Service
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
...

Aus der obigen Ausgabe können wir ersehen, dass für jeden Dienst einige Informationen angezeigt werden, nämlich:

  • SERVICE_NAME: Dies ist der interne Dienstname, der vom System verwendet wird. Dieser Name ist eindeutig und kann nicht geändert werden. Dieser Name wird auch als Parameter für andere Befehle verwendet, die sich auf den Dienst beziehen.
  • DISPLAY_NAME: Dies ist der Name, der für den Dienst in der Benutzeroberfläche angezeigt wird, z. B. Services oder Task Manager. Dieser Name kann vom Benutzer oder Administrator über die Service-Eigenschaft geändert werden.
  • TYPE: Dies ist der Diensttyp, der bestimmt, wie der Dienst vom System ausgeführt wird. Es gibt verschiedene Arten von Diensten, nämlich:
    • WIN32_OWN_PROCESS: Dieser Dienst wird in einem eigenen Prozess ausgeführt, d. h., er teilt keine Ressourcen mit anderen Diensten. Dieser Dienst kann mit dem Desktop des Benutzers interagieren, wenn dies zulässig ist.
    • WIN32_SHARE_PROCESS: Dieser Dienst wird in einem Prozess zusammen mit anderen Diensten desselben Typs ausgeführt. Dieser Dienst kann nicht mit dem Desktop des Benutzers interagieren.
    • KERNEL_DRIVER: Bei diesem Dienst handelt es sich um einen Kernel-Gerätetreiber, der Teil des Kernbetriebssystems ist. Dieser Dienst wird ausgeführt, wenn das System eingeschaltet ist, und kann vom Benutzer oder Administrator nicht gestoppt oder angehalten werden.
    • FILE_SYSTEM_DRIVER: Bei diesem Dienst handelt es sich um einen Dateisystemtreiber, der den Zugriff auf das Dateisystem verwaltet. Dieser Dienst wird ausgeführt, wenn das System eingeschaltet ist, und kann vom Benutzer oder Administrator nicht gestoppt oder angehalten werden.
  • STATE: Dies ist der Status des Dienstes, der den Betriebszustand des Dienstes angibt. Es gibt mehrere Servicestatus, nämlich:
    • STOPPED: Dieser Dienst wird nicht ausgeführt und tut nichts.
    • START_PENDING: Dieser Dienst wird gerade gestartet, ist aber noch nicht bereit, Anforderungen zu akzeptieren.
    • STOP_PENDING: Dieser Dienst wird eingestellt, ist aber noch nicht vollständig eingestellt.
    • RUNNING: Dieser Dienst wird ausgeführt und ist bereit, Anforderungen zu akzeptieren.
    • CONTINUE_PENDING: Dieser Dienst wird gerade wieder aufgenommen, nachdem er angehalten wurde, ist aber noch nicht voll funktionsfähig.
    • PAUSE_PENDING: Dieser Dienst wird gerade pausiert, wurde aber noch nicht vollständig angehalten.
    • PAUSED: Dieser Dienst ist angehalten und akzeptiert keine neuen Anforderungen, behält aber weiterhin seinen vorherigen Zustand und seine Ressourcen bei.
  • WIN32_EXIT_CODE: Dies ist der Fehlercode, der vom Dienst zurückgegeben wird, wenn der Dienst normal beendet wird. Wenn der Dienst erfolgreich beendet wird, lautet dieser Code 0. Wenn der Dienst mit einem Fehler beendet wird, gibt dieser Code die Art des aufgetretenen Fehlers an. Dieser Code kann im Internet gesucht werden, um weitere Erklärungen zu erhalten.
  • SERVICE_EXIT_CODE: Dies ist der Fehlercode, der vom Dienst zurückgegeben wird, wenn der Dienst aus einem bestimmten, vom Dienst selbst angegebenen Grund beendet wird. Wenn der Dienst keinen bestimmten Grund angibt, ist dieser Code 0. Dieser Code kann im Internet gesucht werden, um weitere Erklärungen zu erhalten.
  • CHECKPOINT: Dies ist der Wert, der vom System verwendet wird, um den Fortschritt des Diensts zu überwachen, während der Dienst gestartet, beendet, angehalten oder fortgesetzt wird. Dieser Wert wird während des Prozesses regelmäßig erhöht und nach Abschluss des Prozesses auf 0 zurückgesetzt. Wenn sich dieser Wert nicht innerhalb der vom WAIT_HINT angegebenen Zeit ändert, geht das System davon aus, dass der Dienst fehlgeschlagen ist.
  • WAIT_HINT: Dies ist die vom Dienst geschätzte maximale Zeit in Millisekunden, um den Start-, Stopp-, Pause- oder Fortsetzungsvorgang abzuschließen.

So ermitteln Sie den Status von Windows-Diensten

Um den Status eines bestimmten Windows-Dienstes herauszufinden, können  wir den Befehl sc query verwenden,  indem wir den Dienstnamen als Parameter hinzufügen. Mit diesem Befehl werden Informationen über den betreffenden Dienst angezeigt, einschließlich seines Status.

Hier ist ein Beispiel dafür, wie Sie den Status des Dienstes Windows Update herausfinden können:

C:\Windows\system32>sc query wuauserv

SERVICE_NAME: wuauserv
DISPLAY_NAME: Windows Update
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Aus der obigen Ausgabe können wir sehen, dass der Dienst Windows Update ausgeführt wird  (RUNNING) und beendet, angehalten oder ausgeschaltet werden kann (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN).

Wenn wir den genauen Namen des Dienstes nicht kennen, können  wir den Befehl sc queryex verwenden,  indem wir den Anzeigenamen des Dienstes als Parameter hinzufügen. Dieser Befehl zeigt die gleichen Informationen wie der Befehl sc query an,  zeigt aber auch  die  PID oder Process ID des  Dienstes an, d. h. die Identifikationsnummer des Prozesses, der den Dienst ausführt.

Hier ist ein Beispiel dafür, wie Sie den Status des Dienstes Windows Firewall herausfinden können:

C:\Windows\system32>sc queryex “Windows Firewall”

SERVICE_NAME: MpsSvc
DISPLAY_NAME: Windows Firewall
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 1004
        FLAGS              :

Aus der obigen Ausgabe können wir sehen, dass der Dienst Windows Firewall den Namen des Dienstes MpsSvc hat  und mit PID-1004 ausgeführt wird. Dieser Dienst kann auch gestoppt, pausiert oder ausgeschaltet werden (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN).

So ändern Sie den Startmodus eines Windows-Dienstes

Der Startmodus des Windows-Diensts ist eine Einstellung, die bestimmt, wie der Dienst ausgeführt wird, wenn das System eingeschaltet wird. Es gibt mehrere Startmodi für Windows-Dienste, nämlich:

  • Automatic: Dieser Dienst wird automatisch ausgeführt, wenn das System eingeschaltet wird, ohne dass ein Eingreifen des Benutzers oder Administrators erforderlich ist.
  • Manual: Dieser Dienst wird beim Einschalten des Systems nicht automatisch ausgeführt, sondern kann vom Benutzer oder Administrator manuell über CMD oder andere Benutzeroberflächen ausgeführt werden.
  • Disabled: Dieser Dienst wird weder automatisch noch manuell ausgeführt. Dieser Dienst kann nur von einem Administrator reaktiviert werden.

Um den Startmodus eines Windows-Dienstes zu ändern, können  wir den Befehl sc config verwenden, indem wir den  Namen des Dienstes und den gewünschten Startmodus als Parameter hinzufügen. Mit diesem Befehl werden die Registrierungseinstellungen geändert, die diesem Dienst zugeordnet sind.

Im Folgenden finden Sie ein Beispiel dafür, wie Sie den Startmodus des Diensts Windows Defender Antivirus Service in Manual ändern:

C:\Windows\system32>sc config WinDefend start= demand
[SC] ChangeServiceConfig SUCCESS

Aus der obigen Ausgabe können wir ersehen, dass der Befehl den Startmodus WinDefend Diensts erfolgreich  in demand geändert hat, was Manual bedeutet. Beachten Sie, dass in diesem Befehl nach dem Gleichheitszeichen (=) ein Leerzeichen steht.

Hier ist eine Liste der Startmodi, die als Parameter im Befehl sc config verwendet werden können:

  • boot: Dieser Dienst wird ausgeführt, bevor das Betriebssystem geladen wird. Nur Kernel- und Dateisystemdienste können diesen Modus verwenden.
  • system: Dieser Dienst wird ausgeführt, wenn das Betriebssystem geladen wird. Nur Kernel- und Dateisystemdienste können diesen Modus verwenden.
  • auto: Dieser Dienst wird automatisch ausgeführt, wenn das System eingeschaltet wird. Dies entspricht dem Automatic-Modus.
  • demand: Dieser Dienst wird beim Einschalten des Systems nicht automatisch ausgeführt, kann aber manuell ausgeführt werden. Dies entspricht dem Manual-Modus.
  • disabled: Dieser Dienst wird überhaupt nicht ausgeführt. Dies entspricht dem Disabled-Modus.

So steuern Sie den Betrieb von Windows-Diensten

Windows-Dienstvorgänge sind Aktionen, die für einen Dienst ausgeführt werden können, z. B. Starten, Beenden, Anhalten oder Fortsetzen. Diese Vorgänge können sich auf den Zustand und die Funktionalität des Diensts auswirken.

Um den Betrieb von Windows-Diensten zu steuern, können  wir sc Befehl verwenden, indem wir den  Namen des Dienstes und den gewünschten Vorgang als Parameter hinzufügen. Dieser Befehl sendet die Anforderung an den Dienst und zeigt die Ergebnisse an.

Hier ist ein Beispiel für den Start des Dienstes Windows Audio:

C:\Windows\system32>sc start Audiosrv

SERVICE_NAME: Audiosrv
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 1508
        FLAGS              :

Aus der obigen Ausgabe können wir ersehen, dass der Befehl erfolgreich eine Anforderung zum Starten des Dienstes Audiosrv gesendet  hat und dass der Dienst gerade gestartet wird (START_PENDING).

Im Folgenden finden Sie eine Liste der Vorgänge, die als Parameter in sc Befehl verwendet werden können:

  • start: Dieser Dienst wird gestartet, wenn der Dienst den Status STOPPED hat.
  • stop: Dieser Dienst wird beendet, wenn er den Status RUNNING, PAUSED, START_PENDING oder CONTINUE_PENDING hat.
  • pause: Dieser Dienst wird angehalten, wenn der Dienst RUNNING oder CONTINUE_PENDING ist.
  • continue: Dieser Dienst wird fortgesetzt, wenn der Dienst PAUSED oder PAUSE_PENDING ist.

Schlussfolgerung

Durch den Einsatz von CMD können wir Windows-Dienste einfach und schnell verwalten. Wir können die Liste und den Status der Dienste anzeigen, den Startmodus des Dienstes ändern und den Betrieb des Dienstes mit den oben beschriebenen Befehlen steuern. So können wir die Leistung und Sicherheit unseres Systems nach unseren Bedürfnissen verbessern.

Neueste Artikel