Powershell在异常时执行脚本块

时间:2017-10-03 13:53:27

标签: powershell exception try-catch

我在powershell中寻找一种方法来运行脚本块,或者在异常或发生终止写入错误之后找到一些代码

基本上,如果我遇到了抛出或写入错误,那么我希望最高范围(主要)关闭所有PSSession并执行get-job |在我们停止执行之前删除工作。

如果我设置$ ErrorActionPreference =“Stop”,我不确定这是否可行

这是我在等待答案时想出的......但是,如果某人有更好的解决方案,我会保持这个问题:

#Wait on feedback from children
try{
    While (Get-Job -State "Running")
    {
        Get-Job | Receive-Job
        Start-Sleep 2
    }
    Get-Job | Receive-Job
} finally {
    Get-PSSession | Remove-PSSession
    Get-Job | Remove-Job
}

谢谢!

1 个答案:

答案 0 :(得分:1)

默认情况下,作业不会向主机发送错误,您需要手动抛出错误。

xx:xx [am|pm]

通过检查作业对象上的#Wait on feedback from children try{ While (Get-Job -State "Running") { if (Get-Job -State 'Failed'){ throw 'Job failed.' } Get-Job | Receive-Job Start-Sleep 2 } Get-Job | Receive-Job } finally { Get-PSSession | Remove-PSSession Get-Job | Remove-Job } 属性,您可以获得有关失败的更多信息。