certutil -view の結果をページ分割する

certutil -view の結果をページ分割する

次のコマンドを使用して、Active Directory 証明書サービス (ADCS) がインストールされている Windows Server マシンで発行された証明書のリストを取得します。

certutil -restrict 'Disposition=20' -out 'Binary Certificate' -view

すべて正常に動作し、X509 文字列のリストを取得しました。今度は、何らかのページ区切りを使用して同じ結果を取得し、このコマンドの各呼び出しで発行された証明書の特定の数を取得できるようにしたいと考えています。

何も見つかりませんでしたcertuitl のマニュアルページただし、Powershell ユーティリティが必要な場合でも、他のツールを使用して実行できます。

明確にするために、私はこのコマンドをスクリプト経由で使用しています。ウィンRM接続が確立されていないため、プログラムで解決する必要があります。

現在、コマンドを使用すると、発行されたすべての証明書を含む長い文字列が取得されます。たとえば、発行された証明書が 3 つある場合、このコマンドの出力は次のようになります。

Row 1:
  Binary Certificate:
-----BEGIN CERTIFICATE-----
MIIEyDCCA7CgAwIBAgIRALL+P2asRHyfAgAAAAB9mgMwDQYJKoZIhvcNAQELBQAw
QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET
MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMDEwMDYwNjQxMjBaFw0yMDEyMjkwNjQx
MjBaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw53
d3cuZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGp8Sp01kEsr
Gz98cyb/Kt+xvLJzsqGgIAOXjdHfjOzOUJTiMJIB/NIpQnDvNZ9L3qF3Zl2ecyFY
ZoI5LMyTrImjggJcMIICWDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
BQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUXXztHYUOkjN796BgKuPdcGaL
iVswHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8YkBug630J/SswaAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzABhh9odHRwOi8vb2NzcC5wa2kuZ29vZy9ndHMxbzFjb3Jl
MCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFMxTzEuY3J0MBkG
A1UdEQQSMBCCDnd3dy5nb29nbGUuY29tMCEGA1UdIAQaMBgwCAYGZ4EMAQICMAwG
CisGAQQB1nkCBQMwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5wa2kuZ29v
Zy9HVFMxTzFjb3JlLmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ALIeBcyL
os2KIE6HZvkruYolIGdr2vpw57JJUy3vi5BeAAABdPzbivQAAAQDAEcwRQIgdhDC
6bAIuOvy8noeZWMbiudTQpTGD1Wkx4yeSSf1aiMCIQC2HHLZRGjNa043bqXSunpm
BadlxXX2pTa4GaLYAxvk9wB2AOcS8rA3fhpi+47JDGGE8ep7N8tWHREmW/Pg80vy
QVRuAAABdPzbivcAAAQDAEcwRQIgSq5jcykP0BrVPo/51u9PIdC63A5l/vFcUsj2
r5Ro4S8CIQDHff9rJmMTsXLviBW+/zAy1gWBKbqqdnNh/pXixUGtgTANBgkqhkiG
9w0BAQsFAAOCAQEAZXv8x/2Z/+1vAyuwVtx3Euw+pDfPF3UNuFJ64NzdYw8+xLK5
W31ILMOpQII1ERfkU2IxmoQlVpVBYNNMkBnMPNMSBzzlQNAxxL8Ze5JKE5sOkb/8
FoqAwWQYNERcUJ1u3y2viiR7chBLGElo7yXMJgx1so9HD8NVR3rEA9oScBVW5udV
Cjg0b0RCOKFU8e+xoaKX7/OeNddrwoVZnRmwvUddbx2rqU8TZdvJMAQaecot8bty
TVPk+4gxuNxIZSLufY7uDh/qZYNSc2/pSfyyM8CKO54Uq8VqVVb5tGmSXLWRbtBY
pM8zLEwTp1yoOFB3P5GCrZX63/USA8COaE32Ow==
-----END CERTIFICATE-----


Row 2:
  Binary Certificate:
