【发布时间】:2018-09-12 23:40:15
【问题描述】:
我需要将证书的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 '')。但是,反之亦然应用的 ''' 值不能提供预期的结果。
非常感谢任何帮助。
更新和回答:
正如 cmets 中的 Kory Gill 建议的那样,certutil.exe 确实是获得我需要的东西的方法。
创建了一个clear.inf 文件,内容如下
[Version]
Signature = "$Windows NT$"
[Properties]
11 =
并执行certutil.exe -repairstore -user my "serial number" clear.inf 我设法将Friendly Name 重置为<None> 值。
【问题讨论】:
-
你为什么不把
FriendlyName设置成<None>? -
@TheIncorrigible1 因为它是另一个
<None>。它在属性编辑器中不会显示为空值,而是<None>,这不是我需要的。 -
那么尝试设置
$_.FriendlyName = $null而不是空字符串?或者你可能需要使用Set-ItemProperty -
@TheMadTechnician
$null没有任何区别 - 我在发布之前检查了它。至于Set-ItemProperty- 值得一试,明天我回到办公室时会检查。 -
也许使用 certutil.exe ucready.com/change-friendly-name-of-a-x-509-certificate
标签: windows powershell certificate