我正嘗試使用powershell DSC做一些事情。我想有每個指令加密傳遞的憑據在http://technet.microsoft.com/en-us/library/dn781430.aspx這一切似乎直到我的目標節點上運行啓動DscConfiguration做工精細,我得到的錯誤:未獲取所需的狀態配置憑證私鑰
The private key could not be acquired. + CategoryInfo : NotSpecified: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId : MI RESULT 1 + PSComputerName : DmitriyDev
再回到我檢查地看到,財政部包含憑據加密和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 } } }
當我使用此代碼測試我的證書(上焦油get節點)我看到證書的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進程,並看到它作爲系統運行(如預期),我檢查,以確保私鑰允許系統(所有在目標節點上)權限
所以我的問題是怎麼做我得到我的私鑰被DSC使用,特別是目標節點上的LCM?或者我如何更多地診斷問題?
證書是否在您的賬戶或系統賬戶上持有?也許嘗試在當前用戶的憑據下運行此查找('[System.Net.CredentialCache] :: DefaultCredentials');即它看起來在該賬戶的證書庫內。不知道,因爲我還沒有玩過證書... – JohnLBevan
它是一個機器證書,因爲DSC本地配置管理器在系統帳戶AFAIK下運行(因此需要通過任何網絡活動的憑據) – Karl
請說明你是哪臺計算機指的是你的問題的每一部分。應該有2臺計算機參與:節點(配置將應用於的計算機)和生成MOF(我們稱之爲生成器)的節點。生成器不需要安裝證書。在生成過程中它只需要文件系統上的公鑰部分。然而,*節點*必須使用私鑰安裝證書。看看[這](http://serverfault.com/questions/632390/protecting-credentials-in-desired-state-configuration-using-certificates)有幫助。 – briantist