0Script em lote para renomear PC com base no nome DHCP reservado

Eu uso o WDS em um servidor autônomo para configurar novos PCs e recriar PCs quando eles acabam mutilados além do reparo. Com um bom número de PCs na minha própria casa é útil recriá-los ocasionalmente ao trocar ou atualizar o hardware. A maior parte desse processo agora é automatizado por um arquivo unattend.xml, mas uma etapa que o processo autônomo não parece suportar é a renomeação PCs de volta ao nome original.

Todo o meu PCs have stat­ic DHCP reser­va­tions with their cor­rect host­name (que também está registrado em 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 (quando executado como administrador).

Simple paste the fol­low­ing code into a .cmd file and run it as part of your unat­ten­ded pro­cess (Eu descrevo o meu abaixo)

@echo off
set ip_address_string="Endereço IPv4"
PARA / F "usebackq" %%eu IN (`hostname`) DO SET MYVAR=%%i
for /f "usebackq tokens = 2 delims =:" %%f em (`ipconfig ^| findstr / c:%ip_address_string% `) fazer (
    para / f "usebackq tokens = 2 delims =:" %%Gin (`nslookup %% f ^| findstr / c:Nome`) fazer (
        para / F "tokens = 1 delims =." %%um em ("%%g") fazer (
            para / F "tokens = 1 delims = " %%b em ("%%uma") fazer (
                WMIC ComputerSystem onde Name ="%myvar%" chamar Renomear Nome ="%%b"
                vamos para :eof
            )
        )
    )
)

Eu chamo meu script do <FirstLogonCommands> sec­tion of ImageUnattend.xml.

<SynchronousCommand wcm:ação ="adicionar">
  <Pedido>5</Pedido>
  <Descrição>Renomear sistema</Descrição>
  <Linha de comando>c:\extras  elevate -c c:\extras  rename-pc-from-dns.cmd</Linha de comando>
</SynchronousCommand>

To run it as admin I use a little util­ity (chamado elevate.exe) isso faz isso (com­mands run dur­ing setup can elev­ate without pop­ping up a prompt!). Você pode obtê-lo fonte original

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 ‘streams’ which is a sys­in­tern­als (agora parte da 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 -Path \ wds-server  RemInst  Custom  *. * -Destination C:\Extras

Meu primeiro 4 Logon­Com­mands are then as follows…

<SynchronousCommand wcm:ação ="adicionar">
  <Pedido>1</Pedido>
  <Descrição>Sem espera durante a configuração</Descrição>
  <Linha de comando>powercfg -change standby-timeout-ac 0</Linha de comando>
</SynchronousCommand>
<SynchronousCommand wcm:ação ="adicionar">
  <Pedido>2</Pedido>
  <Descrição>Adicione credenciais para acesso ao servidor via rede</Descrição>
  <Linha de comando>cmdkey / add:wds-server / usuário:wds-server  administrator / pass:senha123</Linha de comando>
</SynchronousCommand>
<SynchronousCommand wcm:ação ="adicionar">
  <Pedido>3</Pedido>
  <Descrição>Copie scripts e aplicativos da rede para a pasta de extras</Descrição>
  <Linha de comando>C:\Windows  System32  WindowsPowerShell  v1.0  powershell.exe -windowstyle oculto -ExecutionPolicy ByPass -File C:\Extras  copyapps.ps1</Linha de comando>
</SynchronousCommand>
<SynchronousCommand wcm:ação ="adicionar">
  <Pedido>4</Pedido>
  <Descrição>Remover aviso de internet de aplicativos copiados</Descrição>
  <Linha de comando>C:\Extras  Streams64.exe -d -d -nobanner C:\Extras  *. * / Aceiteula</Linha de comando>
</SynchronousCommand>

Por favor envie-nos a sua opinião comentando abaixo! Se você deseja se inscrever, use o link de inscrição no menu no canto superior direito. Você também pode compartilhar isso com seus amigos usando os links sociais abaixo. Felicidades.

Deixe uma resposta