我需要手动删除程序后清理 Windows 注册表。我需要做的如下。
- 查找所有包含“something”的键、值和数据。
- 删除所有符合描述的键、值和数据。
我可以以某种方式使用 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。现在,最大的问题是您的第一点。
- 查找所有包含“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.这将相对安全地获取几乎所有的引用。