【问题标题】:Execute a file remotely with powershell使用 powershell 远程执行文件
【发布时间】:2021-03-11 05:52:28
【问题描述】:

我正在尝试使用 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

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

【问题讨论】:

  • 不需要Invoke-Expression,直接调用bat文件即可。

标签: powershell


【解决方案1】:

要在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 }

【讨论】:

  • 感谢并注明。我试过你的建议,但结果还是一样。没有创建输出文件
  • 如果蝙蝠试图写入非本地驱动器,我可以看到这种情况。如果即使在调用主机上它也是网络路径,它也将受制于双跳规则。祝你好运。
猜你喜欢
  • 2015-09-19
  • 2014-11-17
  • 1970-01-01
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 2012-05-31
相关资源
最近更新 更多