我使用一些安全网站,这些网站要求我安装 PFX 证书才能访问。我有多台计算机可以访问这些网站,我需要一种快速确定哪些计算机仍需要安装证书的方法。
有没有办法使用批处理命令列出个人存储中的所有证书?我可以远程运行该命令,但我不知道有任何方法可以列出它们。
“如何获取 Windows 上已安装的证书列表?“是一个类似的问题,但我正在寻找特定于命令行的解决方案。那里的答案都涉及使用 GUI 或 Powershell。
答案1
下面介绍了如何在 Windows 7 上从 shell 执行此操作cmd.exe
,而无需先启动 PowerShell:
C:\> powershell -Command Get-ChildItem -Recurse Cert:
然后,您可以将输出通过管道传输到其他命令(哪些命令?好吧,您的问题与此无关,所以我就不详细阐述了)或文件。从那里,您可以确定要查找的特定证书是否已安装。
由于您说您使用的是 Windows 7,因此我假设已安装 PowerShell。要不使用 PowerShell,必须明确卸载它,而您在问题中没有提到 PowerShell 已卸载或不可用,或者该解决方案必须在没有 PowerShell 的 Vista 之前的 Windows 上运行。
答案2
不需要 Powershell。
此外,提出的解决方案不仅转储原始数据,还转储 OP 请求的个人存储。
注意:以下命令在管理员命令提示符 shell 中运行
C:\windows\system32>systeminfo | findstr /B /C:“操作系统名称”/C:“操作系统版本”
OS Name: Microsoft Windows 7 Enterprise OS Version: 6.1.7601 Service Pack 1 Build 7601
C:\windows\system32>certutil -store 我的
My <<< Certificate Store Name ================ Certificate 0 ================ Serial Number: **************************** *<<< asterisks = mask for post. You will see cert info* Issuer: **************************** NotBefore: **************************** NotAfter: **************************** Subject: CN=**************************** Non-root Certificate Template: **************************** Cert Hash(sha1): **************************** Simple container name: **************************** Provider = Microsoft RSA SChannel Cryptographic Provider Private key is NOT exportable Encryption test passed