我正在尝试编写一个powershell脚本,它将获取一个命令列表,然后在远程计算机上运行它们,我有以下代码:
foreach($command in $commands)
{
Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}
哪个不会抛出任何错误但也不会实际运行命令(例如stop-service servicename)。在调用脚本时,作为参数传递的文本文件读入$命令,我知道这个脚本的其余部分可以正常工作,因为我一直用它来用Invoke-Expression做本地命令。
任何帮助都会很棒。
答案 0 :(得分:3)
正确的代码是
$commands = @(get-content com.txt)
for($command in $commands) {
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command)
Invoke-Command -computer $computer -scriptblock $scriptblock
}