Nach Änderungen an Windows Systemen kann es hin und wieder notwendig werden, alle Rechner oder nur bestimmte PCs oder Laptops der Domäne neu zu starten. Wie man dies mit Hilfe der Powershell und ein paar Befehlen erledigen kann, möchte ich Euch nun hier in dieser kleinen Anleitung zeigen. Wichtig ist im Grunde nur, dass die betroffenen Computer sich in der gleichen OU befinden. Wobei dies im Grund auch kein Problem ist, denn die Rechnerliste, welche wir hier im Beispiel automatisch erstellen, kann natürlich auch per Hand erzeugt werden.
Dies würde ich Euch auch empfehlen …vielleicht das Script mit einer Testgruppe zu testen. Hier kann man dann einfach die Rechner der IT Kollegen eintragen …und der eigene Tag ist gerettet, wenn das Fluchen im Büro beginnt. ;)
So …nun aber zurück zum Thema!
Bevor es los geht, benötigen wir die LDAP, DN ..bzw. wie es unter Windows heißt den Distinguished Name.
Wie man da ran kommt, könnt ihr in diesem Beitrag nachlesen:
https://itler.net/kompletten-pfad-eines-ad-objektes-herausfinden-ldap-dn/
Als Stichpunkt …für Windows Admins …Erweitere Features aktivieren in der Active Directory Benutzer und Computer Übersicht aktivieren und dann die Eigenschaften der OU aufrufen. Unter Attribute findet man dann den entsprechenden Punkt.
Dann öffnet ihr nun auf dem DC die Powershell und gebt folgenden Wert ein:
(Get-ADComputer -Filter * -SearchBase "distinguishedName").Name | Out-File c:\Temp\desktops.txt
Gebt im Powershell Befehl oben den Pfad an, welchen ihr oben kopiert habt anstatt dem Wert distinguishedName. Anführungszeichen bleiben bestehen.
Dieser Befehl generiert Euch nun ein Textfile unter Temp mit allen Rechnern aus dieser OU.
Wollt ihr alle Rechner des ADs in einer Liste haben, so verwendet bitte folgenden Befehl:
(Get-ADComputer -Filter 'operatingsystem -notlike "*server*"').Name | Out-File C:\Temp\alle-computer.txt
Damit hätten wir die Files für die Ansteuerung des Skripts erzeugt.
Jetzt erstellen wir am DC ein neues File …Textfile …und ändern den Dateityp auf *.ps1 – als Inhalt fügen wir folgende Zeilen ein und speichern das Script ab.
Restart-Computer -ComputerName (Get-Content C:\Temp\test.txt) -Force -ErrorAction SilentlyContinue -ErrorVariable NoRestart $NoRestart.targetobject | Out-File C:\Temp\NoRestart.txt
Den Pfad für die Computer-Liste müsst ihr noch anpassen …hier im Beispiel ist nun ein Test File hinterlegt.
Das Script versucht nun die Maschinen neu zu starten. Ist eine Maschine nicht verfügbar, wird dies im Textfile …NoRestart vermerkt.
Jo, und das war es auch schon! Den Befehl könntet ihr natürlich auch direkt in die Powershell tippen und Euch den Umweg über das File sparen.
Tags:
- domänenrechner zentral hochfahren
- ldap how to get dn