Правильный синтаксис для Invoke-Command? - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь запустить этот код, но он не работает при запуске в качестве скрипта.

Когда я запускаю эти команды в powershell вручную, он работает.

Скрипт, который не работает:

Invoke-Command -ScriptBlock { Enter-PSSession $Computer; Start-Process cmd -Argument "/c C:\Transfer\SETUP2007.EXE /uninstall ProPlus /config UninstallConfig.xml" } -ComputerName $Computer -AsJob
}

Работает при вводе вручную:

Enter-PSSession pcX
Start-Process cmd -Argument "/c C:\Transfer\SETUP2007.EXE /uninstall ProPlus /config UninstallConfig.xml"

Я могу подтвердить, что $computer возвращает правильное имя.

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Вам не нужно включать сеанс PS при запуске с -computername, если вы используете одного и того же пользователя на обоих компьютерах. Это должно работать:

Invoke-Command -ScriptBlock { Start-Process cmd -Argument "/c C:\Transfer\SETUP2007.EXE /uninstall ProPlus /config UninstallConfig.xml" } -ComputerName $Computer -AsJob
}

С get-help invoke-command -full:

Чтобы выполнить ряд связанных команд, которые совместно используют данные, используйте командлет New-PSSession для создания сеанса PSSession (постоянное соединение) на удаленном компьютере, а затем используйте параметр Session в Invoke-Command для запуска команды в сеансе PSSession. Чтобы запустить команду в отключенном сеансе, используйте параметр InDisconnectedSession. Чтобы запустить команду в фоновом задании, используйте параметр AsJob.

Пример:

PS C:\>$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
PS C:\> Invoke-Command -Session $s -ScriptBlock {Get-Culture}
0 голосов
/ 01 октября 2019

удалось исправить

Решением было добавить параметр -Wait после Start-Process

Invoke-Command -ScriptBlock { Start-Process -Wait cmd -Argument "/c C:\Transfer\SETUP2007 /uninstall ProPlus /config UninstallConfig.xml" } -ComputerName $Computer -AsJob    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...