PowerShell script Hilfestellung
Guten Tag Administrator-User,
ich bin auf der Suche nach Hilfestellung für eine Powershell Skript, hier mal kurz eine Beschreibung, was ich vor habe.
Wir müssen nach einem "MS Patch Day" entsprechend getestete Patches auf eine größere Anzahl an Servern in eine virtuellen Environment neustarten, vorher aber sicherstellen, ob noch jemand auf den Servern eingeloggt ist, und ob evtl. noch Patches bei der automatischen installation fehlgeschlagen sind.
was ich bisher habe
$server = Get-Content "C:\serverliste.txt"
$credential = Get-Credential domäne\adminaccount
Restart-Computer -ComputerName $server -force -credential $credential
1. es sollen die DNS Namen aus der Datei "C:\serverliste.txt" gelesen werden > funktioniert
2. es sollen admin credentials abgefragt werden > funktioniert
3. anzeigen, welche User noch auf dem Server eingeloggt sind > fehlt
4. anzeigen, ob Updates "failed" sind > fehlt
5. Fragen, ob der Server neu gestartet werden soll, Antwort mit [Y] [N]
6. wenn neustart mit [Y] warten bis der Server wieder "up" ist und dieses entsprechend ausgeben, mit zB "server up and running again"
7. dann zum nächsten server in der serverliste.txt springen und wieder bei 3. weitermachen,
solange bist die serverliste.txt komplett abgearbeitet ist
wer kann mir da mal helfen, bzw. hat sowas in der Art, was ich nutzen könnte?
vielen dank und schonmal ein schönes Wochenende.
ich bin auf der Suche nach Hilfestellung für eine Powershell Skript, hier mal kurz eine Beschreibung, was ich vor habe.
Wir müssen nach einem "MS Patch Day" entsprechend getestete Patches auf eine größere Anzahl an Servern in eine virtuellen Environment neustarten, vorher aber sicherstellen, ob noch jemand auf den Servern eingeloggt ist, und ob evtl. noch Patches bei der automatischen installation fehlgeschlagen sind.
was ich bisher habe
$server = Get-Content "C:\serverliste.txt"
$credential = Get-Credential domäne\adminaccount
Restart-Computer -ComputerName $server -force -credential $credential
1. es sollen die DNS Namen aus der Datei "C:\serverliste.txt" gelesen werden > funktioniert
2. es sollen admin credentials abgefragt werden > funktioniert
3. anzeigen, welche User noch auf dem Server eingeloggt sind > fehlt
4. anzeigen, ob Updates "failed" sind > fehlt
5. Fragen, ob der Server neu gestartet werden soll, Antwort mit [Y] [N]
6. wenn neustart mit [Y] warten bis der Server wieder "up" ist und dieses entsprechend ausgeben, mit zB "server up and running again"
7. dann zum nächsten server in der serverliste.txt springen und wieder bei 3. weitermachen,
solange bist die serverliste.txt komplett abgearbeitet ist
wer kann mir da mal helfen, bzw. hat sowas in der Art, was ich nutzen könnte?
vielen dank und schonmal ein schönes Wochenende.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 390103
Url: https://administrator.de/forum/powershell-script-hilfestellung-390103.html
Ausgedruckt am: 11.04.2025 um 06:04 Uhr
2 Kommentare
Neuester Kommentar
Moin,
zu Punkt 3
Versuchs mal mit
Das dürfte dir die gewünschten ergebnisse bringen. inkl. Leerlauf zeit des Users
Ansonsten im Script schöne schleifchen basteln. solltest du ja hinbekommen.
das Server UP liese sich per Ping lesen oder abfrage eines bestimmten Prozesses ob der wieder läuft..
LG, Manu
zu Punkt 3
Versuchs mal mit
query user /server:$servername
Ansonsten im Script schöne schleifchen basteln. solltest du ja hinbekommen.
das Server UP liese sich per Ping lesen oder abfrage eines bestimmten Prozesses ob der wieder läuft..
LG, Manu
Hallo,
zu Punkt 4:
hab ich mal dies verwenden können,
leider find ich mein Script nicht mehr.
Ich konnte damit die WSUS Clients überwachen vie PS
LINK
zu Punkt 6:
könnte so funktionieren, ungetestet:
foreach ($host in $server) {
while ( (get-service -Name lanmanserver -ComputerName $host).Status -ne "Running" ) {
"Waiting for $server ..."
Start-Sleep -Seconds 10
}
"$server is up and alive again!"
}
Gruß
Christian
zu Punkt 4:
hab ich mal dies verwenden können,
leider find ich mein Script nicht mehr.
Ich konnte damit die WSUS Clients überwachen vie PS
LINK
zu Punkt 6:
könnte so funktionieren, ungetestet:
foreach ($host in $server) {
while ( (get-service -Name lanmanserver -ComputerName $host).Status -ne "Running" ) {
"Waiting for $server ..."
Start-Sleep -Seconds 10
}
"$server is up and alive again!"
}
Gruß
Christian