Rename-Computer: PCs remote umbenennen mit PowerShell

    Remote-ManagementWenn man Remote-PCs in der Vergangenheit von der Kommandozeile oder in Scripts umbenennen wollte, dann waren WMI oder netdom die Mittel der Wahl. Windows 8 und Server 2012 führten für diesen Zweck mit PowerShell 3.0 ein eigenes Cmdlet namens Rename-Computer ein, das diese Aufgabe vereinfacht.

    In der simpelsten Form lässt sich Rename-Computer verwenden um den lokalen Rechner umzubenennen, den man mittels "." anspricht:

    Rename-Computer -ComputerName . -NewName <NeuerName>

    Diesen Befehl würde man vor allem in Scripts verwenden, um durchgängig die sprachlichen Mittel von PowerShell zu nutzen. Ansonsten würden die meisten Anwender für diese Aufgabe das System-Applet in der Systemsteuerung wählen.

    Kein separates Umbenennen beim Domain Join

    Eine typische Gelegenheit, den Namen eines PCs zu ändern, ist sein Beitritt zu einer Domäne. Setzt man für den Domain Join PowerShell ein, dann benötigt man Rename-Computer nicht, weil Add-Computer diese Aufgabe selbst übernehmen kann.

    Seine Stärken spielt Rename-Computer aus, wenn man eine größere Zahl von PCs remote umbenennen möchte. Dies kann etwa der Fall sein, weil man die Namenskonventionen ändern möchte oder weil die Namen nicht mehr die Eigenschaften der Rechner widergeben.

    Namen aus dem AD entnehmen

    Für eine solche Operation könnte man ein Liste von PC-Namen aus einer Datei auslesen und in einer Schleife an Rename-Computer übergeben. Alternativ ließen sich die Computer im dem Active Directory mit Hilfe von Get-ADComputer nachschlagen:

    $cn = Get-ADComputer -Filter "name -Like 'Win7*'"

    In diesem Beispiel würden alle Computer-Objekte, deren Namen mit Win7 beginnen, in der Variablen $cn gespeichert. Sie lassen sich nun über eine foreach-Schleife der Reihe nach an Rename-Computer übergeben, wobei man bestimmte Teile des Namens mit Hilfe von -replace ersetzen kann:

    foreach($comp in $cn) {Rename-Computer -ComputerName $comp.name -NewName ($comp.name -replace "Win7","Win81") }

    In diesem Beispiel würde die Zeichenkette "Win7" in allen Namen durch "Win81" ersetzt. Man ist dabei jedoch keineswegs auf die Verwendung von Konstanten beschränkt, vielmehr kann man an -replace auch reguläre Ausdrücke übergeben (siehe dazu meine Beispiele zum Umbenennen von Dateien).

    Alternative Anmeldedaten übergeben

    Rename-Computer akzeptiert neben dem alten und dem neuen Namen noch weitere Parameter. Dazu gehört die Angabe alternativer Anmeldeinformationen, wenn der aktuelle User nicht ausreichend Rechte für diese Aufgabe hat. Wenn man die Eingabe von Passwörtern vermeiden möchte, dann verwendet man dafür ein Credentials-Objekt.

    Da die Namensänderung erst nach dem Neustart eines Rechners wirksam wird, kann man den erforderlichen Reboot über den Schalter -Restart veranlassen. Nachdem es sich bei der Umbenennung mehrerer Rechner um einen heiklen Vorgang handelt, empfiehlt es sich, den Befehl erst mit dem Parameter -WhatIf zu testen. Dabei stellt sich etwa heraus, ob die neuen Namen ungültige Zeichen enthalten.

    Keine Kommentare