2016-09-07 2 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 

Но выше вернулся пустым, как a для SignatureAlgorithm

Как получить считываемое значение SignatureAlgorithm? А также как я могу выбрать все сертификаты SHA1, используя Powershell?

ответ

4

Select-Object ожидают названия свойств, которые будут отображаться (поскольку вы не указали параметр, вы используете 1-я позиция, которая равна -Property). Нет свойств, называемых SignatureAlgorithm.FriendlyName.

Если вы используете рассчитанное свойство, вы можете создать свою собственную собственность, где значение является свойством FriendlyName внутри объекта SignatureAlgorithm -property. Пример:

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

(n коротка для name (можно также использовать l or label) и e коротка для expression)

+0

Спасибо! Как это сделать в предложении 'where', чтобы выбрать только те сертификаты, у которых есть алгоритм' sha1'? – ElenaDBA

+1

Отфильтруйте те, у которых значение сигнатурного алгоритма. '.. | where-object {$ _. SignatureAlgorithm} | выбрать .... ' –

Смежные вопросы