运行 通过 Java 远程执行 Powershell 脚本

Running Powershell script remotely through Java

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

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

但是当我通过 Java 尝试 运行 时,我得到了一个错误。虽然 Java 听起来 "Invoke-command" 不被识别为 运行 的程序。如果是这样,有没有其他的解决办法?

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

错误,

Cannot run program "invoke-command": CreateProcess error=2, The system cannot find the file specified

P.S。该错误与提供的文件路径无关,而是与调用命令本身有关。

谢谢。

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

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