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

C# 如何删除makecert添加的证书存储,c#,powershell,x509certificate,windows-server-2008-r2,C#,Powershell,X509certificate,Windows Server 2008 R2,使用Microsoft工具的-ss选项MakeCert.exe(-ss指定存储输出证书的主体证书存储名称),我在服务器上创建了自己的存储。我可以通过编程删除我的证书,但无法删除存储本身。根据错误消息,提供商似乎不支持此操作 我甚至不能使用MMC管理单元(certmgr.msc)删除它。有人知道怎么做吗 PS cert:\LocalMachine> Remove-Item .\SigningStore Remove-Item : L'exécution du fournisseur s'es

使用Microsoft工具的
-ss
选项
MakeCert.exe
(-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
PS证书:\LocalMachine>删除项目。\n登录存储
移除物品:执行四轮驱动,四轮驱动的汽车,以及其他费用。
木质新牛肉:1克拉:12克拉

+删除项目您是否尝试了证书管理器工具?(请参阅certmgr.exe/del)

读取并添加
crypt32.dll的带有c#code和pinvoke的类型(已完成!)

我无意中创建了一个名为Personal的存储,并希望将其删除(当然)。两个私人商店,寻找ughhh。不管怎样,我在那个存储中添加了一个我创建的证书,复制了指纹(并删除了空格),然后在注册表中搜索指纹。我发现我可以通过删除[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\Personal](如果在本地计算机中)或[HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates\Personal]中当前用户中的密钥(在我的情况下是Personal)使它们消失。我知道它不是另一个叫做Personal的,因为真正的Personal store实际上是作为我的

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


这篇文章也有一些帮助:

使用PowerShell cmdlet:

Remove-Item -Path cert:\LocalMachine\StoreYouWantToDelete 

谢谢@Christian,我找到了这个,我在最后一句话中写到了CertUnregisterSystemStore。@JPBlanc。是的,我读了你的最后一句话,但链接到msdn没有完成所有标志值的pinvoke!更少的工作,更多的时间!:-)请注意,在LinqPad中,您需要导入
System.Runtime.InteropServices
,或者完全指定DllImport,例如
[System.Runtime.InteropServices.DllImport(“crypt32.dll”,CharSet=System.Runtime.InteropServices.CharSet.Unicode)]
谢谢,我可以使用此工具删除用户证书,但不是电脑商店。你的问题还标有“PowerShell”。也许这可以帮助你:(请参阅删除QADLocalCertificateStore)@DavidBrabant你最后的评论就是答案!你没有给我写评论。问题已经解决了吗?对不起,我只是不花时间来测试它。我来回答。