通过Java远程运行Powershell脚本

时间:2016-10-31 22:13:51

标签: java powershell command invoke-command

我可以通过Powershell本身运行以下powershell命令,

invoke-command -ComputerName "compName" -filepath "c:\script.ps1" -credential "admin"

但是当我尝试通过Java运行时,我收到一个错误。听起来像“Invoke-command”不被认为是通过Java运行的程序。如果是这种情况,还有其他解决方案吗?

Process p = new ProcessBuilder()
                .inheritIO()
                .command("invoke-command", "-computername", "compName",
                        "-filepath", "C:\\script.ps1").start();

错误,

  

无法运行程序“invoke-command”:CreateProcess error = 2,系统找不到指定的文件

P.S。该错误与提供的filePath无关,而是与invoke-command本身有关。

谢谢。

1 个答案:

答案 0 :(得分:4)

正如您所写invoke-command是一个Powershell命令,因此您必须调用Powershell tu运行命令,如下所示:

Process p = new ProcessBuilder()
                .inheritIO()
                .command("powershell", "invoke-command", "-computername", "compName",
                        "-filepath", "C:\\script.ps1").start();