gpt4 book ai didi

powershell - Start-DscConfiguration 不会抛出异常?

转载 作者:行者123 更新时间:2023-12-04 18:40:39 27 4
gpt4 key购买 nike

我注意到如果通过 Start-DscConfiguration 应用配置失败,它写入错误流但不
抛出异常?也就是说,如果我执行以下操作:

try{
Start-DscConfiguration -Path ".\MyConfig" -Wait -Verbose
}catch{
#...
}

...它永远不会在 catch 处理程序中结束。我怀疑这可能与没有 "-Wait" 的事实有关。 , Start-DscConfiguration为此启动一个异步作业,异步命令可能不会抛出异常,而是在同步中
场景,我很想知道我的配置是否可以应用。

确定 Start-DscConfiguration的正确方法是什么?是否成功完成?

最佳答案

我知道的唯一方法是检查全局“$error”变量并比较调用 Start-DscConfiguration 之前和之后的错误记录数。如果之后还有更多,那么在调用过程中一定出了问题,所以抛出你自己的异常:

Configuration TestErrorHandling {
Node "localhost" {
Script ErroringResource {
GetScript = { return $null; }
TestScript = { return $false; }
SetScript = { throw new-object System.InvalidOperationException; }
}
}
}

$errorCount = $error.Count;

write-host "starting dsc configuration"
$mof = TestErrorHandling;
Start-DscConfiguration TestErrorHandling –Wait –Verbose;
write-host "dsc configuration finished"

if( $error.Count -gt $errorCount )
{
$dscErrors = $error[$errorCount..($error.Count - 1)];
write-host "the following errors occurred during dsc configuration";
write-host ($dscErrors | fl * | out-string);
throw $dscErrors[-1];
}

关于powershell - Start-DscConfiguration 不会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27201314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com