【问题标题】:How to remove a certificate Store added by makecert如何删除makecert添加的证书存储
【发布时间】:2012-03-31 17:52:19
【问题描述】:

使用 Microsoft 工具 MakeCert.exe-ss 选项(-ss 指定存储输出证书的主题的证书存储名称),我在服务器上创建了自己的存储。我能够以编程方式删除我的证书,但我无法删除商店本身。根据错误消息,供应商似乎不支持。

我什至不能使用 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

【问题讨论】:

  • 你没有给my answer写评论。问题已经解决了吗?
  • 对不起,我只是没有花时间测试它。我会做并回答。

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


【解决方案1】:

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

【讨论】:

  • 谢谢,我可以使用此工具删除用户证书,但不能删除计算机商店。
  • 您的问题也被标记为“PowerShell”。也许这可以帮助你:dmitrysotnikov.wordpress.com/category/certificate-management(请参阅 Remove-QADLocalCertificateStore )
  • @DavidBrabant 你的最后一条评论就是答案!
【解决方案2】:

阅读this 并使用c# 代码加上crypt32.dll 的pinvoke(已经完成!)

【讨论】:

  • 感谢@Christian,我找到了这个,我在最后一句话中写了关于 CertUnregisterSystemStore 的内容。
  • @JPBlanc。是的,我读了你最后一句话,但是到 msdn 的链接没有使用所有标志值完成 pinvoke!更少的工作,更多的可用时间! :-)
  • 请注意,在 LinqPad 中,您需要导入 System.Runtime.InteropServices,或者完全指定 DllImport,例如[System.Runtime.InteropServices.DllImport("crypt32.dll", CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
【解决方案3】:

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

编辑:我不得不删除其他一些键来解决这个问题,但基本上是仔细搜索并检查与您要摆脱的内容相匹配的每个条目。对于每个匹配项,导出到一个 reg 文件,然后删除并测试。

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

【讨论】:

    【解决方案4】:

    使用 PowerShell cmdlet:

    Remove-Item -Path cert:\LocalMachine\StoreYouWantToDelete 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-20
      • 2015-03-04
      • 1970-01-01
      • 2016-12-16
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      相关资源
      最近更新 更多