根据签名模板查找已颁发的证书

根据签名模板查找已颁发的证书

我正在寻找一种方法来根据 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})

相关内容