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

Sam*_*mir 11 windows windows-registry cmd.exe

手动删除程序后,我需要清理 Windows 注册表。我需要做的是跟随。

  1. 查找包含“某物”的所有键、值和数据。
  2. 删除与描述匹配的所有键、值和数据。

我可以以某种方式在 CMD 中使用 Reg 命令吗?

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

Krz*_*ski 8

试试 Powershell:

Get-ChildItem -path HKLM:\ -Recurse | where { $_.Name -match 'office12'} | Remove-Item -Force
Run Code Online (Sandbox Code Playgroud)

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

  • 你能解释一下这个命令会做什么吗? (2认同)

ana*_*tik 6

我认为名为RegScanner的应用程序可以帮助您,尽管正如其他答案中所述,它可能不是您想要对注册表执行的操作,因此请谨慎使用它。

要获得更大的破坏力,您可以将PsExec与它一起使用,例如

C:\progs\PsExec.exe -i -d -s c:\progs\regscanner-x64\regscanner.exe
Run Code Online (Sandbox Code Playgroud)

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


Dok*_*ard 1

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

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

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

大多数程序将其注册表项添加到HKEY_CURRENT_USERS\SoftwareHKEY_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
Run Code Online (Sandbox Code Playgroud)

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