Powershell ist ein wunderbares Werkzeug, mit dem man ganz viele Dinge erledigen kann.
Aber haben Sie es schon einmal geschafft, einen Dienst auf einem anderen Server/Computer zu starten oder zu stoppen?
Da gibt es nämlich ein kleines Hindernis – wir zeigen Ihnen, wie Sie dies kinderleicht bewältigen können!
Schauen wir uns zuerst einmal das Problem an. Welche Powershell CMDlets stehen uns für *-Service zur Verfügung?
- Get-Service
- Set-Service
- Start-Service
- Stop-Service
- …
Fangen wir mit Get-Service und einer lokalen Abfrage an:
Get-Service -Name W32Time
Gehen wir einen Schritt weiter und starten die gleiche Abfrage für einen anderen Computer (Bsp: „pc01“). Hierzu nutzen wir den Parameter „-ComputerName„
Get-Service -Name W32Time -ComputerName pc01
Jetzt sollte man denken, man nutzt einfach das CMDlet Start- bzw. Stop-Service und hängt den Parameter -ComputerName an, um Dienste zu starten/stoppen. Das Problem ist: den Parameter -ComputerName gibt es bei diesen CMDlets nicht!
Jetzt kommt einem die Idee, man könnte doch ein Get-Service in ein Start-Service zu pipen. Die Idee ist gut, nur leider greift er beim CMDlet Start-Service wieder auf den lokalen Computer zu, nicht auf den Remote Computer.
Lösung:
Das CMDlet Set-Service kann auch zum Starten & Stoppen von Diensten verwendet werden, es unterstützt den Parameter „-ComputerName“ und zum Starten & Stoppen können wir den Parameter „-Status“ verwenden.
Set-Service -Name W32Time -ComputerName pc01 -Status Running
Der Parameter „-Status“ kennt übrigens folgende Modi:
- Running
- Stopped
- Paused
Eine recht simple, allerdings eher unbekannte Lösung.
Viel Spaß damit!