Notwendige Dienste und Scripte

Ratgeber - Windows 7 Dienste aufräumen

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.
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.