当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 获取证书详细信息及示例

作者:精品下载站 日期:2024-12-15 00:31:13 浏览:18 分类:玩电脑

PowerShell 获取证书详细信息及示例


在 PowerShell 中,使用 Get-ChildItem cmdlet 获取证书详细信息、列出个人存储或远程计算机中的所有证书、获取已安装的证书以及显示证书详细信息,例如指纹、主题、NotAfter 等...

证书存储在证书存储中。在 Windows 中使用 Certmgr.msc 命令访问证书存储,或打开控制面板并搜索管理计算机证书。

使用 PowerShell 来获取 Windows 证书详细信息非常简单,我们可以查看所有证书详细信息并将其导出到 CSV 文件。

在这篇文章中,我们将讨论如何从根存储中获取证书详细信息,并在个人存储中列出证书。证书提供程序将证书命名空间公开为 PowerShell 中的 Cert: 驱动器。

获取存储在本地计算机根目录中的证书详细信息

Get-ChildItem Cert:\LocalMachine\Root\* | ft -AutoSize

在上面的示例中,PowerShell Get-ChildItem cmdlet 使用路径 Cert:\LocalMachine\Root 从本地计算机帐户上的 Root 目录获取证书信息。

上面的 PowerShell 命令列出了根目录中的所有证书,并在下面显示证书详细信息

 PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\Root

Thumbprint                               Subject                                                             
----------                               -------                                                             
E4C3B69139C26ED0620ADF4F727C9D19BF66391 CN=corp-in-252                                                   
EDD4EEAE6000A7F40C3202C171E30148030C072 CN=Microsoft Root Certificate Authority, DC=microsoft, DC=com       
EE36A4562FB2E05DBB3S32323ADF445084ED656 CN=Timestamping CA, OU=Certification, O=, L=D...
E43489159A5200D93D022CCAF37E7FE20A8B419 CN=Microsoft Root Authority, OU=Microsoft Corporation, OU=Copyrig...
784E459FF99D8FD97AFS46DCDCBCB90E0B7FCD5 CN=localhost                                                        
22B46C76E1305104F230517E6E504D43AB10B5 CN=Symantec Enterprise Mobile Root for Microsoft, O=Symantec Corp...
AF43288AD2722103B6AB1428485EA3014C0BCFE CN=Microsoft Root Certificate Authority 2011, O=Microsoft Corpora...

列出个人存储中的证书

可以使用 Get-ChildItem cmdlet 轻松检索存储在个人存储中的证书。

#Get installed certificates from localmachine 
$certs = Get-ChildItem Cert:\LocalMachine\My | ft -AutoSize
#Display results in console
$certs

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 使用 Cert:\LocalMachine\My 路径来获取所有证书列表。它列出了个人存储中的证书以及指纹和主题等认证详细信息。

上述 PowerShell 脚本的输出显示了个人存储中的所有证书以及证书 Thumbprint Subject 属性,如下所示

Thumbprint                               Subject                    
----------                               -------                    
D4C3B69139C26AD0610FDF4F727C9D19BF66391 CN=corp-in-252          
984E459FF9987FD97AFC46DCDCBCB90E0B7FCD5 CN=localhost               
30B2EF587D70C873A46C34586599B94BF8F42B4 CN=localhost               
21E1CF06BA981753337D4773CF9CB1D29100684 CN=localhost               
10D6649DC0672CC1866F26B0E6BA4E7BFFCA4E3 CN=corp-in-252          
0B8DF4B103544C05FB9633DB5553727803BEE2D CN=corp-in-252.shellgeek.org

使用 PowerShell 列出远程计算机上的证书

在 PowerShell 中使用 Invoke-Command cmdlet 和远程计算机名称来运行脚本块,该脚本块运行 Get-ChildItem cmdlet 以获取远程服务器上的证书。

运行以下命令以列出远程计算机上的证书。

Invoke-Command -ComputerName corp-in-254 -Scriptblock {Get-ChildItem Cert:\LocalMachine\My\ }

在上面的 PowerShell 脚本中,Invoke-Command 使用 ComputerName 属性来指定远程服务器名称。 Get-ChildItem cmdlet 使用远程计算机 LocalMachine 存储路径来获取证书及其详细信息。

上述 PowerShell 脚本的输出用于从远程计算机获取所有证书并查看其详细信息,如下所示:

