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

时间:2012-03-15 08:20:33

标签: c# powershell x509certificate windows-server-2008-r2

使用Microsoft工具-ss的{​​{1}}选项(-ss指定存储输出证书的主题证书存储名称),我在服务器上创建自己的存储。我能够以programaticaly删除我的证书,但我无法删除商店本身。根据错误消息,提供者似乎不支持此消息。

我甚至无法使用MMC管理单元(certmgr.msc)将其删除。有人知道怎么做吗?

MakeCert.exe

我找到的唯一方法是使用CertUnregisterSystemStore Win32 API

4 个答案:

答案 0 :(得分:8)

我不小心创建了一家名为Personal的商店,并希望摆脱它(当然)。两个私人商店寻找呃。无论如何,我添加了一个我为该商店创建的证书,复制了指纹(并删除了空格),然后在注册表中搜索了指纹。我发现我可以通过删除[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ SystemCertificates \ Personal](如果在本地计算机中)或[HKEY_CURRENT_USER \ Software \ Microsoft \ SystemCertificates \ Personal]中的密钥(在我的情况下是个人)来消除它们。是当前用户。我知道它不是另一个叫Personal的,因为真正的个人商店实际上存储为My。

编辑:我必须删除一些其他键来解决这个问题,但基本上仔细搜索并检查每个符合您试图摆脱的条目。对于每个匹配,导出到reg文件,然后删除并测试。

这篇文章也有点帮助:http://banachowski.com/deprogramming/2011/01/deleting-unwanted-certificate-stores-from-windows/

答案 1 :(得分:5)

使用PowerShell cmdlet:

Remove-Item -Path cert:\LocalMachine\StoreYouWantToDelete 

答案 2 :(得分:4)

阅读this并使用c {代码添加-type以及crypt32.dll

的pinvoke(已完成!)

答案 3 :(得分:0)

您是否尝试过证书管理器工具? http://msdn.microsoft.com/en-us/library/e78byta0%28VS.80%29.aspx(请参阅certmgr.exe / del)