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 têm reservas DHCP estáticas com o nome de host correto (que também está registrado em DNS) então imaginei que deveria haver uma maneira de obter essas informações e usá-las para renomeá-las. Depois de muito mexer, produzi um script em lote que fará isso (quando executado como administrador).
Simplesmente cole o código a seguir em um arquivo .cmd e execute-o como parte de seu processo autônomo (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 ("%%a") fazer ( WMIC ComputerSystem onde Name ="%myvar%" chamar Renomear Nome ="%%b" vamos para :eof ) ) ) )
Eu chamo meu script do <FirstLogonCommands>
seção de 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>
Para executá-lo como administrador eu uso um pequeno utilitário (chamado elevate.exe) isso faz isso (comandos executados durante a configuração podem ser elevados sem exibir um prompt!). Você pode obtê-lo fonte original
A última peça do quebra-cabeça da minha configuração é que eu modifico a imagem de instalação do Windows para incluir um arquivo exe e um pequeno script powershell - isso permite a cópia de todos os outros instaladores da rede. O arquivo exe é ‘streams' que é um sysinternals (agora parte da Microsoft) utilitário para remover o aviso “este arquivo veio da Internet, você tem certeza de que deseja executá-lo”.
Também tenho o seguinte script como um arquivo .ps1
copy-item -Path \ wds-server RemInst Custom *. * -Destination C:\Extras
Meu primeiro 4 LogonCommands são os seguintes…
<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>
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”