2012-03-15 5 views
6

MicrosoftツールMakeCert.exe-ssオプションを使用して(-ssは出力証明書を格納するサブジェクトの証明書ストア名を指定します)、サーバーに自分のストアを作成します。私は証明書をプログラマティックに削除することができますが、私はストア自体を削除することはできません。エラーメッセージによると、これはプロバイダによってサポートされていないようです。証明書を削除する方法makecertによって追加されたストア

私もそれを削除するには、MMCスナップイン(certmgr.msc)を使用することはできません。誰もそれをする方法を知っていますか?

PS cert:\LocalMachine> Remove-Item .\SigningStore 
Remove-Item : L'exécution du fournisseur s'est arrêtée, car le fournisseur ne prend pas en charge cette opération. 
Au niveau de ligne : 1 Caractère : 12 
+ Remove-Item <<<< .\SigningStore 
    + CategoryInfo   : NotImplemented: (:) [Remove-Item], PSNotSupportedException 
    + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.RemoveItemCommand 

私が見つけた唯一の方法はCertUnregisterSystemStoreのWin32 API

+0

あなたは[私の答え](http://stackoverflow.com/a/9749076へのコメントを書いていません/ 315935)。問題はすでに解決されていますか? – Oleg

+0

申し訳ありません、私はちょうどそれをテストする時間がかかりません。私はそれをして答えます。 – JPBlanc

答えて

4

読むthisを(certmgr.exe /デル参照)、追加型のC#コードで​​

+0

ありがとう@Christian、私はこれを見つけた、私は最後の文でCertUnregisterSystemStoreについて書いた。 – JPBlanc

+0

@ JPBlanc。はい、私はあなたに最後の文を読んでいますが、msdnへのリンクでは、すべてのフラグ値でpinvokeを実行していません!少ない仕事、より多くの時間をご利用いただけます! :-) –

+0

LinqPadでは、 '' System.Runtime.InteropServices''をインポートするか、DllImportを完全に指定する必要があることに注意してください。 "[System.Runtime.InteropServices.DllImport(" crypt32.dll "、CharSet = System.Runtime.InteropServices.CharSet.Unicode)]' ' – Nathan

0

を使用していたあなたは、証明書管理ツールを試してみましたか? http://msdn.microsoft.com/en-us/library/e78byta0%28VS.80%29.aspx

+0

ありがとう、私はこのツールでユーザー証明書を削除できますが、コンピュータストアは削除できません。 – JPBlanc

+2

あなたの質問は「PowerShell」とタグ付けされています。おそらく、これはあなたを助けることができます:http://dmitrysotnikov.wordpress.com/category/certificate-management/(Remove-QADLocalCertificateStoreを参照) –

+1

@DavidBrabantあなたの最後のコメントは答えです! –

7

ののPInvoke(すでに完了!)と私は誤って(個人と呼ばれるストアを作成し、それを取り除くしたいですもちろん)。 ughhhを探す2つの個人的な店。とにかく、私はそのストアに作成した証明書を追加し、拇印をコピーして(スペースを削除して)、拇印のレジストリを検索しました。 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ SystemCertificates \ Personal](ローカルマシンの場合)または[HKEY_CURRENT_USER \ Software \ Microsoft \ SystemCertificates \ Personal]のキー(私の場合はPersonal)を削除することで、現在のユーザーです。実際の個人的な店が実際にMyとして保存されているので、それは他のものがPersonalではないことを知っていました。

編集:これを解決するには、他のいくつかのキーを削除する必要がありましたが、基本的に慎重に検索し、取り除こうとしているものと一致する各エントリを調べます。一致するたびに、regファイルにエクスポートして、削除してテストします。この投稿は、同様に少し役に立った

http://banachowski.com/deprogramming/2011/01/deleting-unwanted-certificate-stores-from-windows/

3

は、PowerShellコマンドレットを使用します。

Remove-Item -Path cert:\LocalMachine\StoreYouWantToDelete 
+1

投稿されたコードは既に' Remove-Item'を参照しています – stuartd

+0

それはちょうど私が試みたもの質問の対象は? – JPBlanc

関連する問題