1

我想启动一个长时间运行的远程程序,但不想等待。所以我在 PS 脚本文件中放入一行命令并运行“Powershell -file xxx.ps1”

Invoke-command server1 {xxx.exe} -AsJob

但是脚本运行后远程程序没有运行,但是如果我在 PS 控制台交互运行上述命令,远程程序运行正常。似乎程序在脚本终止时被杀死。

为什么是这样?

更新

如果我在脚本结束时睡 1 秒,远程应用程序运行良好。

4

1 回答 1

1

解决这个问题的最好方法可能是使用Wait-Job。它将等待您启动的工作,直到完成。否则脚本就会关闭,可能是在连接完全建立之前。

如果要等待后台运行的所有作业完成,可以使用:

Invoke-command server1 {xxx.exe} -AsJob
Get-Job | Wait-Job
于 2014-08-09T07:32:48.730 回答