
Ich suche nach einer Möglichkeit, ausgestellte Zertifikate meiner Zertifizierungsstelle anhand ihrer Signaturvorlage abzufragen. Folgendes verwende ich zunächst (basierend auf dem PSPKI 4.0.0-Modul):
$AllCerts= Get-CertificationAuthority -name CA_Authority | Get-IssuedRequest -Property Email,CertificateTemplate, CertificateTemplateOID
$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -eq 'CustomTemplate'})
...die Abfrage findet jedoch keine Übereinstimmungen für „CustomTemplate“. Ich versuche sogar, Platzhalterlogik zu verwenden.
$RelevantInfo = ($AllCerts | ?{$_.CertificateTemplate -eq 'WebServer' -Or $_.CertificateTemplate -like '*CustomTemplateName*'})
Ich kann sehen, dass die Werte da sind, wenn ich laufe;
Get-CertificateTemplate | Select Name, DisplayName, OID
Die Abfrage findet jedoch keine Übereinstimmungen für „CustomTemplateName“. Gibt es eine Möglichkeit, diese „Benutzernamen“-Informationen für die ausgestellte Zertifikatsvorlage tatsächlich abzurufen?
Antwort1
Bei benutzerdefinierten Vorlagen $row.CertificateTemplate
enthält die Eigenschaft den Objektbezeichner (OID) der Vorlage, nicht den Namen. Der Name wird nur für V1-Vorlagen zurückgegeben (integriert und nicht editierbar).
In Ihrem Fall müssen Sie also zuerst die angeforderte Vorlagen-OID abrufen und dann filtern:
$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})