我想启动一个长时间运行的远程程序,但不想等待。所以我在 PS 脚本文件中放入一行命令并运行“Powershell -file xxx.ps1”
Invoke-command server1 {xxx.exe} -AsJob
但是脚本运行后远程程序没有运行,但是如果我在 PS 控制台交互运行上述命令,远程程序运行正常。似乎程序在脚本终止时被杀死。
为什么是这样?
更新
如果我在脚本结束时睡 1 秒,远程应用程序运行良好。
我想启动一个长时间运行的远程程序,但不想等待。所以我在 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