批量列出已安装的个人证书

12 windows-7 batch certificate ssl

我使用一些需要我安装 PFX 证书才能访问它们的安全网站。我在多台计算机上执行此操作,我需要一种快速方法来确定仍需要在哪些计算机上安装证书。

有没有办法可以使用批处理命令列出个人存储中的所有证书?我可以远程运行命令,但我不知道有什么方法可以列出它们。

如何获取 Windows 上已安装证书的列表? ”是一个类似的问题,但我正在寻找特定于命令行的解决方案。那里的答案都涉及使用 GUI 或 Powershell。

在此处输入图片说明

all*_*tic 18

以下是如何从cmd.exeWindows 7 上的shell执行此操作,而无需先启动 PowerShell:

C:\> powershell -Command Get-ChildItem -Recurse Cert:
Run Code Online (Sandbox Code Playgroud)

然后,您可以将输出通过管道传输到其他命令(哪些命令?好吧,您的问题与此无关,所以我不会详细介绍)或文件。从那里您可以确定是否安装了您要查找的特定证书。

由于您说您使用的是 Windows 7,因此我假设已安装 PowerShell。如果没有 PowerShell,则必须明确卸载它,并且您没有在问题中提到 PowerShell 已卸载或不可用,或者该解决方案必须适用于不存在 PowerShell 的预 Vista Windows。


小智 7

不需要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
Run Code Online (Sandbox Code Playgroud)

C:\windows\system32>certutil -store My

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
Run Code Online (Sandbox Code Playgroud)