我正在尝试在 MDT 中使用 DSC 推送配置,目前遇到了一些问题。以下是我对此的思考过程:
因为我正在为一个非常复杂的配置进行“整个服务器配置”,所以 LCM 将需要多次重新启动。
我想确保我依赖 LCM 与 MDT 沟通需要重新启动,之后 MDT 将重新启动服务器并重新运行配置。
尽管有任何警告或失败,我都希望配置继续进行。BDD.log 将显示这些是什么,以便配置服务器的人员可以看到失败的原因并在代码中修复它,或者在事后修复它。
我认为有一些方法可以使用 $TSenv:SMSTSRetryRequested 和 $TSenv:SMSTSRebootRequested
到目前为止,我尝试过的是这些方面的东西,但是这不起作用:
if ((Get-DscConfigurationStatus).RebootRequested -eq $true) {
$TSenv:SMSTSRebootRequested = $true
$TSenv:SMSTSRetryRequested = $true
}
else {
$TSenv:SMSTSRebootRequested = $false
$TSenv:SMSTSRetryRequested = $false
}
现在最终发生的事情是配置按预期进行。每次重新启动时,它都会检查现有资源,然后在配置中进一步启动新资源,即使出现故障也是如此。
但由于某种原因,MDT 似乎认为总是要求重新启动,即使它一直到配置结束。请注意,在 DSC 应用阶段似乎总是到处出现故障,所以也许这就是问题所在?否则,也许 $TSenv 变量在重新启动后仍然存在?
我也知道 DSC 配置内部有一种方法可以告诉 LCM 如何处理重新启动,但我不太确定如何使用该资源或将其放置在何处,或者它是否能解决我的问题。这是我的下一步,但我想在这里发帖,看看是否有人有任何想法或以前做过类似的事情。