読者です 読者をやめる 読者になる 読者になる

PowerShellでコンピュータ内の証明書を一覧したりアクセスするには

PowerShell

PowerShellではディレクトリだけでなく、証明書ストアの中をファイルディレクトリのように移動できます。

#現在のユーザの証明書ストアに移動
PS C:\> cd Cert:\CurrentUser
#プロンプトの先頭がCertになります
PS Cert:\CurrentUser>
#個人(My)に移動します
PS Cert:\CurrentUser>cd My
PS Cert:\CurrentUser\My>



MMCの画面で言えば、このように証明書の一覧を取りたい場合、

 
目的の証明書ストアの中身をGet-ChildItem、gci、lsなどでファイルのように一覧できます。

PS Cert:\CurrentUser\CA> Get-ChildItem


    ディレクトリ: Microsoft.PowerShell.Security\Certificate::CurrentUser\CA

Thumbprint                                Subject
----------                                -------
BEBC70D3DF2B3F8F55AED983BF20F2E3B21A36F6  CN=Thawte SGC CA - G2, O="Thawte, Inc.", C=US
B9EE85A10FD495D994ED63488AB74A18CB8E6BFA  CN=GlobalSign Organization Validation CA - G2, O=Globa...
B64771392538D1EB7A9281998791C14AFD0C5035  CN=COMODO Code Signing CA 2, O=COMODO CA Limited, L=Sa...
<省略>


個別のオブジェクトの中身の例はこのようになります。必要に応じてプロパティ使えます。

PS Cert:\CurrentUser\CA> (Get-ChildItem)[0] | Format-List
Subject      : CN=MSIT Machine Auth CA 2, DC=redmond, DC=corp, DC=microsoft, DC=com
Issuer       : CN=Microsoft Internet Authority
Thumbprint   : EF86B413F0FC25AC512B8BE9B6EC70F6DA341655
FriendlyName :
NotBefore    : 24/05/16 5:40:55
NotAfter     : 28/05/16 5:50:55
Extensions   : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid, System.Security
               .Cryptography.Oid, System.Security.Cryptography.Oid...}

オブジェクトの型は「X509Certificate2」クラスです。
http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate2(v=vs.110).aspx
 
 

なお、PowerShellでは同様の方法で証明書以外にも、変数やレジストリなど色々なリソースにアクセスできます。アクセスできるリソースはGet-PSDriveで確認できます。

PS> Get-PSDrive
Name           Used (GB)     Free (GB) Provider      Root                                CurrentLoc
                                                                                              ation
----           ---------     --------- --------      ----                                ----------
Alias                                  Alias
C                 179.92         48.22 FileSystem    C:\                                 Cert                                   Certificate   \
D                 872.28        990.73 FileSystem    D:\
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan