Powershell 5のPKI
モジュールのさまざまなコマンドを使用したい:
$ Get-Command -module PKI
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Add-CertificateEnrollmentPolicyServer 1.0.0.0 PKI
Cmdlet Export-Certificate 1.0.0.0 PKI
Cmdlet Export-PfxCertificate 1.0.0.0 PKI
Cmdlet Get-Certificate 1.0.0.0 PKI
Cmdlet Get-CertificateAutoEnrollmentPolicy 1.0.0.0 PKI
Cmdlet Get-CertificateEnrollmentPolicyServer 1.0.0.0 PKI
Cmdlet Get-CertificateNotificationTask 1.0.0.0 PKI
Cmdlet Get-PfxData 1.0.0.0 PKI
Cmdlet Import-Certificate 1.0.0.0 PKI
Cmdlet Import-PfxCertificate 1.0.0.0 PKI
Cmdlet New-CertificateNotificationTask 1.0.0.0 PKI
Cmdlet New-SelfSignedCertificate 1.0.0.0 PKI
Cmdlet Remove-CertificateEnrollmentPolicyServer 1.0.0.0 PKI
Cmdlet Remove-CertificateNotificationTask 1.0.0.0 PKI
Cmdlet Set-CertificateAutoEnrollmentPolicy 1.0.0.0 PKI
Cmdlet Switch-Certificate 1.0.0.0 PKI
Cmdlet Test-Certificate 1.0.0.0 PKI
ただし、実行中Install-Module -Name PKI
戻り値
No match was found for the specified search criteria and module name 'PKI'
PSPKI
がありますが、PSPKIは異なるAPIとコマンドを持つサードパーティのモジュールです。
Get-Command -Module PSPKI
CommandType Name Version Source
----------- ---- ------- ------
Alias Add-AIA 3.3.0.0 PSPKI
Alias Add-CAACL 3.3.0.0 PSPKI
Alias Add-CDP 3.3.0.0 PSPKI
Alias Connect-CA 3.3.0.0 PSPKI
Alias Disable-CRLFlag 3.3.0.0 PSPKI
Alias Disable-KRAFlag 3.3.0.0 PSPKI
Alias Enable-CRLFlag 3.3.0.0 PSPKI
Alias Enable-KRAFlag 3.3.0.0 PSPKI
Alias Get-AIA 3.3.0.0 PSPKI
Alias Get-CA 3.3.0.0 PSPKI
Alias Get-CAACL 3.3.0.0 PSPKI
Alias Get-CDP 3.3.0.0 PSPKI
Alias Get-CRL 3.3.0.0 PSPKI
Alias Get-CRLFlag 3.3.0.0 PSPKI
Alias Get-CTL 3.3.0.0 PSPKI
Alias Get-KRAFlag 3.3.0.0 PSPKI
Alias Remove-AIA 3.3.0.0 PSPKI
Alias Remove-CAACL 3.3.0.0 PSPKI
Alias Remove-CDP 3.3.0.0 PSPKI
Alias Remove-Request 3.3.0.0 PSPKI
Alias Restore-CRLFlagDefault 3.3.0.0 PSPKI
Alias Restore-KRAFlagDefault 3.3.0.0 PSPKI
Alias Set-CAACL 3.3.0.0 PSPKI
Alias Set-CDP 3.3.0.0 PSPKI
Alias Show-CRL 3.3.0.0 PSPKI
Alias Show-CTL 3.3.0.0 PSPKI
Function Convert-PemToPfx 3.3.0.0 PSPKI
Function Convert-PfxToPem 3.3.0.0 PSPKI
Function Get-CertificateContextProperty 3.3.0.0 PSPKI
Function Get-CertificateRequest 3.3.0.0 PSPKI
Function Get-CertificateRevocationList 3.3.0.0 PSPKI
Function Get-CertificateTrustList 3.3.0.0 PSPKI
Function Get-CryptographicServiceProvider 3.3.0.0 PSPKI
Function Get-EnrollmentPolicyServerClient 3.3.0.0 PSPKI
Function Get-ErrorMessage 3.3.0.0 PSPKI
Function Get-ObjectIdentifier 3.3.0.0 PSPKI
Function Get-ObjectIdentifierEx 3.3.0.0 PSPKI
Function New-SelfSignedCertificateEx 3.3.0.0 PSPKI
Function Ping-ICertInterface 3.3.0.0 PSPKI
Function Receive-Certificate 3.3.0.0 PSPKI
Function Register-ObjectIdentifier 3.3.0.0 PSPKI
Function Show-Certificate 3.3.0.0 PSPKI
Function Show-CertificateRevocationList 3.3.0.0 PSPKI
Function Show-CertificateTrustList 3.3.0.0 PSPKI
Function Start-PsFCIV 3.3.0.0 PSPKI
Function Submit-CertificateRequest 3.3.0.0 PSPKI
Function Test-WebServerSSL 3.3.0.0 PSPKI
Function Unregister-ObjectIdentifier 3.3.0.0 PSPKI
Powershell Core 6にPKI
モジュールをインストールするにはどうすればよいですか?
PKIモジュールは、次を使用してインポートできます。
Import-Module -Name C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PKI\pki.psd1
powerShell v6.0.4
または
Import-Module -Name C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PKI\pki.psd1 -SkipEditionCheck
powerShell v6.1リリース候補1
しかし、私がテストした2つのコマンドレットはどちらも実行に失敗しました
PS> Get-Certificate
Get-Certificate : The type initializer for '<Module>' threw an exception.
At line:1 char:1
+ Get-Certificate
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], TypeInitializationException
+ FullyQualifiedErrorId : System.TypeInitializationException
PS> Test-Certificate -Cert Cert:\LocalMachine\My\494D1D7AFE42DD86D3968814CD4530AF29288BE1 -AllowUntrustedRoot
Test-Certificate : The type initializer for '<Module>' threw an exception.
At line:1 char:1
+ Test-Certificate -Cert Cert:\LocalMachine\My\494D1D7AFE42DD86D396881 ...
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], TypeInitializationException
+ FullyQualifiedErrorId : System.TypeInitializationException
つまり、現時点では、PowerShell v6.xで直接コマンドレットを使用することはできません。
あなたができることは、ローカルマシンへのPowerShellリモート処理セッション(WinRM)を作成し、そのセッションにPKIモジュールをインポートすることです。これにより、PowerShell v6から使用できるコマンドレットのプロキシ関数が提供されます。別のPowerShell v6セッションでPKIモジュールを使用する場合は、インポートを繰り返す必要があります