仅在需要时在 PowerShell DSC 中包含 CertReq

仅在需要时在 PowerShell DSC 中包含 CertReq

我目前正在使用CertificationDSC CertReq 资源在 DSC 配置中生成证书请求。我对 DSC 还很陌生,我正在使用推送方法检查它,我的工作流程包括生成 mof 并运行Start-DscConfigurationUpdate-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 执行

相关内容