调用远程批处理文件
Invoke Remote Batch File
我正在努力调用存储在远程服务器上的批处理文件
$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
您尝试过在脚本块中使用 Invoke-Expression 吗?喜欢:
Invoke-Expression "& $cmd $arg1"
也可以直接使用Invoke-Command
的-ComputerName
参数,而不是使用session。
我正在努力调用存储在远程服务器上的批处理文件
$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
您尝试过在脚本块中使用 Invoke-Expression 吗?喜欢:
Invoke-Expression "& $cmd $arg1"
也可以直接使用Invoke-Command
的-ComputerName
参数,而不是使用session。