调用远程批处理文件

时间:2017-10-10 13:42:35

标签: powershell invoke-command

我正在努力调用存储在远程服务器上的批处理文件

$out = "c:\temp\test.txt"
$sessions = New-PSSession -ComputerName "COMPUTER01"
$cmd = 'C:\Program Files\tool\bin\sc.bat'
$arg1 = "list files >> $out"
Invoke-Command -Session $sessions -ScriptBlock {
    param([string]$arg1)
      & $cmd $arg1
} -ArgumentList ($arg1)
Exit-PSSession

我错过了什么?

谢谢!

---更新---- 溶液:

$out = "c:\temp\test.txt"
$session = New-PSSession -ComputerName "COMPUTER01"
$cmd = "C:\Program Files\tool\bin\sc.bat"
Invoke-Command -Session $session -ScriptBlock {
    param($cmd,$out)
    Invoke-Expression "&'$cmd' list files >> $out"
} -ArgumentList ($cmd,$out)
Remove-PSSession $session

1 个答案:

答案 0 :(得分:1)

您是否尝试在scriptblock中使用Invoke-Expression?像:

Invoke-Expression "& $cmd $arg1"

您也可以直接使用-ComputerName的{​​{1}}参数,而不是使用会话。