
我正在尋找一種方法來根據 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})