Dienste mit PowerShell starten die nicht automatisch gestartet wurden

Heute gibt es nur einen ganz kurzen Tipp zu einem Thema, was mir immer mal wieder auffällt und auf den Keks geht. Wenn man einen Server neu startet (insbes. bei virtuellen Maschinen) und dieser Server beim Start nicht genügend Ressourcen hat, so kann es vorkommen, dass bestimmte Dienste die automatisch starten sollen, leider nicht gestartet werden. Im Ergebnis führt das dann dazu, dass z.B. der Exchange Server nicht läuft. Startet man alle Dienste funktioniert der Server in der Regel auch wieder.

Natürlich kann man in der Systemsteuerung das Tool Dienste aufmachen, dort nach Starttyp Automatisch sortieren, schauen was alles nicht läuft und dann per Hand starten. Das ist mühsam und macht keinen Spaß. Ich habe mal den folgenden PowerShell Befehl geschrieben der einfach alle Dienste die auf automatisch stehen und die nicht laufen startet.

Get-Service | where StartType -eq Automatic | where Status -eq Stopped | Start-Service

Der Befehl ist sehr einfach aufgebaut. Get-Service holt sich erstmal alle Dienste ab. Über die beiden Where Cmdlets werden dann erst die Dienste gefiltert deren Starttyp auf „Automatic“ steht und dann werden von diesen die Dienste genommen bei denen der Status auf „Stopped“ steht. Wenn PowerShell das abgearbeitet hat haben wir eine Liste (aus Dienstobjekten) bei denen der Typ auf „Automatic“ und der Status auf „Stopped“ steht (also alle automatischen Dienste die gerade nicht laufen) erzeugt. Die Liste wird dann einfach an Start-Service weiter-gepiped. Dieses Cmdlet versucht die Dienste neu zu starten. Damit das gut funktioniert sollte man die PowerShell mit administrativen Berechtigungen ausführen.

Schreibe einen Kommentar

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

%d Bloggern gefällt das: