首页 > 解决方案 > 使用 powershell 远程执行文件

问题描述

我正在尝试使用 Invoke-Command 远程运行批处理文件

PS C:\Users\ale> Invoke-Command -ComputerName SERVER -ScriptBlock { Invoke-Expression -Command:"cmd.exe /c 'C:\Test\Extract.bat'" }

批处理文件应该在 C:\Test\ 中输出 3 个文件,并且在本地运行良好。当我执行上面的命令时,这是我在 powershell 中收到的输出

NotSpecified: (:String) [], RemoteException
    + CategoryInfo          : NotSpecified: (:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
    + PSComputerName        : SERVER
 
1_03102021.csv
2_03102021.csv
3_03102021.csv

当我检查远程目录中没有文件时。请问有什么建议吗?

标签: powershell

解决方案


要在路径没有空格的powershell中调用bat文件,您可以直接调用它

PS C:\> c:\temp\bat.bat

如果路径/名称包含空格,请引用路径并使用命令调用运算符&

PS C:\> & "c:\temp\bat with spaces.bat"

所以对于你的命令,它只是

Invoke-Command -ComputerName SERVER -ScriptBlock { C:\Test\Extract.bat }

推荐阅读