使用 WMIC 重命名 PC

Rename PC with WMIC

我需要实现一些非常简单的事情。作为将 运行 在数百台新 Windows 7 台机器上的 PowerShell 脚本的一部分,我需要在将它们加入域之前重命名它们。

我做了一些搜索,一个常见的解决方案似乎是:

wmic computersystem where name="%COMPUTERNAME%" call rename name="NEW-NAME"

但是,根据测试,我在执行时收到以下错误:

Invalid Verb Switch

这不正确吗?是否有更好的替代方案(无需在机器上升级 PowerShell)

编辑:如果 运行 通过批处理,文件 returns 成功,但实际上并没有重命名机器(即使在重新启动后)

为什么不这样重命名(这是我经常使用的片段):

Function Rename-Computer([string]$newComputerName)
{
    $computer = Get-WmiObject -Class Win32_ComputerSystem
    $computer.rename($newComputerName)
}

来源:http://powershell.com/cs/media/p/922.aspx

进一步的研究表明它可能是双引号,另一种方法可以 运行 这是:

cmd /c "wmic computersystem where name='%computername%' call rename name='NEW-NAME'"

请注意双引号是如何被单引号替换的,并且传递给 cmd.exe 的整个命令是在双引号字符串中传递的。

如果您有其他需要发出的 WMIC 命令,那么这可能比提出替代的 PowerShell 解决方案更轻松。