如何使用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
)
谢谢!我如何在'where'子句中选择那些只有'sha1'算法的证书? – ElenaDBA
使用signaturealgorithm-value对那些进行过滤。 '.. | where-object {$ _。SignatureAlgorithm} |选择....' –