Remote Restart Script mit Powershell
Hallo in die Runde,
ich habe folgendes Anliegen:
Ich möchte ein Powershell-Script bauen welches Hostnamen von Servern aus dem AD ausliest und diese dann Remote-Neustartet. Da ich ein Powershell-Anfänger bin, komme ich nicht wirklich ans Ziel.
Den befehl zum Remote neustarten habe ich schon, genauso wie den zum Auslesen der Servernamen aus dem AD, jedoch bekomme ich es nicht hin diese zusammenzubringen. Ich habe schon versucht die Servernamen in eine csv zu exportieren und dann wieder als "Variable" zu importieren, leider ohne Erfolg. Die eleganteste Lösung ist dies ja auch nicht gerade, sinnvoller wäre es ja, wenn Powershell die ausgelesenen Daten direkt weiterverarbeitet.
Ich hoffe Ihr könnt mir helfen!
Vielen Dank!
ich habe folgendes Anliegen:
Ich möchte ein Powershell-Script bauen welches Hostnamen von Servern aus dem AD ausliest und diese dann Remote-Neustartet. Da ich ein Powershell-Anfänger bin, komme ich nicht wirklich ans Ziel.
Den befehl zum Remote neustarten habe ich schon, genauso wie den zum Auslesen der Servernamen aus dem AD, jedoch bekomme ich es nicht hin diese zusammenzubringen. Ich habe schon versucht die Servernamen in eine csv zu exportieren und dann wieder als "Variable" zu importieren, leider ohne Erfolg. Die eleganteste Lösung ist dies ja auch nicht gerade, sinnvoller wäre es ja, wenn Powershell die ausgelesenen Daten direkt weiterverarbeitet.
Ich hoffe Ihr könnt mir helfen!
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 483438
Url: https://administrator.de/contentid/483438
Ausgedruckt am: 14.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Guten Morgen.
Du suchst eine foreach Schleife.
https://www.windowspro.de/script/schleifen-powershell-foreach-while-do-u ...
Grüße
Felix
Du suchst eine foreach Schleife.
https://www.windowspro.de/script/schleifen-powershell-foreach-while-do-u ...
Grüße
Felix
Dein Import wird nicht funktionieren. Du willst eine .txt importieren.
Abgesehen davon ist das gar nicht nötig.
Speicher dir das oben direkt in eine Variable z.B. $allComputer.
$allComputer = (Get-ADComputer... | Where..). //(der Rest kann weg)
Deine Schleife:
foreach( $computer in $allComputer){
Restart-Computer -ComputerName $computer.dnshostname -force
}
Achtung: gecodet auf dem Handy. Evtl Anpassung nötig.
Grüße
Abgesehen davon ist das gar nicht nötig.
Speicher dir das oben direkt in eine Variable z.B. $allComputer.
$allComputer = (Get-ADComputer... | Where..). //(der Rest kann weg)
Deine Schleife:
foreach( $computer in $allComputer){
Restart-Computer -ComputerName $computer.dnshostname -force
}
Achtung: gecodet auf dem Handy. Evtl Anpassung nötig.
Grüße
dann sowas hier
Das "-Properties DNSHostName, cn" brauchst du nicht.Ist nur zu Demonstrationszwecken da. Der Rest sollte selbsterklärend sein.
AFAIK kann Restart-Computer mit einem StringArray umgehen. Wills jetzt grad nicht testen :D
$servers = (Get-ADComputer -SearchBase "OU=Server,OU=123,DC=456, DC=789" -Filter {OperatingSystem -like "*Server*" } -Properties DNSHostName, cn | ? { $_.enabled }).Name
Restart-Computer -ComputerName $servers -force
Das "-Properties DNSHostName, cn" brauchst du nicht.Ist nur zu Demonstrationszwecken da. Der Rest sollte selbsterklärend sein.
AFAIK kann Restart-Computer mit einem StringArray umgehen. Wills jetzt grad nicht testen :D