跨 session 的 Powershell 作业?

标签 powershell session background jobs

我一直在探索 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/

相关文章:

css - 无法让 Z-index 将::after background 放在同一个 div 的背景下。这可能吗?

php - 如何最好地在页面之间为用户传递消息

html - 如何将内容居中并将背景颜色扩展到页面的 100%?

java - 如何在 keyTyped 事件发生时更改 JButton 颜色?

powershell - 使用 PowerShell 查找并替换二进制文件中的十六进制值

php - 保持用户登录的正确和安全/可靠的方法是什么? cookies ? session ? PHP && MYSQL

Firefox 中的 Codeigniter session 不会设置

powershell - 多线程 PowerShell 脚本可更快地从大型 XML 文件中提取数据

powershell - 为什么将变量通过管道传输到 Set-Item 中?

powershell - 在powershell中获取巧克力刚刚安装的软件包的安装路径