Notwendige Dienste und Scripte

Ratgeber - Windows 7 Dienste aufräumen

31.05.2013 von Mike Hartmann und Moritz Jäger
Unter der Oberfläche von Windows arbeiten eine Menge Dienste. TecChannel sagt Ihnen, auf welche Sie in keinem Fall verzichten sollten - und wie Sie den überflüssigen Diensten mit praktischen Scripten auf den Leib rücken.

Microsoft installiert bei Windows 7 installiert lieber zu viele Dienste, als dass der Nutzer möglicherweise auf bestimmte Versionen verzichten muss. Dabei treibt die Fantasie der Entwickler manchmal seltsame Blüten. Denn egal, um was für einen PC es sich handelt - der "Tablet PC-Eingabedienst" wird sicherheitshalber gleichmal installiert.

Überblick: Die Dienste von Windows 7.

Allerdings muss man Microsoft zugutehalten, dass der größte Teil der unnötigen Dienste auf den Starttyp "Manuell" gesetzt wurde. Das bedeutet, dass Microsoft den Dienst erst dann startet, wenn er auch wirklich gebraucht wird. Denn manche Dienste sind selbst dann vorhanden, wenn die Windows-Lizenz bestimmte Funktionen gar nicht unterstützt. Ein Beispiel wäre etwa die Verschlüsselungsfunktion Bitlocker. Obwohl diese Funktion bei Windows 7 Professional nicht enthalten ist, hat Microsoft sicherheitshalber den Dienst mit installiert - lässt ihn aber zumindest nicht automatisch starten.

Grundsätzlich empfiehlt es sich nicht, einen Dienst komplett zu deaktivieren. Zu groß können die Komplikationen sein, etwa wenn Sie eine neue Funktion ausprobieren wollen. Wer dennoch jedes Quäntchen Geschwindigkeit benötigt, sollte scheinbar unbrauchbare Dienste zunächst auf "Manuell" umschalten und normal weiterarbeiten. Benötigt Windows einen bestimmten Dienst dennoch, kann das Betriebssystem die Komponente notfalls nachladen.

Dienste steuern - wichtige Dienste erkennen

Am einfachsten erkennt man laufende Dienste über das dazugehörige Service Control Applet. Das Interface starten Sie am einfachsten über Start / Ausführen / services.msc, so sparen Sie sich lange Suchereien im Startmenü. In dieser Management Konsole haben Sie Zugriff auf die eingerichteten Dienste und ihren aktuellen Status. Dies ist auch der beste Weg für Experimente oder für Dienste, die Sie dauerhaft abschalten wollen.

Baumdiagramm: Die Abhängigkeiten zeigen, welche Dienste worauf aufbauen.

Microsoft liefert zu allen Diensten eine Beschreibung, gegenüber der Vorgängerversion Vista fällt diese teilweise noch ausführlicher aus. Bevor Sie aber eine falsche Entscheidung über die Wichtigkeit eines Dienstes treffen, sollten Sie mit einem Rechtsklick die Eigenschaften aufrufen. Bei unbekannten Diensten, aus deren Beschreibung Sie nicht schlau werden, hilft der Reiter Abhängigkeiten. Darin können Sie nicht nur sehen, auf welche Systemkomponenten der Dienst zugreift. Im zweiten Fenster zeigt Ihnen Windows zudem, welche Funktionen von diesem Dienst wiederum abhängig sind.

Ein praktisches Beispiel dafür ist der Multimediaklassenplaner. Die Beschreibung ist ein wenig dürftig, was der Dienst genau erledigt bleibt im Dunkeln. Wirft man allerdings einen Blick in die Abhängigkeiten, zeigt sich, dass "Windows Audio" auf den Dienst angewiesen ist - und ohne "Windows Audio" kann das System keine Klänge wiedergeben.

Steuerung per Batch

Wollen Sie die Dienste dennoch selbst verwalten, können Sie auf Batch-Dateien zurückgreifen, um für einen Einsatzzweck jeweils unerwünschten Dienste abzuschalten und danach wieder hochzufahren. So kann man sich beispielsweise eine "Spiele-Konfiguration" erstellen, in der Aero abgeschaltet wird, das ja auch dann ordentlich Ressourcen frisst, wenn es nur im Hintergrund agiert.

Batch-Datei: Das Script im Einsatz.

VMware Workstation hat beispielsweise die unangenehme Eigenschaft, seine diversen Dienste immer zu starten, auch wenn VMware gar nicht benutzt wird. Sinnvoller wäre es, wenn die Dienste beim Start von VMware angestoßen und nach Beendigung wieder gestoppt werden. Auch hier bietet sich ein Batch an, der die Dienste startet, VMware startet und auf die Beendigung von VMware wartet, um die Dienste wieder zu stoppen.

