2

I am able to run the below powershell command through Powershell itself,

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

but when I try running that through Java, I get an error. Sounds like "Invoke-command" is not recognized as a program to be run though Java. If this is the case, is there any other solution?

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

The error,

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

P.S. the error is not related to the filePath provided rather it is around the invoke-command itself.

Thank you.

Sara
  • 2,417
  • 7
  • 35
  • 52
  • `invoke-command` is not a Windows command, it's a PowerShell command, so you have to run it through the PowerShell command-line, i.e. `powershell.exe -Command your-command-here`. – Andreas Oct 31 '16 at 22:23

1 Answers1

4

As you wrote invoke-command is a Powershell command, thus you have to call Powershell tu run the command like so:

Process p = new ProcessBuilder()
                .inheritIO()
                .command("powershell", "invoke-command", "-computername", "compName",
                        "-filepath", "C:\\script.ps1").start();
dudel
  • 684
  • 5
  • 15
  • 1
    Thanks @dudel! I just figured it out as well. Stupid of me the error message was very clear. Keeping the code here in case it might be useful for others. Thanks again. – Sara Oct 31 '16 at 22:34