Windows Dienste löschen – Registry oder der „sc“ Befehl

Windows Dienste lassen sich recht gut mit dem Windows Control „services.msc“ (Start->Ausführen) verwalten. Hier werden alle installierten Dienste angezeigt, man kann die Dienste starten, beenden, sich Informationen ansehen und mehr.
Doch hier ist man falsch wenn es um das Löschen von Diensten geht.

Eine Möglichkeit wäre natürlich die Registry, wenn man sich bis zu dem Pfad der Dienste hangeln möchte.
Dieser liegt übrigends hier:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Hier reicht es den Schlüssel mit dem Dienstnamen zu löschen.

Echte Windows User wollen jedoch so viel wie möglich über die Konsole erledigen, also ab in die CMD.
Hier schauen wir uns den Befehl „sc“ an.

C:\Users\schurigh>sc
BESCHREIBUNG:
        SC ist ein Befehlszeilenprogramm für die Kommunikation mit dem
        Dienststeuerungs-Manager und mit Diensten.
SYNTAX:
        sc  [Befehl] [Dienstname]  ...


        Die Option  hat das Format "\\ServerName"
        Weitere Hilfe zu Befehlen kann abgerufen werden durch Eingabe von:
        "sc [Befehl]"
        Befehle:
          query-----------Fragt den Status eines Diensts ab oder
                          listet den Status für Typen von Diensten auf.
          queryex---------Fragt den erweiterten Status eines Diensts ab oder
                          listet den Status für Typen von Diensten auf.
          start-----------Startet einen Dienst.
          pause-----------Sendet eine Steuerungsanfrage PAUSE an einen
                          Dienst.
          interrogate-----Sendet eine Steuerungsanfrage INTERROGATE an
                          einen Dienst.
          continue--------Sendet eine Steuerungsanfrage CONTINUE an einen
                          Dienst.
          stop------------Sendet eine Steuerungsanfrage STOP an einen
                          Dienst.
          config----------Ändert die Konfiguration eines Diensts
                          (beständig).
          description-----Ändert die Beschreibung eines Diensts.
          failure---------Ändert die Aktionen beim Scheitern eines
                          Diensts.
          failureflag-----Ändert das Fehleraktionskennzeichen eines Diensts.
          sidtype---------Ändert den Diensttyp SID eines Diensts.
          privs-----------Ändert die erforderlichen Berechtigungen eines
                          Diensts.
          qc--------------Fragt die Konfigurationsinformationen eines
                          Diensts ab.
          qdescription----Fragt die Beschreibung eines Diensts ab.
          qfailure--------Fragt die Aktionen ab, die bei einem
                          Dienstfehler ausgeführt werden.
          qfailureflag----Fragt das Fehleraktionskennzeichen eines Diensts ab.
          qsidtype--------Fragt den Diensttyp SID eines Diensts ab.
          qprivs----------Fragt die erforderlichen Rechte eines Diensts ab.
          qtriggerinfo----Fragt die Triggerparameter eines Diensts ab.
          qpreferrednode--Fragt den bevorzugten Knoten NUMA eines Diensts ab.
          delete----------Löscht einen Dienst (aus der Registrierung).
          create----------Erstellt einen Dienst (fügt ihn zur Registrierung
                          hinzu).
          control---------Sendet eine Steuerung an einen Dienst.
          sdshow----------Zeigt die Sicherheitsbeschreibung eines Diensts
                          an.
          sdset-----------Legt die Sicherheitsbeschreibung eines Diensts
                          fest.
          showsid---------Zeigt die SID des Diensts, passend zu einem zufälligen

                          Namen an.
          triggerinfo-----Konfiguriert die Triggerparameter eines Diensts.
          preferrednode---Legt den bevorzugten Knoten NUMA eines Diensts fest.
          GetDisplayName--Ruft den DisplayName für einen Dienst ab.
          GetKeyName------Ruft den ServiceKeyName für einen Dienst ab.
          EnumDepend------Listet die Dienstabhängigkeiten auf.

        Die folgenden Befehle benötigen keinen Dienstnamen:
        sc   

Passt nicht ganz ins Bloglayout, macht nichts. Wichtig ist nur, es gibt über den sc Befehl den delete Parameter und damit können wir Dienste löschen.
Der Dienst muss mit Namen angegeben werden also kopieren wir noch schnell den Namen des Dienstes aus der Dienstverwaltung:

Wer auch den Dienstnamen über die Konsole herausfinden möchte kann das mit dem Befehl „sc query“ versuchen. Ist die Ausgabe der Konsole zu lang muss sie in eine Datei geleitet werden: „sc query > log.txt„.

Wenn der Dienst läuft stoppe ich ihn mit:

sc stop LMIMaint

Auf dem lokalen PC ginge auch der PC

sc \\localhost stop LMIMaint

, remote auf anderen Computern muss \\localhost natürlich ersetzt werden.
Danach mit

sc delete LMIMaint

oder

sc \\localhost delete LMIMaint

löschen.

Wenn man viel rumfummelt schadet es sicher nicht, danach mit einem Registry Cleaner (z.B. CCleaner) etwaig entstandene Registryüberreste zu reinigen (am besten aber mit Sicherung).
Ein Neustart übernimmt das Tuning.

7 Kommentare

  1. Vielen Dank für die Ausführungen! Allerdings teile ich nicht die Meinung, dass echte Windows User so viel wie möglich über die Konsole erledigen wollen. Mir ist das zu umständlich. Aber vielleicht bin ich gar kein „echter“ Windows User…

  2. Super Tipp. Kleine Ergänzung: Wenn der Befehl mit der Meldung

    [SC] DeleteService FEHLER 1072:

    Der angegebene Dienst wurde zum Löschen markiert.

    antwortet, hilft ein Windows-Neustart. Danach ist der Dienst weg.

  3. Pingback: ITrig

Schreibe einen Kommentar