IT

Windows-Dienste starten und stoppen mit PowerShell und CMD

Wer einen Dienst starten oder stoppen möchte macht dies im Normalfall über die Dienste-Verwaltung in der Systemsteuerung oder den Task-Manager. Allerdings ist es durchaus auch sinnvoll das in einem PowerShell-Skript oder einer Batch-Datei zu erledigen. Wie das geht erfährst du in diesem Artikel.

Stoppen in PowerShell

Service starten in PowerShell

Stoppen in CMD

Starten in CMD

 

Beispiel mit nicht automatisch startenden Diensten

Auf einem Windows Server 2003 R2 hatte ich damals  ab und zu das Problem, dass bestimmte Exchange-Dienste und der HyperV-VM-Shutdown-Dienst nach einem Neustart des Servers nicht zuverlässig starteten. Obwohl unter Dienststart „Automatisch“ konfiguriert war tat sich nichts.

Um das ganze bei einem automatischen Neustart zu überprüfen, hatte ich mir eine Kombination aus einem Batch- und einem PowerShell-Skript gebaut. Denn unter Server 2003 R2 hatte ich leider keine Möglichkeit gefunden ein PowerShell-Skript direkt über die Aufgabenplanung beim Systemstart auszuführen. Mit einem Batch-Skript ist dies aber auch in älteren Windows-Server-Versionen problemlos möglich.

Das PowerShell-Skript sieht wie folgt aus:

 

Das Skript iteriert durch alle in der Variable $Services angegebenen Dienste und überprüft ob diese bereits ausgeführt werden. Ist dies nicht der Fall werden sie über „net start“ gestartet.

 

Die Batch-Datei sieht wie folgt aus:

Eine Batchdatei um die PS1-Datei aufzurufen könnte, mit eingebauten Timeout, wie folgt aussehen:

Natürlich funktioniert das PowerShell-Skript auch unter neueren Server-Versionen. Allerdings braucht man hier die zusätzliche Batch-Datei nicht unbedingt.

 

Fazit

Mit Hilfe der Befehle kann man aber auch komplexere Probleme lösen, wenn z. B. ein Dienst erst nach einem anderen gestartet werden darf oder wenn für den Neustart einer Anwendung auch ein Dienst neu gestartet werden muss.

 

 

 

 

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Tobias Langner

Ich arbeite seit mehreren Jahren als Software-Release-Manager, zuvor als IT-Administrator, bin ausgebildeter Fachinformatiker für Systemintegration und Studium-"Pausierer" an der FernUni Hagen. Achtung: Für die Richtigkeit der zur Verfügung gestellten Informationen, Skripte, etc. übernehme ich keine Gewähr. Deren Nutzung geschieht ausdrücklich auf eigene Gefahr!

Alle Beiträge ansehen von Tobias Langner →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert