PowerShell从远程计算机上的计算机上的位置运行bat

时间:2018-01-31 20:34:15

标签: powershell powershell-v3.0

我需要在某些服务器上运行BAT文件 由于许多服务器的数量,我避免在任何服务器上复制文件

我的电脑上有文件,我尝试远程访问

$CMDCOMMAND = "\\Mycomp\c$\file.bat"    
Invoke-Command -ComputerName $Hostname -Credential $Cred -ScriptBlock {
    Start-Process cmd.exe "/c $CMDCOMMAND
}

2 个答案:

答案 0 :(得分:0)

Invoke-Command -Computer $Hostname -Credential $Cred -FilePath $CMDCOMMAND

should work as @Ansgar Wiechers mentioned.

I doubt you have set $CMDCOMMAND = "\\Mycomp\c$\file.bat" and tried. It should be local path when you pass it to -FilePath

$CMDCOMMAND = "c:\file.bat"

答案 1 :(得分:0)

Invoke-Command不适用于在ScriptBlock外部定义的变量。您需要使用ArgumentList参数。尽管我没有测试过,但类似的东西应该可以工作:

$CMDCOMMAND = "\\Mycomp\c$\file.bat"    
Invoke-Command -ComputerName $Hostname -Credential $Cred -ScriptBlock {
param($ARGLIST) Start-Process cmd.exe "/c $ARGLIST" 
} -ArgumentList $CMDCOMMAND
相关问题