0Batch-Skript zum Umbenennen des PCs basierend auf dem reservierten DHCP-Namen

Ich verwende WDS auf einem eigenständigen Server, um neue einzurichten PCs und neu zu bebildern PCs wenn sie irreparabel verstümmelt sind. Mit einer guten Anzahl von PCs In meinem eigenen Haus ist es sinnvoll, sie gelegentlich beim Austausch oder Upgrade von Hardware neu abzubilden. Der größte Teil dieses Prozesses wird jetzt durch eine Datei unattend.xml automatisiert, aber ein Schritt, den der unbeaufsichtigte Prozess anscheinend nicht unterstützt, ist das Umbenennen PCs zurück zu ihrem ursprünglichen Namen.

Alle meine PCs have stat­ic DHCP reser­va­tions with their cor­rect host­name (die auch registriert ist in DNS) so I figured there must be a way to pull this inform­a­tion and use it to rename them. After much fid­dling about I have pro­duced a batch script that will do this (wenn als admin ausgeführt).

Simple paste the fol­low­ing code into a .cmd file and run it as part of your unat­ten­ded pro­cess (Ich beschreibe meine unten)

@echo off
set ip_address_string="IPv4-Adresse"
FÜR /F "usebackq" %%ich IN (`Hostname`) DO SET MYVAR=%%i
for /f "usebackq-Token=2 Delims=:" %%f in (`ipconfig ^| findstr /c:%ip_address_string%`) tun (
    für /f "usebackq-Token=2 Delims=:" %%Gin (`nslookup %%f ^| findstr /c:Name`) tun (
        für /F "tokens=1 delims=." %%ein in ("%%G") tun (
            für /F "Token=1 Delims= " %%Behälter ("%%ein") tun (
                WMIC ComputerSystem wobei Name="%myvar%" call Name umbenennen="%%b"
                goto :eof
            )
        )
    )
)

Ich rufe mein Skript von der <FirstLogonCommands> sec­tion of ImageUnattend.xml.

<SynchronousCommand wcm:Aktion="hinzufügen">
  <Auftrag>5</Auftrag>
  <Beschreibung>System umbenennen</Beschreibung>
  <Befehlszeile>c:\Extraselevate -c c:\extrasrename-pc-from-dns.cmd</Befehlszeile>
</Synchroner Befehl>

To run it as admin I use a little util­ity (namens elevate.exe) das macht das (com­mands run dur­ing setup can elev­ate without pop­ping up a prompt!). Sie können es von ihm bekommen Originalquelle

The final piece of the puzzle for my setup is that I modi­fy the win­dows install image to include an exe file and a little poweer­shell script — these allow the copy­ing of all the oth­er installers from the net­work. The exe file is ‘Bäche’ which is a sys­in­tern­als (jetzt Teil von Microsoft) util­ity to remove the “this file came from the inter­net are you sure you want to run it” warning.

I also have the fol­low­ing script as a .ps1 file

copy-item -Pfad \wds-serverRemInstCustom*.* -Ziel C:\Extras

Mein erstes 4 Logon­Com­mands are then as follows…

<SynchronousCommand wcm:Aktion="hinzufügen">
  <Auftrag>1</Auftrag>
  <Beschreibung>Kein Standby während der Einrichtung</Beschreibung>
  <Befehlszeile>powercfg -change standby-timeout-ac 0</Befehlszeile>
</Synchroner Befehl>
<SynchronousCommand wcm:Aktion="hinzufügen">
  <Auftrag>2</Auftrag>
  <Beschreibung>Anmeldedaten für den Zugriff auf den Server über das Netzwerk hinzufügen</Beschreibung>
  <Befehlszeile>cmdkey /add:wds-server /user:wds-serveradministrator /pass:Passwort123</Befehlszeile>
</Synchroner Befehl>
<SynchronousCommand wcm:Aktion="hinzufügen">
  <Auftrag>3</Auftrag>
  <Beschreibung>Kopieren Sie Skripte und Apps aus dem Netzwerk in den Extras-Ordner</Beschreibung>
  <Befehlszeile>C:\WindowsSystem32WindowsPowerShellv1.0powershell.exe -windowstyle hidden -ExecutionPolicy ByPass -File C:\Extras  copyapps.ps1</Befehlszeile>
</Synchroner Befehl>
<SynchronousCommand wcm:Aktion="hinzufügen">
  <Auftrag>4</Auftrag>
  <Beschreibung>Internetwarnung von kopierten Apps entfernen</Beschreibung>
  <Befehlszeile>C:\Extras  Streams64.exe -d -d -nobanner C:\Extras*.* /accepteula</Befehlszeile>
</Synchroner Befehl>

Bitte senden Sie uns Ihre Gedanken durch Kommentierung unten! Wenn Sie bitte abonnieren möchten den Link oben rechts auf dem Menü abonnieren verwenden. Sie können auch unten unter Verwendung der sozialen Bindungen diese mit Ihren Freunden teilen. Prost.

Hinterlasse eine Antwort