Kann wirklich Dienste "beseitigen": das Programm "sc"
Geht es dann darum, einen Dienst nicht nur zu deaktivieren, sondern ihn endgültig aus dem Windows-System zu entfernen, so muss das Kommandozeilenprogramm "sc" zum Einsatz kommen. Dieses Programm wird vom Microsoft als zentrale Schnittstelle zur Kommunikation mit dem Dienststeuerungs-Manager (der im Prinzip alle Dienste "unter sich hat") und den Diensten selbst bezeichnet. Ein einfacher Aufruf des Befehls zeigt dann auch eine sehr umfangreiche Liste mit Parametern und Möglichkeiten, die dieser Befehl zu bieten hat. Im Zusammenhang mit ungewollt auf dem System installierten Diensten ist es besonders interessant, dass dieses Programm einen Parameter "delete" aufweisen hat, mit dessen Hilfe die Entfernung des Dienstes möglich ist. Der grundsätzliche Aufruf sieht dabei folgendermaßen aus:
sc delete <Name des Dienstes>
Wichtiger Hinweis: Der Anwender muss in diesem Zusammenhang jedoch noch eine kleine Schwierigkeit bewältigen: Ein Dienst kann unter Windows durchaus unterschiedliche Namen haben und selbst die von uns vorgestellten Systemprogrammen zeigen zwar alle die gleichen Systemdienste an, sortieren sie aber nach anderen Kriterien. Während der Task-Manger die Namen der Prozesse unter "Name" auflistet, zeigt die Systemkonsole unter der Spalte "Name" die Beschreibung des Dienstes. Wer dieses Verhalten ausprobieren möchte, sollte einmal den "Gatewaydienst auf Anwendungsebene" in der Systemkonsole suchen, wo er unter diesem Namen auch zu finden ist. Im Task-Manager ist er dann aber in der Spalte "Name" unter "ALG" gelistet, was dem Namen des Programm "alg.exe" entspricht. "Gatewaydienst" findet sich im Task-Manger hingegen in der Spalte "Beschreibung".
Woher bekommt ein Anwender also den richtigen Namen des Dienstes, wenn er diesen mittels des Kommandos "sc" entfernen möchte? Dieser ist am einfachsten über die Konsole und das Eigenschaftenfenster des jeweiligen Dienstes auszumachen. Wir haben uns als ein Beispiel einen Dienst mit dem Namen "BotKind Service" ausgesucht, der durch eine Software, die bereits wieder deinstalliert wurde, auf eines unserer Testsysteme kam. Ein Blick in die Konsole und auf die Eigenschaften des Dienstes enthüllte, dass sein Dienstname "BotKindSyncService" lautet. Stellt sich dabei heraus, dass der Dienst noch aktiv ist, musste der Anwender ihn zunächst einmal stoppen.
Wichtig: Alle Zugriffe auf Dienst mit Hilfe des sc-Programms erfordern die Rechte eines Administrators. Die Eingabeaufforderung muss also durch einen Rechtsklick im Kontextmenü mit "Als Administrator ausführen" gestartet werden. Danach kann dann der entsprechende Aufruf gestartet werden:
sc stop BotKindSyncService
Danach kann dann der Aufruf folgen, der den Dienst aus dem System entfernt:
sc delete BotKindSyncService
Der Befehl meldet dann auch direkt zurück, dass der Dienst (service) erfolgreich gelöscht wurde. Davon kann sich der Anwender dann auch durch einen Blick in die Konsole überzeigen.
Natürlich können Anwender einen Dienst auch aus dem System löschen, in dem sie in die Registry eingreifen. Die Dienste finden sie unter folgendem Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Dort ist dann nur jeweils der entsprechende Namen des Dienstes zu suchen und der Schlüssel zu löschen. Wir raten grundsätzlich von dieser Methode ab, da sie erwiesenermaßen auch zu instabilen Systemzuständen führen kann. (sh)