Der Batch sähe also im Prinzip wie folgt aus:

REM Benötigte Dienste starten/Ungewollte stoppen

REM Gewünschtes Programm ausführen

REM Ungewollte Dienste wieder stoppen/Benötigte wieder starten

Dabei machen wir uns zunutze, dass der Batch solange nicht weiter läuft (und damit die Dienste wieder auf normalen Status setzt), wie das gewünschte Programm nicht beendet ist. Um einen Dienst zu beeinflussen, haben Sie auf der Kommandozeile zwei Möglichkeiten: der altbekannte net-Befehl und der speziell auf die Steuerung von Diensten ausgelegte Befehl sc.

Bei beiden sind die relevanten Operationen start und stop mit dem Dienstnamen als Parameter. Dabei können Sie entweder den Kurznamen angeben, also etwa p2pimsvc, oder den langen Namen in Anführungszeichen, wie beispielsweise "Peernetzwerkidentitäts-Manager". Bei der letzten Variante bereiten Umlaute allerdings mitunter Probleme, so dass es besser ist, auf den Kurznamen auszuweichen.

Rechte-Probleme

Zum Starten eines Dienstes benötigt man keine besonderen Rechte, da ansonsten das Prozedere mit Diensten, die auf den Starttyp "Manuell" gesetzt sind, nicht funktionieren würde. Das Stoppen von Diensten ist dagegen nur mit erweiterten Rechten möglich. Nun könnte man also den gesamten Batch per Als Administrator ausführen starten. Das ist aber unerwünscht, da dadurch auch das Programm mit erweiterten Rechten ausgeführt würde. Hier helfen die Script-Elevation-Power-Toys von Microsoft TechNet. Seit Vista wurden die Toys deutlich weiterentwickelt, für Windows 7 benötigen Sie daher eine aktuelle Version. Im dazu passenden Technet-Blog finden Sie weitere Informationen.

Die Script Elevation Power Toys bringen das aus Linux bekannte Sudo-Prinzip auf die Windows-Kommandozeile. Mit dem Befehl elevate kann man die Rechte der nachfolgenden Aktion anheben, und so bestimmte Aufgaben auch als Nicht-Admin durchführen. Ein Beispiel wäre das Script elevate net stop p2pimsvc. Solle in Dienst gestoppt werden, fragt Windows explizit nach. Würden wir also jeden Dienst einzeln per elevate stoppen, hätte das einen Haufen solcher Dialoge zur Folge. Darum fassen wir die beiden Punkte "Benötigte Dienste starten/Ungewollte stoppen" und "Ungewollte Dienste wieder stoppen/Benötigte wieder starten" in jeweils eigenen Batch-Dateien zusammen:

elevate svcprep.cmd

REM Gewünschtes Programm starten

elevate svcclean.cmd

Dadurch kommt der Dialog nur zweimal auf. Das Verfahren hat noch einen weiteren Vorteil: svcprep.cmd und svcclean.cmd lassen sich mehrfach verwenden. Die Dateien bestehen lediglich aus einer Reihe von net start und net stop Anweisungen.

Wichtig: Die richtige Reihenfolge

Beim Stoppen von Diensten sollten Sie unbedingt auf die Reihenfolge achten. Wenn Sie einen Dienst stoppen, von dem andere abhängig sind, erhalten Sie für jeden Dienst eine Abfrage, ob er auch gestoppt werden soll.

Sie machen sich das Leben leichter, wenn Sie erst die abhängigen Dienste stoppen und dann die grundlegenden. Also beispielsweise

net stop "Peernetzwerk-Gruppenzuordnung"

net stop "Peer Name Resolution-Protokoll"

net stop "Peernetzwerkidentitäts-Manager"

Das macht zunächst ein wenig Mühe, sich die richtige Reihenfolge zusammenzusuchen. Wenn Sie sich aber grundlegend eine sortierte Liste der Diensteabhängigkeiten erzeugen, können Sie aus dieser Liste schnell die benötigten Batches generieren.

Beispiel-Batch Netzwerk komplett aus

Die gesammelten Netzwerkdienste von Windows belegen eine Menge Ressourcen, insbesondere Speicher. Das ist bei heutigen Systemen zwar meist kein Thema mehr. Bei Tuning-Versprechen durch Abschalten von Funktionen sollte man ohnehin misstrauisch werden. Aber wenn man mal komplett offline sein möchte, oder aus Testgründen die Dienste deaktivieren will, würde folgende Batch helfen:

net stop Netlogon

net stop SessionEnv

net stop Browser

net stop LanmanWorkstation

net stop dot3svc

net stop Wlansvc

net stop EapHost

net stop SharedAccess

net stop IKEEXT

net stop PolicyAgent

