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