有没有办法恢复使用RegDeleteKey删除的注册表项?

问题描述 投票:0回答:2

[我知道这实际上可能更好地属于超级用户,但我认为程序员的角度可能会产生稍微更好/更快的结果。]

我刚刚为我们的应用程序编写了一个时尚的新配置框架,一切都运行得很好。只剩下一个功能需要测试,那就是删除注册表项(递归地)。由于其他一切都完全按照预期工作,我变得不可原谅的粗心,并犯了一个很可能是致命的错误:我不是在调试器中一步步运行测试,而是实时运行......

似乎我在路径处理中犯了一个错误,现在HKEY_CURRENT_USER\Software下面的

所有
在测试时未锁定或无法访问的内容都消失了。

我使用了 Delphi 2009 的

TRegistry.DeleteKey
方法,该方法依次递归调用
RegDeleteKey
API。有什么方法可以通过编程或使用实用程序(最好是免费软件)来撤消此操作?

实际上,我对系统仍在运行感到相当惊讶(我是从那台机器上写这篇文章的)。自从发生这种情况以来,我还没有登录或重新启动。我猜这些条目都由正在运行的应用程序缓存在内存中。他们也可以从那里带回来吗?

系统还原报告该计算机上尚未创建还原点,但我确信有。这是否也是注册表被清除的症状?这个问题可以通过某种方式克服吗?

这是在 Windows 7 Enterprise(32 位)上。

哈普!!!

registry recovery disaster-recovery
2个回答
2
投票

至少是 HKEY_CURRENT_USER。

如果启用了漫游配置文件,请从配置文件存储中获取它。

如果没有,就丢失了。


0
投票

十年后的现在:是的,存在免费软件可以实验性搜索之前删除的注册表项/值。虽然它没有作为公共信息传播,并且一般谷歌结果不会导致下载,但取证已经成功地使用它们。

两个程序是:

  1. Yaru
    (共享软件,仍然存在严重错误,与Windows XP兼容)
  2. RegistryExplorer
    (免费软件,无 XP 支持,需要 NET 4.0 / NET 6.0,到目前为止尚未发现错误) https://f001.backblazeb2.com/file/EricZimmermanTools/net6/RegistryExplorer.zip (NET 6) 或 https://f001.backblazeb2.com/file/EricZimmermanTools/RegistryExplorer.zip(NET 4)

我已经尝试过这两种方法,并强烈推荐使用RegistryExplorer,因为它是免费的,有更好的 GUI,并且不会像 yaru 那样混淆双字/二进制文件。

重要:您必须以提升的权限运行RegistryExplorer.exe - 没有它也会启动,但无法加载注册表配置单元!请记住:这些程序只能检索在被删除之前已经存在一段时间的注册表项/值(或至少经历过一次重新启动)。这样在一个会话中创建然后立即删除的程序将无法找到/恢复!

如果有人觉得这有帮助,请点赞,让其他人了解您的经历。或者您知道更好的程序,我们很高兴听到它。不幸的是,注册表恢复仍然没有被探索过。

© www.soinside.com 2019 - 2024. All rights reserved.