用WMIC重命名PC

时间:2015-05-30 16:03:17

标签: powershell wmic

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

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

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

但是,从测试开始,我在执行时遇到以下错误:

Invalid Verb Switch

这是不正确的?有没有更好的选择(没有在机器上升级PowerShell)

编辑:如果批量运行,文件会返回成功,但实际上并没有重命名机器(即使重启后)

1 个答案:

答案 0 :(得分:1)

为什么不以这种方式重命名(这是我使用了很多的片段):

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解决方案那么痛苦。