未获取所需的状态配置凭证私钥

时间:2014-11-16 05:24:11

标签: powershell certificate public-key dsc

我正在尝试使用PowerShell DSC进行一些操作。我希望根据http://technet.microsoft.com/en-us/library/dn781430.aspx的说明加密传递的凭据,这一切似乎都能正常工作,直到我在目标节点上运行start-DscConfiguration并得到错误:

  

无法获取私钥。       + CategoryInfo:NotSpecified :( root / Microsoft / ... gurationManager:String)[],CimException       + FullyQualifiedErrorId:MI RESULT 1       + PSComputerName:DmitriyDev

回去我检查了mof是否包含加密的凭据,meta.mof包含匹配的指纹等。

回到原始文章,我看到示例代码:

# Get the certificate that works for encryption 
function Get-LocalEncryptionCertificateThumbprint 
{ 
    (dir Cert:\LocalMachine\my) | %{ 
                    # Verify the certificate is for Encryption and valid 
                    if ($_.PrivateKey.KeyExchangeAlgorithm -and $_.Verify()) 
                    { 
                        return $_.Thumbprint 
                    } 
                } 
}

当我使用此代码(在目标节点上)测试我的证书时,我看到证书的PrivateKey为空。我不确定证书是如何为空。尝试使用certutil和提到http://blogs.technet.com/b/vishalagarwal/archive/2010/03/30/verifying-the-private-key-property-for-a-certificate-in-the-store.aspx的技术的一些东西,似乎我确实有一个私钥,但是Powershell只看到它为空。

在目标节点上,我甚至手动导出公共私钥并重新导入它们,没有运气,如另一个dsc教程中所述。

我也尝试使用procmon来查看目标节点上的问题。我看到了wmiprvse进程并看到它以System(正如预期的那样)运行,并且我检查以确保私有密钥的权限允许系统(所有目标节点上)

所以我的问题是如何让我的私钥被DSC特别是目标节点上的LCM使用?或者我该如何更多地诊断问题?

1 个答案:

答案 0 :(得分:0)

好吧,我不确定为什么这是有效的,但确实如此。使用计算机模板似乎工作。在工作方面,目标节点上的powershell可以从

中看到它的私钥
  

dir cert:\ LocalMachine \ My | ? PrivateKey -ne $ null

一旦发生这一切,一切都按预期工作。长话短说不要使用工作站Auth模板,而是使用计算机模板。