PowerShell Invoke-Command удаленно с -AsJob не удалось запустить удаленную программу

Я хочу запустить долго работающую удаленную программу, но не хочу ждать. Поэтому я поместил ниже строковую команду в файл сценария PS и запустил "Powershell -file xxx.ps1"

Invoke-command server1 {xxx.exe} -AsJob

Но удаленная программа не запускается после запуска скрипта, но если я в интерактивном режиме запускаю указанную выше команду в консоли PS, удаленная программа работает нормально. Кажется, что программа закрывается, когда скрипт завершается.

Почему это?

ОБНОВИТЬ

Если я сплю 1 секунду в конце сценария, удаленное приложение работает нормально.

1 ответ

Лучший способ обойти это, вероятно, использовать Wait-Job. Он будет ждать работу, которую вы запустили, пока она не будет завершена. В противном случае сценарий просто закрывается, вероятно, до того, как соединение будет установлено полностью.

Если вы хотите дождаться завершения всех заданий в фоновом режиме, вы можете использовать:

Invoke-command server1 {xxx.exe} -AsJob
Get-Job | Wait-Job
Другие вопросы по тегам