Encontre certificados emitidos com base em modelos de assinatura

Encontre certificados emitidos com base em modelos de assinatura

Estou procurando uma maneira de consultar certificados emitidos pela minha CA com base no modelo de assinatura. Aqui está o que começo a usar (baseado no módulo 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'})

... no entanto, a consulta não encontra as correspondências de 'CustomTemplate'. Até tento usar lógica curinga;

$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -like '*CustomTemplateName*'})

Posso ver que os valores estão lá quando executo;

Get-CertificateTemplate | Select Name, DisplayName, OID 

Mas a consulta não encontra correspondências para 'CustomTemplateName'. Existe uma maneira de obter essas informações de 'nome amigável' para o modelo de certificados emitidos?

Responder1

Para modelos personalizados, $row.CertificateTemplatea propriedade contém o identificador de objeto (OID) do modelo, e não o nome. O nome é retornado apenas para modelos V1 (integrados e não editáveis).

Portanto, no seu caso, você deve primeiro obter o OID do modelo solicitado e depois filtrar:

$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})

informação relacionada