You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Windows PowerShell获取当前用户个人证书的Subject CN(颁发给)

解决PowerShell获取证书「颁发给」信息的问题

问题原因

  1. PowerShell的证书对象没有直接提供IssuedTo属性,该信息需要从证书的Subject字段中解析出CN(通用名称)部分。
  2. FriendlyName为空是因为部分证书本身未设置友好名称,属于正常现象,可保留字段显示。

解决方案

使用计算属性从Subject中提取CN值作为IssuedTo,以下是两种可靠的实现命令:

方法1:正则表达式提取(简洁高效)

Get-ChildItem -Path Cert:\CurrentUser\My | 
    Select-Object FriendlyName,
                  @{Name='IssuedTo'; Expression={[regex]::Match($_.Subject, 'CN=([^,]+)').Groups[1].Value}},
                  Issuer, NotAfter, NotBefore

方法2:用X500名称类解析(规范严谨)

适合Subject包含多个字段的复杂场景:

Get-ChildItem -Path Cert:\CurrentUser\My | 
    Select-Object FriendlyName,
                  @{Name='IssuedTo'; Expression={
                      $dn = New-Object System.Security.Cryptography.X509Certificates.X500DistinguishedName($_.Subject)
                      ($dn.Format($false) -split "`n" | Where-Object { $_ -match 'CN=' }) -replace 'CN=', ''
                  }},
                  Issuer, NotAfter, NotBefore

说明

  • 两种方法都会将证书Subject中的CN值提取为IssuedTo字段,对应证书详情里的「颁发给」信息。
  • 若证书Subject无CN字段,IssuedTo会显示为空,符合实际情况。

内容的提问来源于stack exchange,提问作者Ronaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:38:29