-----BEGIN CERTIFICATE-----
MIIEyDCCA7CgAwIBAgIRALL+P2asRHyfAgAAAAB9mgMwDQYJKoZIhvcNAQELBQAw
QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET
MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMDEwMDYwNjQxMjBaFw0yMDEyMjkwNjQx
MjBaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw53
d3cuZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGp8Sp01kEsr
Gz98cyb/Kt+xvLJzsqGgIAOXjdHfjOzOUJTiMJIB/NIpQnDvNZ9L3qF3Zl2ecyFY
ZoI5LMyTrImjggJcMIICWDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
BQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUXXztHYUOkjN796BgKuPdcGaL
iVswHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8YkBug630J/SswaAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzABhh9odHRwOi8vb2NzcC5wa2kuZ29vZy9ndHMxbzFjb3Jl
MCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFMxTzEuY3J0MBkG
A1UdEQQSMBCCDnd3dy5nb29nbGUuY29tMCEGA1UdIAQaMBgwCAYGZ4EMAQICMAwG
CisGAQQB1nkCBQMwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5wa2kuZ29v
Zy9HVFMxTzFjb3JlLmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ALIeBcyL
os2KIE6HZvkruYolIGdr2vpw57JJUy3vi5BeAAABdPzbivQAAAQDAEcwRQIgdhDC
6bAIuOvy8noeZWMbiudTQpTGD1Wkx4yeSSf1aiMCIQC2HHLZRGjNa043bqXSunpm
BadlxXX2pTa4GaLYAxvk9wB2AOcS8rA3fhpi+47JDGGE8ep7N8tWHREmW/Pg80vy
QVRuAAABdPzbivcAAAQDAEcwRQIgSq5jcykP0BrVPo/51u9PIdC63A5l/vFcUsj2
r5Ro4S8CIQDHff9rJmMTsXLviBW+/zAy1gWBKbqqdnNh/pXixUGtgTANBgkqhkiG
9w0BAQsFAAOCAQEAZXv8x/2Z/+1vAyuwVtx3Euw+pDfPF3UNuFJ64NzdYw8+xLK5
W31ILMOpQII1ERfkU2IxmoQlVpVBYNNMkBnMPNMSBzzlQNAxxL8Ze5JKE5sOkb/8
FoqAwWQYNERcUJ1u3y2viiR7chBLGElo7yXMJgx1so9HD8NVR3rEA9oScBVW5udV
Cjg0b0RCOKFU8e+xoaKX7/OeNddrwoVZnRmwvUddbx2rqU8TZdvJMAQaecot8bty
TVPk+4gxuNxIZSLufY7uDh/qZYNSc2/pSfyyM8CKO54Uq8VqVVb5tGmSXLWRbtBY
pM8zLEwTp1yoOFB3P5GCrZX63/USA8COaE32Ow==
-----END CERTIFICATE-----


Row 3:
  Binary Certificate:
-----BEGIN CERTIFICATE-----
MIIEyDCCA7CgAwIBAgIRALL+P2asRHyfAgAAAAB9mgMwDQYJKoZIhvcNAQELBQAw
QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET
MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMDEwMDYwNjQxMjBaFw0yMDEyMjkwNjQx
MjBaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw53
d3cuZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGp8Sp01kEsr
Gz98cyb/Kt+xvLJzsqGgIAOXjdHfjOzOUJTiMJIB/NIpQnDvNZ9L3qF3Zl2ecyFY
ZoI5LMyTrImjggJcMIICWDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
BQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUXXztHYUOkjN796BgKuPdcGaL
iVswHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8YkBug630J/SswaAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzABhh9odHRwOi8vb2NzcC5wa2kuZ29vZy9ndHMxbzFjb3Jl
MCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFMxTzEuY3J0MBkG
A1UdEQQSMBCCDnd3dy5nb29nbGUuY29tMCEGA1UdIAQaMBgwCAYGZ4EMAQICMAwG
CisGAQQB1nkCBQMwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5wa2kuZ29v
Zy9HVFMxTzFjb3JlLmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ALIeBcyL
os2KIE6HZvkruYolIGdr2vpw57JJUy3vi5BeAAABdPzbivQAAAQDAEcwRQIgdhDC
6bAIuOvy8noeZWMbiudTQpTGD1Wkx4yeSSf1aiMCIQC2HHLZRGjNa043bqXSunpm
BadlxXX2pTa4GaLYAxvk9wB2AOcS8rA3fhpi+47JDGGE8ep7N8tWHREmW/Pg80vy
QVRuAAABdPzbivcAAAQDAEcwRQIgSq5jcykP0BrVPo/51u9PIdC63A5l/vFcUsj2
r5Ro4S8CIQDHff9rJmMTsXLviBW+/zAy1gWBKbqqdnNh/pXixUGtgTANBgkqhkiG
9w0BAQsFAAOCAQEAZXv8x/2Z/+1vAyuwVtx3Euw+pDfPF3UNuFJ64NzdYw8+xLK5
W31ILMOpQII1ERfkU2IxmoQlVpVBYNNMkBnMPNMSBzzlQNAxxL8Ze5JKE5sOkb/8
FoqAwWQYNERcUJ1u3y2viiR7chBLGElo7yXMJgx1so9HD8NVR3rEA9oScBVW5udV
Cjg0b0RCOKFU8e+xoaKX7/OeNddrwoVZnRmwvUddbx2rqU8TZdvJMAQaecot8bty
TVPk+4gxuNxIZSLufY7uDh/qZYNSc2/pSfyyM8CKO54Uq8VqVVb5tGmSXLWRbtBY
pM8zLEwTp1yoOFB3P5GCrZX63/USA8COaE32Ow==
-----END CERTIFICATE-----

この例では、同じ証明書を3回繰り返しましたが、実際の結果は3つの異なる証明書になります。

私が欲しいのはこんな感じですcertutil -restrict 'Disposition=20' -out 'Binary Certificate' -view -page 1 -pagesize 2:(このコマンドは存在しません) を実行すると、まったく同じ情報が取得されますが、証明書は 2 つだけであり、同じコマンドを使用すると-page 2最後の証明書が取得されます。

出来ますか?

情報:

  • Windows Server 2016 (理想的なソリューションは、古いバージョンでも動作するはずです)
  • パワーシェル5.1

答え1

最も簡単な方法はパイプを使用することですOut-Host -Paging。これにより、スペースバーを使用して一度に 1 ページ進むことができます。

certutil -restrict 'Disposition=20' -out 'Binary Certificate' -view | Out-Host -Paging

このコマンドの結果をカウントすることもできます。

$f = certutil -restrict 'Disposition=20' -out 'Binary Certificate' -view | Select-Object Name | Measure
$f.Count

関連情報