重置'友好名称'使用PowerShell的证书属性

时间:2018-04-03 15:15:26

标签: windows powershell certificate

我需要将证书Friendly Name设置为空值,以便在证书控制台Friendly Name列中显示<None>。 使用此代码我只能得到列中的空值,而不是我需要的<None>

 gci "Cert:\LocalMachine\My" | ? {$_.Subject -like "CN=mycer*"} | % { $_.FriendlyName = '' }

我也试过了$_.FriendlyName = $null,这没什么区别。

奇怪的是 - 当我使用控制台清除Friendly Name时,从Powershell的角度来看,值为'',因为以下语句生成Truewrite-host ($_.FriendlyName -eq '')。但是,''&#39;价值应用反之亦然,不能提供预期的结果。

非常感谢任何帮助。

更新和答案: 正如评论中提到的DataFrameGroupBy.ffill一样, certutil.exe 确实是获得我需要的方式。 创建了一个内容低于

clear.inf文件
[Version]
Signature = "$Windows NT$"

[Properties]
11 = 

并执行certutil.exe -repairstore -user my "serial number" clear.inf我设法将Friendly Name重置为<None>值。

1 个答案:

答案 0 :(得分:2)

作为用于管理证书的PowerShell cmdlet的替代方法,可能会出现某些属性的问题,也可以使用certutil.exe来管理证书。这类似于使用robocopy.exe而不是Copy-File。使用能够提供所需结果的工具......

This link显示了如何使用certutil更改友好名称的示例。

该页面的用法示例如下:

certutil.exe -repairstore my "{serialnumber}" "change-friendly-name.inf"

inf文件的样子:

[Version]
Signature = "$Windows NT$"
[Properties]
11 = "{text}new friendly name"

另见certutil reference