我需要做一些非常简单的事情。作为将在数百台新Windows 7计算机上运行的PowerShell脚本的一部分,我需要在将它们加入域之前重命名它们。
我做了一些搜索,一个常见的解决方案似乎是:
wmic computersystem where name="%COMPUTERNAME%" call rename name="NEW-NAME"
但是,从测试开始,我在执行时遇到以下错误:
Invalid Verb Switch
这是不正确的?有没有更好的选择(没有在机器上升级PowerShell)
编辑:如果批量运行,文件会返回成功,但实际上并没有重命名机器(即使重启后)
答案 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解决方案那么痛苦。