我一直在探索 Powershell 作业(使用 Start-Job、Get-Job、Receive-Job 等)。
只要我保持在同一个 powershell session /窗口中,一切都很好,但如果我打开一个新的 Powershell 窗口并执行“Get-Job”,它不会返回任何作业。
没有任何方法可以在 Powershell 中启动后台作业,关闭窗口/ session ,然后稍后从另一个 session /窗口访问它吗?我有几个长时间运行的 cmdlet,我希望它们能够在后台启动并稍后检查,而不必保证使用相同的提示符。
最佳答案
我遇到了 PSScheduledJob 模块,它似乎比常规作业更适合解决我的问题:
https://learn.microsoft.com/en-us/powershell/module/psscheduledjob/?view=powershell-5.1
计划的作业似乎确实存在并且可以从任何 PS session 中检索,因此您可以将其用作触发“作业”的方式,即使在您关闭 PS 窗口后该作业仍将继续运行。
到目前为止,我发现的唯一问题是 ScheduledJob 在运行时会生成一个常规作业,但该常规作业在完成之前没有子作业,也没有可用的进度/状态。似乎无法在作业运行时监控作业的状态/输出,所以这仍然不完美:(
关于跨 session 的 Powershell 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65297133/