本质上,我试图通过使用主题来获取证书的序列号,以便可以在CertUtil中的变量中使用它。

我距离您很近,您会看到下面的内容吗?

cd cert:\localmachine\my

$serno = get-childitem | where { $_.subject -eq "XXXXXXXXXXXXXXXX" } | format-list     -property * | select -property SerialNumber

$serno

这显示
SerialNumber
------------

不是实际的序列号

有人有任何线索吗?

最佳答案

不要使用format-list,您已经拥有了所有属性。 format-list将您漂亮的X509Certificate2对象转换为一组根本不需要的格式对象。也可以在-expandproperty上使用select:

PS>get-childitem | where { $_.subject -eq "CN=localhost" } | select -expandproperty SerialNumber
6191F4A438FF77A24763E6D427749CD7

或在Powershell 3或更高版本中,使用简写形式:
PS>$serno = (get-childitem | where { $_.subject -eq "CN=localhost" }).SerialNumber
PS>$serno
6191F4A438FF77A24763E6D427749CD7

08-18 03:07