【问题标题】:deleting certs from the "other people" certificate store从“其他人”证书存储中删除证书
【发布时间】:2016-04-20 12:18:25
【问题描述】:

我一直在做一些研究,看看是否有办法编写此功能的脚本,但我似乎无法找到这些证书实际存储在 何处。我看到其他关于“从存储中删除证书”的文章,但我认为这些让我更加困惑。

如果我运行get-childitem -path cert:\CurrentUser 之类的搜索,我看不到Other People 位置。但是,我可以在certmgr.msc 中看到该位置。我还检查了此处列出的注册位置:https://technet.microsoft.com/en-us/library/cc783813(WS.10).aspx,但似乎也找不到该位置。

所以,我想我的问题如下:

  1. 能否构建一个脚本进入该位置并进行全面清理?
  2. 这些证书实际安装在本地系统的什么位置?

谢谢,如果这看起来有点不稳定,我深表歉意。这让我头晕了将近两个小时。谢谢。

【问题讨论】:

  • “其他人”位置是否是空的?
  • Mathias- 不,我在这个位置有大约 20-40 个证书,已过期且是最新的。此位置用作“缓存”位置,因此会自动填充。

标签: powershell vbscript certificate x509certificate2


【解决方案1】:

您要查找的是 CurrentUser 存储的 AddressBook 目录。执行gci Cert:\CurrentUser\AddressBook,我敢打赌,您会看到与您在 certmgr.msc 的“其他人”部分看到的完全相同的证书。如果您不想保留这些证书中的任何一个,则将它们全部删除很简单:

Get-ChildItem Cert:\CurrentUser\AddressBook | Remove-Item

如果您这样做,它们将全部被删除,因此请谨慎操作。只是想摆脱过期的证书?添加这样的 where 语句:

Get-ChildItem Cert:\CurrentUser\AddressBook | Where{$_.NotAfter -lt [datetime]::Now} | Remove-Item

那个只会删除过期的证书。

无论如何,你想要Cert:\CurrentUser\AddressBook

【讨论】:

  • 感谢您的回复,在通讯录中进行了搜索,没有显示结果。证书商店的屏幕截图-postimg.org/image/d1rgrs8rt 屏幕截图或 PS 返回-postimg.org/image/pxccyz4zv
  • 好吧,让我们试试这个……看看 certmgr.msc 的那个文件夹中有多少证书,然后执行gci cert:\currentuser -recurse | Group PSParentPath|select Count,Name 并查找其中包含适量证书的组.
  • 正确的容器名称是TrustedPeople。我适当地编辑了您的回复。
  • 感谢您的跟进。我执行了路径,但命令无法将“PSPatrentPath”分组。我能够使用“gci cert:\currentuser -recurse”进行递归搜索,这显示了根证书,但在“其他人”位置没有显示任何内容。我一定是在这里遗漏了什么......
  • 在您的评论中,您将“PSParentPath”拼错为“PSPatrentPath”,因此这可能是问题的一部分。您应该能够在我的评论中复制并粘贴代码并毫无问题地运行它。
猜你喜欢
  • 1970-01-01
  • 2015-03-04
  • 2011-11-09
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
相关资源
最近更新 更多