net stop RemoteAccess

net stop MpsSvc

net stop BFE

net stop WinHttpAutoProxySvc

net stop Dhcp

net stop Dnscache

net stop IPBusEnum

net stop fdPHost

net stop ALG

net stop BITS

net stop iphlpsvc

net stop napagent

net stop NetTcpPortSharing

net stop SLUINotify

net stop netprofm

net stop Netman

net stop NlaSvc

net stop nsinet stop CscService

net stop p2psvc

net stop PNRPAutoReg

net stop PNRPsvc

net stop p2pimsvcnet stop RasAuto

net stop RemoteAccess

net stop RasMan

net stop RemoteRegistry

net stop LanmanServer

net stop SNMPTRAP

net stop WMPNetworkSvc

net stop upnphost

net stop SSDPSRV

net stop lmhosts

net stop Fax

net stop TapiSrv

net stop UmRdpService

net stop TermService

net stop TrkWks

net stop lltdsvc

net stop WebClient

net stop wuauserv

net stop WinDefend

net stop wcncsvc

net stop W32Time

Es macht keinen Sinn, ein entsprechendes Gegenskript zu erstellen, das die ganzen Dienste wieder startet. Booten Sie den Rechner einfach neu.

Unverzichtbare Dienste

Wie bereits Eingang erwähnt, kann man im Rahmen der Abhängigkeitsschaltfläche recht gut prüfen, welcher Dienste wirklich notwendig sind. Auch die Erklärungen wurden in Windows 7 teilweise verbessert und erweitert. Schalten Sie im Dienste-Manager aber in jedem Fall in die erweiterte Ansicht, Standard liefert Ihnen kaum den kompletten Überblick.

Wiederherstellung: Stürzt ein Dienst ab, können Sie die je nach Anzahl der Fehler anders reagieren lassen.

So sehr man das Angebot zusammenstreichen kann, eine Handvoll der Windows-Dienste sind tatsächlich unverzichtbar für einen reibungslosen Betrieb. Dazu gehört beispielsweise der RPC-Dienst, von dem so ziemlich alle weiteren Systemkomponenten abhängen, wie etwa auch COM. Der RPC-Dienst selbst ist seit Vista von einem weiteren Dienst abhängig: "DCOM-Server-Prozessstart", der natürlich auch nicht beendet oder deaktiviert werden darf.

Wer auf Sound nicht verzichten kann, sollte "Windows Audio" nicht abschalten und darf infolgedessen auch folgende direkt oder indirekt dazugehörenden Dienste nicht deaktivieren: Multimediaklassenplaner, RPC, Windows-Audio-Endpunkterstellung und Plug & Play.

Um zu drucken, ist die Druckerwarteschlange unabdingbar, und in Windows-Netzwerken kommt man nicht ohne den Arbeitsstationsdienst aus. Dieser sorgt unter anderem dafür, dass die Verbindungen zu den anderen Rechnern hergestellt werden.

Das Windows-Ereignisprotokoll und die "Windows Verwaltungsinstrumentation" sollten Sie ebenfalls unangetastet lassen. Letztere ist unter anderem dafür zuständig, dass der Dienste-Manager einwandfrei funktioniert.

Auch beim Sicherheitskonto-Manager haben Sie keine Chance, Ressourcen zu sparen. Sie sind seit Windows Vista ein integraler Bestandteil des Sicherheitsmodells, inklusive der Rechteverwaltung. Ohne den Benutzerprofildienst ist ein Anmelden nicht mehr möglich, also auch hier keine Möglichkeit zu sparen. Die Kryptografiedienste verwalten Zertifikate und Stammstellen und sorgen dafür, dass Signaturen von Windows-Dateien bestätigt werden können. Ohne diesen Dienst funktioniert unter anderem auch Windowsupdate nicht mehr.

Fazit

Wer aktiv in die Windows Dienste eingreift, sollte wissen, worauf er sich einlässt. Zwar sind die Dienste deutlich fehlerfreundlicher als etwa die Registry, dennoch kann man sich auch hier schnell seine Windows-Installation zerstören. Leider bietet die Dienste-Konsole keinerlei Möglichkeit, Speicherstände anzulegen.

Dokumentation: Die Problemaufzeichnung hilft beim Nachvollziehen von Änderungen.

Sobald Sie mit den Diensten arbeiten, sollten Sie jeden Schritt genau dokumentieren. Nur so können Sie nachvollziehen, welcher deaktivierte Dienst welchen Fehler erzeugt. Dabei helfen kann Ihnen beispielsweise das neue Feature der Problemaufzeichnung, das im Startmenü von Windows 7 unter dem wenig sinnigen Menüpunkt Schritte zum Reproduzieren eines Problems aufzeichnen zu finden ist. (cvi/mje)