如何查找并删除多个 Windows 注册表项?

如何查找并删除多个 Windows 注册表项?

我需要手动删除程序后清理 Windows 注册表。我需要做的如下。

  1. 查找所有包含“something”的键、值和数据。
  2. 删除所有符合描述的键、值和数据。

我可以以某种方式使用 CMD 中的 Reg 命令来实现这一点吗?

在这种情况下,“某物”是指“office12”。

答案1

尝试 Powershell:

Get-ChildItem -path HKLM:\ -Recurse | where { $_.Name -match 'office12'} | Remove-Item -Force

这将递归遍历抛出 HKEY_LOCAL_MACHINE 并删除所有匹配的键。更多信息这里

答案2

我认为一个叫做的应用程序注册扫描器可以帮助您,尽管如其他答案所述,它可能并不完全是您想要对注册表执行的操作,因此请谨慎使用它。

想要更具破坏力,你可以使用执行程序例如

C:\progs\PsExec.exe -i -d -s c:\progs\regscanner-x64\regscanner.exe

这将使其以 SYSTEM 用户身份运行。如果您仍然无法删除某些注册表项,本文将解释如何编辑注册表项的权限

答案3

就像我在评论中说的那样,你可以删除所有你想要的注册表项,或者使用命令提示符或手动使用 Regedit。现在,最大的问题是您的第一点。

  1. 查找所有包含“something”的键、值和数据。

除非您在安装程序时监视/审核注册表(并且假设顺利的情况下程序在运行时没有添加注册表项,如果是这样您需要从头到尾监视注册表),否则程序可能在不明显的地方向注册表添加了项。

大多数程序都会在HKEY_CURRENT_USERS\Software或 中将注册表项添加HKEY_LOCAL_MACHINE\Software到专用分支中(例如,我正在查看位于第一个路径中的 wxMaxima)。如果您删除了相应的分支,理论上您可以删除与该程序相关的所有键。但是,某些程序可能会更改某处某物在注册表的其余部分,并且没有一个很好的经验法则。

另一方面,如果你确实监控了所有内容,那么撤销更改就很简单了(因为你知道它们是什么)。我想你可以在虚拟环境中重新安装该程序并在那里进行监控。理论上你会得到相同的结果。

从阅读 REG 帮助来看,没有可用的选项可以执行您在 1 上提出的建议。所做REG QUERY的是检查注册表项内的值。要粘贴用法:

C:\Documents and Settings\User>reg query HKCU\Software\wxMaxima

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\wxMaxima
    ShowTips    REG_DWORD       0x1
    tipNum      REG_DWORD       0xb
    pos-x       REG_DWORD       0xfffffffc
    pos-y       REG_DWORD       0xfffffffc
    pos-w       REG_DWORD       0x408
    pos-h       REG_DWORD       0x2ea
    pos-max     REG_DWORD       0x1
    lastPath    REG_SZ  (some random path)
    maxima      REG_SZ  C:\Maxima\\bin\maxima.bat
    parameters  REG_SZ  -X '--dynamic-space-size 1000'
    fontSize    REG_DWORD       0xc
    mathFontsize        REG_DWORD       0xc
    matchParens REG_DWORD       0x1
    showLong    REG_DWORD       0x0
    fixedFontTC REG_DWORD       0x1
    changeAsterisk      REG_DWORD       0x0
    enterEvaluates      REG_DWORD       0x0
    saveUntitled        REG_DWORD       0x1
    openHCaret  REG_DWORD       0x0
    defaultPort REG_DWORD       0xfaa
    usejsmath   REG_DWORD       0x1
    keepPercent REG_DWORD       0x1
    pos-restore REG_DWORD       0x0
    language    REG_DWORD       0x0
    fontEncoding        REG_DWORD       0x0

HKEY_CURRENT_USER\Software\wxMaxima\AUI

HKEY_CURRENT_USER\Software\wxMaxima\RecentDocuments

HKEY_CURRENT_USER\Software\wxMaxima\Style

HKEY_CURRENT_USER\Software\wxMaxima\Wiz

我正在寻找解决方案。我发现一个解决方案是将注册表导出到文本文件,然后从中过滤结果。

答案4

卸载时,使用卸载工具进而CCleaner.这将相对安全地获取几乎所有的引用。

相关内容