Als die Unix-Systeme noch das Maß der Dinge in der professionellen IT-Welt waren, kannten alle Administratoren und viele Anwender die sogenannten Daemons: Das waren Programme, die im Hintergrund abliefen und den Systemen Dienste wie beispielsweise einen Druckerspooler bereitstellten. Auf den Windows-Systemen existieren ebenfalls solche Programme, die dort aber als "Services" beziehungsweise Systemdienste bezeichnet werden.
Services und andere Dienstprogramme: Helfer im Hintergrund
Auch bei den Windows-Systemdiensten handelt es nur um Programme, die vom Betriebssystem ausgeführt werden. Allerdings werden sie in der Regel automatisch geladen und gestartet. Gehören sie dabei zu den Programmen, die für den Betrieb des Windows-Systems wichtig und notwendig sind, geschieht dies schon beim Start des Betriebssystems.
Es gibt auch genügend Anwendungsprogramme, die beim Aufruf einen entsprechenden Hintergrunddienst starten, den sie zur Ausführung ihrer Aufgabe benötigen. Leider habe viele dieser Programme die unangenehme Eigenschaft, diese Dienste mittels Autostart so im System zu verankern, dass sie immer zusammen mit Windows starten - auch wenn das entsprechende Programm nicht aktiv ist - und eine mindestens ebenso große Zahl von Entwicklern scheint zu "vergessen", dass es durchaus sinnvoll ist, solche Dienst spätestens bei der Deinstallation des Programms auch wieder aus dem System zu entfernen. Wir stellen in diesem Artikel auch Mittel und Wege vor, solche "Eindringliche" zu beseitigen.
Systemdienste und ihr Einfluss auf die Sicherheit
Ein Großteil der Systemdienste ist für Verwaltung und Betrieb des Windows-Rechners verantwortlich: Das reicht von der Anmeldung an einem Domänen-Controller mittels "netlogon" bis hin zur Verwaltung der meisten Netzwerkfeatures. Viele dieser Dienste beginnen ihre Arbeit mit dem Systemstart, wobei einige natürlich auch schon vor dem Anmelden am System aktiv sein müssen, und werden erst mit dem Herunterfahren des Rechners wieder beendet.
Systemdienste können vom Standpunkt der Systemsicherheit her betrachtet durchaus ein Risiko darstellen: Schließlich müssen diese Programme in der Regel mit sehr weitgehenden Zugriffsrechten ausgestattet sein. Da diese Programm Arbeiten am und mit dem System ausführen, müssen sie ihre Aufgaben mit den erweiterten Rechten von Systemkonten wie "Lokales System" oder "Netzwerkdienst" ausführen. Diese Rechte können dabei bis hin zu den Möglichkeiten eines Administrators reichen. Wurde ein solcher Dienst kompromittiert oder gar durch eine andere Version ersetzt, die von Angreifern manipuliert wurde, so kann das weitreichende Folgen für die Sicherheit eines Windows-Systems und das Netzwerk haben.
Beste Beispiele dafür sind unter anderem der "W32.Blaster", der eine Sicherheitslücke in den Remote-Procedure-Aufrufen (RPC) ausnutzte und sich auf diese Weise ausbreitete und Sasser, beim dem ein Fehler im Windows-Dienst "Sicherheitskonto-Manager" (Local Security Authority Subsystem - LSASS) verwendet wurde, um massenhaft Windows-Rechner zu kompromittieren. Aus diesem Grund gilt es gerade für Systemverantwortliche und Administratoren, immer ein wachsames Auge auf die Systemdienste zu haben.
Dienste finden, kontrollieren und bearbeiten
Gerade zu Zeiten von Windows XP konnten Anwender überall im Web und in diversen Publikationen Anleitungen finden, die ein "Tuning" durch Ausschalten beziehungsweise Deinstallation unnötiger Systemdienste von Windows versprachen. Waren Nutzen und Geschwindigkeitsgewinn solcher Aktionen, die teilweise mit abenteuerlichen Vorschlägen sogar Hintergrundprozesse des Windows-Kernels deinstallieren wollten, schon bei Windows XP eher zweifelhaft, so haben wir auf vielen Testsystemen feststellen können, dass es spätestens mit dem Einsatz von Windows 7 nur noch wenige Gründe dafür gibt.
Moderne Windows-Systeme sind nach der Installation grundsätzlich recht gut ausbalanciert, was die Belastung durch die Systemdienste angeht. Hinzu kommt, dass aktuelle PC-Systeme mit genügend Leistung ausgestattet sind, um auch noch den einen oder anderen Hintergrunddienst ohne Leistungseinbußen zu bewältigen: In der Regel sind es eher nicht die Standard-Systemdienste des Windows-Systems, die einen PC langsam machen.
Während Microsoft bei Windows 7 standardmäßig noch einige unnötige Dienste mit auf das System bringt und startet, ist dies zudem mit dem Erscheinen von Windows 8.x besser geworden. So wurden beispielsweise bei einer Installation von Windows 7 die PC Tablet-Dienste automatisch installiert und aktiviert, auch wenn es sich um einen normalen Desktop-PC handelte. Diese Dienste werden bei Windows 8.x nur noch dann installiert, wenn es sich um ein Tablet-System handelt.
Vier Wege, um unter Windows die Dienste aufzulisten
Trotzdem gibt es immer wieder Gründe, die Systemdienste und deren Ausführung zu überwachen, denn schließlich können auch andere Anwendungsprogramme solche Dienste auf das System bringen. Wer also diese Art von Diensten auszuschalten oder vielleicht sogar aus dem System entfernen will, sollte die verschiedene Möglichkeiten kennen, die Windows zu deren Kontrolle bereitstellt.
Der "klassische Weg: Das ist der Zugriff über die Systemkonsole. Sie steht auf allen aktuellen Windows-Versionen bereit und kann direkt über ein Fenster zur Ausführung eines Befehls (Aufruf mittels Windows-Taste + "R"), in das der Anwender dann "services.msc" eingibt; gestartet wird. Auch der Zugriff über die Konsole der "Computerverwaltung (Windows-Taste + "X") und die Auswahl von "Dienste" unter dem Menüpunkt "Dienste und Anwendungen" bringt diese Konsole auf den Windows-8.x-Bildschirm.
Das Hilfsprogramm "msconfig" der Systemkonfiguration: Der Anwender startet es ist über den Aufruf eines Fenster zum Ausführen eines Befehls und der anschließenden Eingabe von "msconfig". Danach bringt ein Klick auf den Reiter "Dienste" alle Systemdienste auf den Schirm.
Im Task-Manager anzeigen: Der Task-Manager, der unter Windows 8.x ebenfalls in dem Menü zu finden ist, das Anwender mit Hilfe von Windows-Taste +"X" aufrufen, kann solche Programme über den Reiter mit der Bezeichnung "Dienste" auflisten. Nach Auswahl eines der Dienste lässt sich hier auch über einen Rechtsklick aus dem Kontextmenü direkt zu diesem Dienst in der Systemkonsole oder in die Prozesstabelle zum dazugehörigen Systemprozess wechseln.
Das Kommandozeilenprogramm mit dem Namen "sc": Die Lösung, wenn es unter anderem darum geht, hartnäckige Dienste aus dem System zu entfernen.
Ändern, stoppen, entfernen: Arbeiten an und mit den Diensten
Die Systemkonsole dürfte den meisten Anwendern geläufig sein, wenn es um die Verwaltung der Systemdienste geht. Hier öffnet ein Doppelklick auf den jeweiligen Dienst ein Fenster mit den Eigenschaften, während durch ein Rechtsklick ein Kontextmenü geöffnet wird, in dem Anwender einen Dienst direkt starten oder auch anhalten können. Ein genauerer Blick auf den Eigenschaftendialog präsentiert im Reiter "Allgemein" die Möglichkeit, den sogenannten Starttyp des jeweiligen Programms anzuzeigen. Dabei stehen die folgenden Auswahlmöglichkeiten zur Verfügung:
Automatisch: Dienst startet mit dem Start von Windows
Automatisch (Verzögerter Start): Dienst startet kurz nach dem Booten von Windows
Manuell: Dienst wird nicht automatisch gestartet. Wichtiger Hinweis dazu: Das Windows-System ist trotzdem dazu in der Lage, einen auf "manuell" gesetzten und nicht gestarteten Dienst zu starten, wenn dieser beispielsweise von einem anderen Dienst benötigt wird!
Deaktiviert: Dieser Dienst wird nie gestartet - selbst dann nicht, wenn er zum Funktionieren des Windows-Systems notwendig ist. Der Dienst und das dazu gehörende Programm sind aber immer noch auf dem System installiert!
Wer nun an dieser Stelle, sei es aus "Tuning-Gründen" oder weil er ein Systemdienst für überflüssig erachtet, einen Dienst deinstallieren will, der wird schnell feststellen, dass er einen Dienst an dieser Stelle zwar deaktivieren aber nicht aus dem Windows-System entfernen kann.
Praxistipp: Zu Testzwecken besteht der sichere Weg grundsätzlich darin, zunächst einmal einen Dienst auf "manuell" zu setzen und dann das System neu zu starten und zu beobachten. Wird der Dienst trotz dieser Maßnahmen nach einer gewissen Zeit gestartet, so besteht eine Abhängigkeit zu einem anderen Dienst und eine weitere Überprüfung ist angesagt. Grundsätzlich hilft hier schon einmal in Blick in die bei den Eigenschaften des Dienstes aufgeführten Abhängigkeiten.
Passiert sonst nichts und alle Funktionen des Betriebssystems arbeiten weiterhin zur Zufriedenheit, kann der Dienst deaktiviert werden. Das kann beispielsweise ohne Probleme mit dem Bitlocker-Dienst auf den Home-, Home-Premium-und Professional-Versionen von Windows 7 geschehen: Obwohl diese Windows-Versionen das Feature nicht unterstützen, wird der entsprechende Dienst standardmäßig auf den Rechnern installiert. Allerdings ist er auf solchen Systemen standardmäßig bereits auf "manuell" gesetzt, damit nicht aktiv und belastet das System so auch nicht.
Unter Windows XP galt es als vielfach als "Profi-Tipp", den Indexdienst des Systems abzuschalten, um so die Performance des Systems zu steigern. Seit Windows Vista/7 und damit natürlich auch auf den Windows-8.x-Systemen suchen Anwender diesen Dienst in der Liste der Systemdienste vergeblich, denn er heißt nun "Windows Search". Das Abschalten dieses Dienstes bringt aber erfahrungsgemäß auf aktuellen Systemen kaum einen Geschwindigkeitsgewinn - nur das Suchen wird umständlicher. Wer noch sehr alte Platten in seinem Windows-System betreibt, die ob dieses Dienstes immer "vor sich hin rattern", der sollte besser die Indizierung im Windows-Explorer bei den Eigenschaften des entsprechenden Laufwerks ausschalten.
Doch was können und sollen die Anwendern denn nun wirklich "stilllegen", wenn es um die Systemprozesse geht? Wie finden sie vor allen Dingen die entsprechenden Dienste und Programme? Wer die Systemkonfiguration in der Ausprägung des Programms "msconfig" nutzt, sollte bei deren Anzeige zunächst einmal das Auswahlfeld "Alle Microsoft-Dienste ausblenden" auswählen. Dann werden nur noch die Dienste angezeigt, die nicht direkt zum Betriebssystem gehören. Da zeigen sich dann häufig Dinge, wie Lizenz-Server, die irgendwelche Programme einfach dem System installiert haben, ohne den Anwender davon zu informieren. Auch Dienste, bei denen in der Sparte "Hersteller" dann ein "Unbekannt" auftaucht, verdienen eine nähere Untersuchung. Auch hier gilt wieder: Anwender sollten solche Dienste sollte man zunächst stilllegen, überprüfen ob noch alle Programme entsprechend funktionieren und dann den Dienst in der Systemkonsole deaktivieren.
Gerade viele Programme zum Kopieren und Abgleichen von Dateien wie Allway Sync hinterließen auf unseren Testsystemen immer wieder eigene Systemdienste, obwohl die Programme korrekt deinstalliert wurden. Auch Apples Software "iTunes" ist auf den Windows-Systemen an vorderster Front mit dabei, wenn es darum geht, unnötig viele Systemdienste auf dem Rechner zu installieren: Neben dem eigenen Dienst "Bonjour", der zur Erkennung der Netzwerkdienste und -geräte dient, kommen ungefragt auch noch der Dienst für mobile Apple-Geräte und der iPod-Dienst hinzu. Wer allerdings nur Musik und Videos bei iTunes einkaufen will, ohne Apple-Hardware zu verwenden, braucht diese Dienste sicher nicht. Aber auch PDF-Reader der verschiedensten Anbieter sowie die verschiedensten Anwendungen von Google tun sich besonders hervor, wenn es darum geht, weitere Systemdienste auf einem Windows-System zu installieren und zu betreiben.
Viele dieser Programme werden zudem als Autostart-Programm mittels einer der vielen Möglichkeiten, die Windows zum automatischen Start von Programmen bietet, im System verankert. Wer also ganz sicher gehen will, kann zusätzlich zu den hier bereits beschriebenen Lösungen auch noch auf das Programm "AutoRuns for Windows" aus der bewährten Sammlung der Sysinternal Tools von Microsoft zurückgreifen: Auch bei diesem Programm steht ein Schalter zur Verfügung, der entweder sämtliche Einträge von Microsoft oder nur die Einträge, die sich auf Windows beziehen, ausblendet. Mit Hilfe dieses Programms sind wir schon vielen Hintergrundprogrammen und Diensten auf die Spur gekommen, deren Vorhandensein wir uns zuvor nicht erklären konnten.
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)