PowerShell批量修改计算机主机名需先启用WinRM远程管理并验证连通性,再通过Rename-Computer配合Invoke-Command循环执行,新名称须符合NetBIOS规则,推荐使用带-Reboot参数的脚本以确保生效。
powershell 批量修改计算机主机名,核心是用 rename-computer 命令配合循环或远程会话,但必须满足几个前提:所有目标电脑需开启 powershell 远程(winrm)、网络互通、有本地管理员权限,且新名称符合 netbios 规则(15 字符内、仅字母数字和连字符、不以数字或连字符开头)。
准备阶段:启用远程管理与验证连通性
批量操作前,每台目标电脑都得允许远程命令执行:
- 在每台目标机上以管理员身份运行 PowerShell,执行:
Enable-PSRemoting -Force - 确认防火墙放行 WinRM(通常自动配置),再测试连通:
Test-WsMan IP地址 或 计算机名(返回信息即表示就绪) - 确保当前账户对每台目标机有本地管理员权限;域环境建议用域管理员账号
单脚本批量重命名(同域或可信网络)
在控制机上运行以下脚本,一次性为多台电脑改名(不重启,需后续统一处理):
计算机网络安全服务公司网站模板是一款适合提供云安全、网络安全、服务器管理。数据安全服务公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
- 新建文本文件,保存为 BatchRename.ps1,内容如下(替换示例中的名称和IP):
[string[]]$Computers = "PC001", "PC002", "PC003"
$NewNames = "WORKSTATION-A", "WORKSTATION-B", "WORKSTATION-C"
for ($i = 0; $i -lt $Computers.Count; $i++) {
Invoke-Command -ComputerName $Computers[$i] -ScriptBlock {
Rename-Computer -NewName $using:NewNames[$i] -Force
} -ErrorAction Continue
} - 执行前需解除脚本执行策略限制(仅本次):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 右键以管理员身份运行该 .ps1 文件
带自动重启的批量方案(推荐生产环境)
改名后必须重启才生效,可一步到位避免遗漏:
- 将上面脚本中 Rename-Computer 行改为:
Rename-Computer -NewName $using:NewNames[$i] -Force -Restart -Force - 注意:-Restart 参数会让每台电脑立即重启,无法等待前一台完成;如需串行执行(例如避免网络拥堵),加 -ThrottleLimit 1 参数
- 若某台失败(如离线、权限不足),默认跳过;加 -ErrorAction Stop 可中断并报错,便于定位问题
验证与容错处理
批量执行后,快速确认结果是否一致:
- 用 Invoke-Command 批量查新主机名:
Invoke-Command -ComputerName PC001,PC002 -ScriptBlock { hostname } - 检查是否全部重启成功:观察各机器是否已离线再上线,或用 Get-WinEvent 查系统日志中的关机/启动事件
- 名称冲突会导致失败——提前用 Test-Connection 和 Resolve-DnsName 排查重复名或 DNS 解析异常

















