如何使用PowerShell获取Windows证书详细信息?
我们知道Windows证书位于证书存储中,但是有时找到带有其名称的证书或获取特定证书详细信息可能很麻烦。
您可以使用MMC或CertMgr.msc命令访问证书存储。存在为CurrentUser,ServiceAccount和LocalComputer存储的证书。要使用PowerShell访问证书存储,您需要访问PSDrive,并且证书存储在名为Cert的驱动器中,如下所示。
PS C:\> Get-PSDrive cert | ft -AutoSize Name Used (GB) Free (GB) Provider Root CurrentLocation ---- --------- --------- -------- ---- --------------- Cert Certificate \
假设我们要检索存储在本地计算机帐户的Root目录中的证书的详细信息,然后可以使用以下命令。
示例
Get-ChildItem Cert:\LocalMachine\Root\输出结果
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\Root Thumbprint Subject ---------- ------- CDD4EEAE6000AC7F40C3802C171E30148030C072 CN=Microsoft Root Certificate Authority BE36A4562FB2EE05DBB3D32323ADF445084ED656 CN=Thawte Timestamping CA, OU=Thawte Ce A43489159A520F0D93D032CCAF37E7FE20A8B419 CN=Microsoft Root Authority, OU=Microso 92B46C76E13054E104F230517E6E504D43AB10B5 CN=Symantec Enterprise Mobile Root for 8F43288AD272F3103B6FB1428485EA3014C0BCFE CN=Microsoft Root Certificate Authority 7F88CD7223F3C813818C994614A89C99FA3B5247 CN=Microsoft Authenticode(tm) Root Auth
或者,您也可以使用以下命令,
Get-Item Cert:\LocalMachine\Root\* | ft -AutoSize
下面的命令将获取所有Microsoft证书。
Get-ChildItem Cert:\LocalMachine\Root\ | where{$_.Subject -like "*Microsoft*"}
要查找特定的证书,您应该知道证书的友好名称。例如,要从根存储区中找到“DigiCert”证书,
示例
Get-ChildItem Cert:\LocalMachine\Root\ | where{$_.FriendlyName -eq 'DigiCert'}输出结果
Thumbprint Subject ---------- ------- A8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436 CN=DigiCert Global Root CA, OU=www.digicert.com, 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43 CN=DigiCert Assured ID Root CA, OU=www.digicert.com
要直接从LocalComputer,CurrentUser或Root存储进行搜索,请使用-Recurse参数。
Get-ChildItem Cert:\LocalMachine\ -Recurse | where{$_.FriendlyName -eq 'DigiCert'}
一旦获得指纹或友好的名称,就可以使用fl*管道来获取证书的完整详细信息。
Get-ChildItem Cert:\LocalMachine\root | where{$_.FriendlyName -eq 'DigiCert'} | fl *
对于远程服务器,我们可以使用Invoke-Command,以下示例将从远程服务器获取证书。
示例
Invoke-Command -ComputerName Test1Comp, Test2Comp -Scriptblock{ Get-ChildItem Cert:\LocalMachine\root | where{$_.FriendlyName -eq 'DigiCert'} }