我需要将证书Friendly Name
设置为空值,以便在证书控制台Friendly Name
列中显示<None>
。
使用此代码我只能得到列中的空值,而不是我需要的<None>
。
gci "Cert:\LocalMachine\My" | ? {$_.Subject -like "CN=mycer*"} | % { $_.FriendlyName = '' }
我也试过了$_.FriendlyName = $null
,这没什么区别。
奇怪的是 - 当我使用控制台清除Friendly Name
时,从Powershell的角度来看,值为''
,因为以下语句生成True
:write-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>
值。
答案 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"