我正在启动多个作业(使用Start-Job),在我的脚本结束时,我会检查作业是否运行超过X秒。然后,我想要运行Running和Failed作业并重新启动它们,直到它们成功。
作业以我想要运行的服务器命名(例如使用Test-Connection)。 我的问题是我无法弄清楚如何重新提交工作!
get-job | where { $_.state -eq "running" } | remove-job -force | start-job -ScriptBlock { echo $_ }
亲切的问候:)
答案 0 :(得分:3)
重启失败作业的一种方法:
Start-Job -Name Foo -ScriptBlock {
$ErrorActionPreference = 'Stop'
Get-Item C:\DoesNotExists
} | Wait-Job > $null
Get-Job | ? { $_.State -eq 'Failed' } | % {
Start-Job -Name $_.Name -ScriptBlock { iex $args[0] } -ArgumentList $_.Command | Wait-Job | Receive-Job
}