2012-03-15 27 views
6

使用Microsoft工具MakeCert.exe(-ss指定存儲輸出證書的主題的證書存儲名稱)的-ss選項,我在服務器上創建自己的存儲。我能夠刪除我的證書programaticaly,但我無法刪除商店本身。根據錯誤消息,這似乎不被提供者支持。如何刪除證書由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 2012-03-27 05:30:45

+0

對不起,我只是不花時間來測試它。我會做並回答。 – JPBlanc 2012-03-27 18:17:39

回答

4

閱讀this與C#代碼添加型與​​

+0

感謝@Christian,我發現這一個,我在最後一句寫CertUnregisterSystemStore。 – JPBlanc 2012-03-15 08:44:58

+0

@JBBlanc。是的,我讀了你最後一句話,但鏈接到MSDN沒有與所有標誌價值完成!更少的工作,更多的時間! :-) – 2012-03-15 08:58:28

+0

注意,在LinqPad,你需要或者有''System.Runtime.InteropServices''進口,或完全指定的DllImport,例如''[System.Runtime.InteropServices.DllImport(「crypt32.dll」,CharSet = System.Runtime.InteropServices.CharSet.Unicode)]'' – Nathan 2013-06-18 21:20:59

0

你嘗試了證書管理工具嗎? http://msdn.microsoft.com/en-us/library/e78byta0%28VS.80%29.aspx(見certmgr.exe/DEL)

+0

謝謝,我可以使用此工具刪除用戶證書,但不能使用電腦商店。 – JPBlanc 2012-03-15 08:57:05

+2

您的問題也標有「PowerShell」。也許這可以幫助你:http://dmitrysotnikov.wordpress.com/category/certificate-management/(請參閱Remove-QADLocalCertificateStore) – 2012-03-15 09:27:02

+1

@DavidBrabant你最後的評論是一個答案! – 2012-03-15 09:32:25

7

的PInvoke(已經做了!)我不小心創建了一個名爲個人商店,想擺脫它(當然)。兩個個人商店尋找呃。無論如何,我添加了一個我爲該商店創建的證書,複製了指紋(並刪除了空格),然後在註冊表中搜索指紋。我發現我可以讓他們通過在[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ SystemCertificates \個人(如果在本地機器上)或刪除鍵(在我的情況下,個人)走開[HKEY_CURRENT_USER \軟件\微軟\ SystemCertificates \個人]在當前用戶中。我知道這不是另一個稱爲個人的,因爲真正的個人商店實際上被存儲爲我的。

編輯:我不得不刪除一些其它的鍵來解決這個但基本上仔細搜索和檢查每個條目匹配你正在試圖擺脫的東西。對於每個匹配,導出到一個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 2013-12-28 01:31:31

+0

這就是我試過的回答問題的主題! – JPBlanc 2013-12-28 09:08:29

相關問題