PS C:\> Invoke-Command -ComputerName corp-in-254 -Scriptblock {Get-ChildItem Cert:\LocalMachine\My\ }                   

   PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My

Thumbprint                                Subject                                  PSComputerName
----------                                -------                                  --------------
8D0718A1037DB06BD4557B6BFB733E73D7962AD3  CN=be32a42c-7d1f-6732-a173-7e4fac624a... corp-in-254

在 PowerShell 中获取证书FriendlyName

在 PowerShell 中,要获取证书友好名称,请使用证书的 FriendlyName 属性。

# Get all certificates
$mycertificates = Get-ChildItem -Path Cert:\LocalMachine\My\

# Find Friendly Name of the certificate
$mycertificates | Select ThumbPrint,FriendlyName 

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 从 LocalMachine\My 存储区检索所有证书,并将它们存储在 $mycertificates 变量中。

使用证书的 FriendlyName 属性返回字符串类型值。

在 PowerShell 中查找证书的友好名称的上述脚本的输出是:

[玩转系统] PowerShell 获取证书详细信息及示例

在 PowerShell 中获取证书使用者名称

在 PowerShell 中要检索证书使用者名称,请使用证书的 SubjectName 属性。

# Get the certificate by thumbprint
$uacert = Get-ChildItem -Path 'Cert:\LocalMachine\UA Applications1048409e5e81af553a6fa599f0d7ea8c2f5c08'

# Obtain SubjectName of the certificate
$uacert.SubjectName.Name

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 通过指纹检索证书详细信息并将其存储在 $uacert 变量中。

使用证书的 SubjectName 属性返回字符串类型的 X500 DistinguishedName。

在 PowerShell 中查找证书的使用者名称的上述脚本的输出是:

PS C:\> $uacert = Get-ChildItem -Path 'Cert:\LocalMachine\UA Applications1048409e5e81af553a6fa599f0d7ea8c2f5c08'  

PS C:\> $uacert.SubjectName.Name 

CN=UA Configuration Tool, DC=CORP-EU-102
PS C:\>                                                                                                                          

在 PowerShell 中获取证书颁发者名称

在 PowerShell 中要检索证书颁发者名称,请使用证书的 IssuerName 属性。

# Get the certificate by thumbprint
$uacert = Get-ChildItem -Path 'Cert:\LocalMachine\UA Applications1048409e5e81af553a6fa599f0d7ea8c2f5c08'

# Obtain IssuerName of the certificate
$uacert.IssuerName.Name

在上面的 PowerShell 脚本中,Get-ChildItem cmdlet 通过指纹检索证书详细信息并将其存储在 $uacert 变量中。

使用证书的 IssuerName 属性返回字符串类型的 X500 DistinguishedName。

在 PowerShell 中查找证书颁发者名称的上述脚本的输出是:

PS C:\> $uacert = Get-ChildItem -Path 'Cert:\LocalMachine\UA Applications1048409e5e81af553a6fa599f0d7ea8c2f5c08'  

PS C:\> $uacert.IssuerName.Name 

CN=UA Configuration Tool, DC=CORP-EU-102
PS C:\>         

使用 PowerShell 将证书信息保存到 CSV 中

在 PowerShell 中,使用 Get-ChildItem cmdlet 获取所有证书及其详细信息或信息。使用 Export-CSV cmdlet 将信息导出到 CSV 文件。

运行以下 PowerShell 脚本将所有证书信息获取到 CSV 中。

# Get all certificates from the store
$mycertificates = Get-ChildItem -Path Cert:\LocalMachine\My\ | Select Thumbprint,NotAfter,SerialNumber

# Export certificates information to the CSV file
$mycertificates | Export-Csv -Path D:\export_certificates.csv -NoTypeInformation  

在上面的 PowerShell 脚本中,Get-ChildItem 使用 Path 参数指定 LocalMachine\My 证书存储位置并检索所有证书及其证书详细信息并将其存储到 $mycertificates 变量中。

存储证书信息的 $mycertificates 变量将输出传递到 Export-CSV cmdlet。 Export-CSV 命令使用 Path 参数指定将证书信息保存到 CSV 的目标路径。

结论

我希望您可能会对上面的文章感兴趣,了解如何在本地计算机或远程计算机上使用 Powershell 获取 Windows 证书详细信息。

在 PowerShell 中,使用 Get-ChildItem Cert:\ 驱动器获取证书信息。如上面的文章所示,您可以轻松获取证书详细信息,并在远程计算机上获取证书。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