如何使用Powershell获取证书的安全哈希算法

问题描述:

我需要使用特定的哈希算法获取所有证书的列表。如何使用Powershell获取证书的安全哈希算法

首先我试着检索SignatureAlgorithm如下:

Get-ChildItem -Recurse | select thumbprint, subject, SignatureAlgorithm 

这给了我System.Security.Cryptography.Oid作为SignatureAlgorithm

我使用的FriendlyName

Get-ChildItem -Recurse | select thumbprint, subject, SignatureAlgorithm.FriendlyName 

尝试,但上述的值返回空的值为SignatureAlgorithm

如何检索SignatureAlgorithm的可读值?而且我该如何使用Powershell选择所有SHA1证书?

Select-Object正在等待属性的名称显示(因为您没有指定参数,所以您使用的是第1位,即-Property)。没有称为SignatureAlgorithm.FriendlyName的属性。

如果您使用计算属性,则可以设计属性,其中该值是对象的SignatureAlgorithm属性内的属性FriendlyName。例如:

Get-ChildItem -Recurse | select thumbprint, subject, @{n="SignatureAlgorithm";e={$_.SignatureAlgorithm.FriendlyName}} 

n是短期的name(也可以使用l or label)和e是短期的expression

+0

谢谢!我如何在'where'子句中选择那些只有'sha1'算法的证书? – ElenaDBA

+1

使用signaturealgorithm-value对那些进行过滤。 '.. | where-object {$ _。SignatureAlgorithm} |选择....' –