我想启动一个长时间运行的远程程序,但不想等待。所以我在PS脚本文件中放了一行命令,然后运行"Powershell -file xxx.ps1"
Invoke-command server1 {xxx.exe} -AsJob
但是脚本运行后远程程序不运行,但是如果我在PS控制台中交互式运行上述命令,远程程序运行正常。当脚本终止时,程序似乎被杀死了。
为什么会这样?
如果我在脚本结束时睡眠1秒,远程应用程序运行良好。
解决这个问题的最好方法可能是使用Wait-Job。它将等待您启动的作业完成。否则,可能在连接完全建立之前,脚本就关闭了。
如果您想等待所有在后台运行的作业完成,您可以使用:
Invoke-command server1 {xxx.exe} -AsJob
Get-Job | Wait-Job