Hallo,
du hast das Script aber auch noch nicht mit Powershell 3.0 oder 4.0 getestet? Auch mit 3.0 und 4.0 wuerde dein Script nicht funktionieren, du fuehrst den restart-computer ja duch invoke-command lokal auf dem System aus, das du starten willst, und dann funktioniert
der Parameter wait logischer weise nicht, denn auf was soll der warten, durch das Neustarten kann er auf nichts warten, weil es den Process durch den Neustart nicht mehr gibt.
Du musst alos bei get-service und restart-computer mit dem Parameter -computernamen arbeiten, um remote den Zielserver starten.
Und den Parameter -wait kannst Du z.B: ueber zwei Do Until Schleifen nachbauen
- restart-computer -computername ServerA
- jetzt eine Do Until Schleife die solange laeuft, wie sich das System nach Start des Restarts noch pingbar ist
- beim herunerfahren wird irgendwann das Netzwerk getrennt
- quasi also der Zeitraum des herunterfahrens
- dann gehts in die zweite Do Until Schleife, die so lange laeuft bis das System wieder pingbar ist
natuerlich koennte man anstelle dem Ping (Test-Connection) auch auf verfuegbarkeit von WMI, RDP oder so pruefen, das Pruefen dann z.B.: alle 3 Sekunden oder so und ev. auch noch eine Zeistspanne einbauen, also wenn eine der 2 Schleifen laenger
wie X Minuten laeuft eine Fehlermeldung ausgeben, es keonnte ja sein, dass das System nicht sauber runter faehrt oder nicht mehr hochkommt ...
Beste Gruesse
brima