我目前正在使用CertificationDSC 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
}
}
}
答案1
因此,首先,在执行资源之前进行条件检查的想法与幂等使用 DSC 的想法背道而驰。该代码在编译时执行以生成 MOF,但它在此时被冻结(正如您所发现的那样)。
我看过该 DSC 模块的代码从中我可以知道它已经在检查是否应该发出新的请求。
您应该做的只是使用CertReq
所需的参数,模块应该处理所有条件。
如果此时它仍然生成重复的请求,那么编辑你的问题以包含这些详细信息,和/或自己调试 DSC 执行。