Запуск сценария Powershell удаленно через Java

Я могу запустить приведенную ниже команду 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 = 2, система не может найти указанный файл

P.S. ошибка не связана с указанным файлом filePath, а связана с самой командой invoke.

Спасибо.


person Sara    schedule 31.10.2016    source источник
comment
invoke-command - это не команда Windows, это команда PowerShell, поэтому ее нужно запускать через командную строку PowerShell, то есть powershell.exe -Command your-command-here.   -  person Andreas    schedule 01.11.2016


Ответы (1)


Как вы писали, invoke-command - это команда Powershell, поэтому вам нужно вызвать Powershell и выполнить команду следующим образом:

Process p = new ProcessBuilder()
                .inheritIO()
                .command("powershell", "invoke-command", "-computername", "compName",
                        "-filepath", "C:\\script.ps1").start();
person dudel    schedule 31.10.2016
comment
Спасибо @dudel! Я тоже в этом разобрался. Глупо с моей стороны сообщение об ошибке было очень четким. Сохраните код здесь на случай, если он может быть полезен другим. Спасибо еще раз. - person Sara; 01.11.2016