
Я ищу способ запроса выданных сертификатов из моего CA на основе их шаблона подписи. Вот что я начинаю использовать (на основе модуля PSPKI 4.0.0);
$AllCerts= Get-CertificationAuthority -name CA_Authority | Get-IssuedRequest -Property Email,CertificateTemplate, CertificateTemplateOID
$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -eq 'CustomTemplate'})
...однако запрос не находит совпадений 'CustomTemplate'. Я даже пытаюсь использовать логику подстановочных знаков;
$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -like '*CustomTemplateName*'})
Я вижу, что значения присутствуют, когда я бегу;
Get-CertificateTemplate | Select Name, DisplayName, OID
Но запрос не находит совпадений для 'CustomTemplateName'. Есть ли способ получить эту информацию о 'дружественном имени' для шаблона выпущенных сертификатов?
решение1
Для пользовательских шаблонов $row.CertificateTemplate
свойство содержит идентификатор объекта шаблона (OID), а не имя. Имя возвращается только для шаблонов V1 (встроенных и нередактируемых).
Таким образом, в вашем случае вам сначала нужно получить OID запрашиваемого шаблона, а затем выполнить фильтр:
$AllCerts= Get-CertificationAuthority -name CA_Authority | Get-IssuedRequest -Property Email,CertificateTemplate, CertificateTemplateOID
$OID = (Get-CertificateTemplate -Name 'CustomTemplate').Oid.Value
$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -eq $OID})