从变量传递时调用命令计算机名称无效错误
Invoke Command Computer Name not valid error when passing from variable
我 运行 对 Invoke Command 进行了一些测试,发现了一些有趣的结果。
这是成功的代码片段。
Invoke-Command -ComputerName serverA,serverB,serverC,serverD,serverE -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
这是 return 错误的代码片段。
$servers="serverA,serverB,serverC,serverD,serverE"
Invoke-Command -ComputerName $servers -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
错误信息:
Invoke-Command : One or more computer names are not valid. If you are
trying to pass a URI, use the -ConnectionUri parameter, or pass URI
objects instead of strings.
为什么读取变量会出错?如何解决?
参数Computers
接受字符串集合。逗号被视为分隔符,以构建集合。用作: $servers="serverA,serverB,serverC,serverD,serverE"
是一个大字符串,包含逗号,而不是字符串集合。
应该是:$servers="serverA","serverB","serverC","serverD","serverE"
我 运行 对 Invoke Command 进行了一些测试,发现了一些有趣的结果。
这是成功的代码片段。
Invoke-Command -ComputerName serverA,serverB,serverC,serverD,serverE -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
这是 return 错误的代码片段。
$servers="serverA,serverB,serverC,serverD,serverE"
Invoke-Command -ComputerName $servers -ScriptBlock{Get-WindowsUpdate | Format-Table -AutoSize}
错误信息:
Invoke-Command : One or more computer names are not valid. If you are trying to pass a URI, use the -ConnectionUri parameter, or pass URI objects instead of strings.
为什么读取变量会出错?如何解决?
参数Computers
接受字符串集合。逗号被视为分隔符,以构建集合。用作: $servers="serverA,serverB,serverC,serverD,serverE"
是一个大字符串,包含逗号,而不是字符串集合。
应该是:$servers="serverA","serverB","serverC","serverD","serverE"