如何删除证书由makecert添加的存储

问题描述:

使用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

阅读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

你尝试了证书管理工具吗? 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

的PInvoke(已经做了!)我不小心创建了一个名为个人商店,想摆脱它(当然)。两个个人商店寻找呃。无论如何,我添加了一个我为该商店创建的证书,复制了指纹(并删除了空格),然后在注册表中搜索指纹。我发现我可以让他们通过在[HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ SystemCertificates \个人(如果在本地机器上)或删除键(在我的情况下,个人)走开[HKEY_CURRENT_USER \软件\微软\ SystemCertificates \个人]在当前用户中。我知道这不是另一个称为个人的,因为真正的个人商店实际上被存储为我的。

编辑:我不得不删除一些其它的键来解决这个但基本上仔细搜索和检查每个条目匹配你正在试图摆脱的东西。对于每个匹配,导出到一个reg文件,然后删除并测试。

这个职位是有点帮助的还有:http://banachowski.com/deprogramming/2011/01/deleting-unwanted-certificate-stores-from-windows/

使用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