按值查找注册表项并将其删除

Posted

技术标签:

【中文标题】按值查找注册表项并将其删除【英文标题】:Find registry key by value and delete it 【发布时间】:2018-11-07 15:40:51 【问题描述】:

我想搜索一个注册表项并删除该项。我知道键的值和路径,但不知道名称。

Open     REG_SZ    /R "C:\Program Files (x86)\Microsoft Office\Office15\Library\Analysis\ANALYS32.XLL"
Open1   REG_SZ    "C:\Program Files (x86)\Microsoft Office\Office15\Library\SOLVER\SOLVER.XLAM"
Open2   REG_SZ    "C:\Program Files (x86)\Microsoft Office\Office15\Library\EUROTOOL.XLAM"

所以值是"C:\Program Files (x86)\Microsoft Office\Office15\Library\EUROTOOL.XLAM",在此主机上名称是Open2,但名称可以从主机更改为主机。

我用Get-Item 尝试过,但不幸的是我没有得到任何结果。

【问题讨论】:

您可以使用get-childitem 读取注册表项,使用get-itemproperty 读取属性。如果你想在 Office 中启用/禁用插件,我最好去that 方式... 【参考方案1】:

如果你知道属性值的确切键,那么你可以使用这个 sn-p 找到名称:

$keypath = "HKLM:\SOFTWARE\folder\"

$properties = Get-ItemProperty $keypath
 foreach ($property in $properties.psobject.properties) 

 if($property.value -eq "value that you want to match with")
  "Removing property $property"
  Remove-ItemProperty -Name $property.name -Path $keypath 
 
 

【讨论】:

以上是关于按值查找注册表项并将其删除的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 按值获取子名称并将其删除

怎样查找某个软件在注册表中的位置

战网1310错误代码

安装和部署项目添加注册表项

如何查找注册表项? 32/64 位

查找高级注册表项