2016-09-07 56 views
1

我需要使用特定的哈希算法獲取所有證書的列表。如何使用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證書?

回答

4

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} |選擇....' –