我目前正在使用CertificateDSC CertReq 资源在 DSC 配置中生成证书请求。我对 DSC 很陌生,我正在使用推送方法对其进行检查,我的工作流程包括生成 mof 以及运行Start-DscConfiguration
或Update-DscConfiguration
之后。
每当我运行 DSC 配置或更新它时,都会从 CA 请求新证书。显然这不是我真正的意图。您将如何添加在节点上评估的 PowerShell DSC 块并在需要应用资源块时动态检查?
这个想法是让块检查合适的证书并生成某种在 CertReq 块之前评估的标志。
在伪代码中,它类似于以下内容。在 DSC 中这样做似乎不起作用。
Configration X {
Import-DscResource -ModuleName CertificateDSC
if((Get-ChildItem Cert:\LocalMachine\My | Where $condition).count -gt 0){
CertReq psCert {
# Data
}
}
}
因此,首先,您希望在执行资源之前进行条件检查的想法与幂等使用 DSC 的想法背道而驰。该代码在编译期间执行以生成 MOF,但此时它被冻结(正如您所发现的那样)。
我查看了这个 DSC 模块的代码,从中我可以看出它已经在检查是否应该发出新请求。
你应该做的只是使用
CertReq
所需的参数,模块应该处理所有的条件。如果此时它仍在生成重复请求,则编辑您的问题以包含这些详细信息,和/或自己调试 DSC 执行。