我在Invoke Command上运行了一些测试,发现了一些有趣的结果。
这是成功的代码片段。
Invoke-Command -ComputerName serverA,serverB,serverC,serverD,serverE -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
这是返回错误的代码片段。
$servers="serverA,serverB,serverC,serverD,serverE"
Invoke-Command -ComputerName $servers -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
错误信息。
Invoke-Command : 一个或多个计算机名称无效。如果你试图传递一个URI,使用-ConnectionUri参数,或者传递URI对象而不是字符串。
为什么从变量中读取数据时会出现错误?如何解决这个问题?
参数 Computers
接受字符串的集合。逗号被视为分隔符,以建立一个集合。使用它作为。$servers="serverA,serverB,serverC,serverD,serverE"
是一个大字符串,包含逗号,而不是一个字符串集合。
应该是。$servers="serverA","serverB","serverC","serverD","serverE"