2

いくつかの目的で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 が null であることがわかります。証明書がどのようにnullなのかわかりません。certutil と前述の手法でいくつかのことを試してみてくださいthe-store.aspx実際に秘密鍵を持っているようですが、Powershell はそれを null としか見なしません。

ターゲットノードで、公開秘密鍵を手動でエクスポートして再インポートしましたが、別の dsc チュートリアルで概説されているようにうまくいきませんでした。

また、procmon を使用して、ターゲット ノードの問題を確認しました。wmiprvse プロセスを確認し、それがシステムとして実行されていることを確認し (予想どおり)、秘密鍵のアクセス許可がシステム (すべてターゲット ノード上) に許可されていることを確認しました。

私の質問は、DSC、特にターゲット ノードの LCM で秘密鍵を使用する方法を教えてください。または、問題をさらに診断するにはどうすればよいですか?

4

2 に答える 2

1

New-SelfSignedCertificate を使用して証明書を作成すると、同様のエラーが発生しました。同様の問題を抱えている人は、New-SelfSignedCertificate で使用されるストレージ プロバイダーに問題があると思われます ( http://blogs.technet.com/b/vishalagarwal/archive/2010/03/30/verifying-the-privateを参照)。 -key-property-for-a-certificate-in-the-store.aspx、Microsoft Software Key Storage Provider および .NET クラスの問題について説明しています)。自己署名証明書を作成する powershell スクリプトがtechnetで利用可能であり、デフォルトで別のストレージ プロバイダーを使用するようになっているため、問題は解決しました。

于 2015-08-13T04:55:28.907 に答える