"Файл не найден" Невозможно использовать Invoke-SCScriptCommand ни с чем, кроме cmd.exe + args

Я создал плагин для Microsoft System Center Virtual Machine Manager, который выполняет сценарий powershell на хост-компьютере через сценарий powershell, вызываемый кодом плагина C#. (Shellception:P)

Так как я всегда получал ошибку, я решил проверить ее вручную в SCVMM, щелкнув правой кнопкой мыши на хосте и введя powershell.exe или же powershellдля исполняемого и export-v -name [name] -path [path] -force - copystate -wait, Теперь он говорит мне, что нет такого файла. Странно это работает с cmd(.exe) а также echo test, Разве PowerShell не должен быть установлен на Windows Server 2012? Кроме того, если я удаленно управляю хостом, он отлично работает в консоли. Что мне не хватает?

1 ответ

Я понял, что вам нужно указать полный путь при использовании powershell.exe в качестве исполняемого файла. Проблема заключается в том, что не на всех хостах есть системная переменная PATH, которая включает путь к исполняемому файлу powershell.exe.

Вы можете запустить powershell.exe, указав полный путь: %WINDIR%\System32\WindowsPowerShell\v1.0\PowerShell.exe

Или вы можете запустить cmd.exe как исполняемый файл, а затем запустить powershell.exe из этого cmd:

исполняемый файл: параметры cmd.exe: /c powershell.exe echo 1; вернуть 0;

Другие вопросы по тегам