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