我在独立服务器上使用 WDS 来设置新的 电脑 并重新成像 电脑 当他们最终无法修复时. 拥有大量 电脑 在我自己的房子里,在交换或升级硬件时偶尔重新映像它们很有用. 这个过程的大部分现在由 unattend.xml 文件自动化,但无人值守过程似乎不支持的一个步骤是重命名 电脑 回到他们原来的名字.
我的所有 电脑 使用正确的主机名进行静态 DHCP 预留 (这也注册在 DNS) 所以我想一定有办法提取这些信息并用它来重命名它们. 经过多次摆弄后,我制作了一个批处理脚本来执行此操作 (以管理员身份运行时).
简单地将以下代码粘贴到 .cmd 文件中并将其作为无人值守进程的一部分运行 (我在下面描述我的)
@echo 关闭
设置 ip_address_string="IPv4地址"
为/F "使用backq" %%输入 (`主机名`) DO SET MYVAR=%%i
/f "usebackq 令牌=2 delims=:" %%输入 (`ipconfig ^| 查找字符串 /c:%ip_address_string%`) 做 (
对于 /f "usebackq 令牌=2 delims=:" %%杜松子酒 (`nslookup %%f ^| 查找字符串 /c:姓名`) 做 (
对于 /F "令牌=1 delims=。" %%一进 ("%%g") 做 (
对于 /F "代币=1 delims= " %%输入 ("%%一") 做 (
WMIC ComputerSystem 其中 Name="%米瓦%" 调用重命名名称="%%b"
去 :eof
)
)
)
)
我从 <FirstLogonCommands>
ImageUnattend.xml 部分.
<同步命令 wcm:动作="add">
<命令>5</命令>
<描述>重命名系统</描述>
<命令行>Ç:\附加提升 -c c:\附加重命名-pc-from-dns.cmd</命令行>
</同步命令>
要以管理员身份运行它,我使用了一些实用程序 (名为elevate.exe) 这样做 (在安装过程中运行的命令可以在不弹出提示的情况下提升!). 你可以从它的 原始资料
我的设置的最后一个难题是我修改了 Windows 安装映像以包含一个 exe 文件和一个小的 poweershell 脚本——这些允许从网络复制所有其他安装程序. exe文件是'流' 这是一个系统内部 (现在是微软的一部分) 用于删除“此文件来自互联网,你确定要运行它吗”警告的实用程序.
我还有以下脚本作为 .ps1 文件
copy-item -Path \wds-serverRemInstCustom*.* -Destination C:\附加功能
我的第一次 4 LogonCommands 如下...
<同步命令 wcm:动作="add"> <命令>1</命令> <描述>设置期间无待机</描述> <命令行>powercfg -更改待机超时-交流 0</命令行> </同步命令> <同步命令 wcm:动作="add"> <命令>2</命令> <描述>添加凭据以通过网络访问服务器</描述> <命令行>cmd键/添加:wds-服务器/用户:wds-serveradministrator/pass:密码123</命令行> </同步命令> <同步命令 wcm:动作="add"> <命令>3</命令> <描述>将脚本和应用程序从网络复制到 extras 文件夹</描述> <命令行>C:\WindowsSystem32WindowsPowerShellv1.0powershell.exe -windowstyle hidden -ExecutionPolicy ByPass -File C:\附加 copyapps.ps1</命令行> </同步命令> <同步命令 wcm:动作="add"> <命令>4</命令> <描述>从复制的应用程序中删除互联网警告</描述> <命令行>C:\附加 Streams64.exe -d -d -nobanner C:\附加*.* /accepteula</命令行> </同步命令>
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”