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!
Please also mark the comments that contributed to the solution of the article
Content-Key: 483438
Url: https://administrator.de/contentid/483438
Printed on: April 27, 2024 at 07:04 o'clock
6 Comments
Latest comment
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