
私は、署名テンプレートに基づいて 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})