无法合并 Windows 注册表

无法合并 Windows 注册表

我的电脑(Windows 7 Pro 64 位)出现问题,我们的支持人员说这与我的登录转到临时配置文件有关。所以,他为我创建了一个新配置文件。但是,现在我丢失了 PuTTY 和 WinSCP 配置,因为它们存储在注册表中。我弄清楚了如何从旧配置文件加载配置单元并导出 WinSCP 和 PuTTY 分支。但是,我无法将它们合并到注册表中;我收到“访问注册表时出错”消息。我有管理员权限,可以通过 regedit 访问注册表。为什么我不能合并来自同一台机器的导出?

谢谢!

编辑

下面是我将注册表转换为 ASCII 后导出的 putty.reg 文件的片段:

Windows Registry Editor Version 5.00

[HKEY_USERS\SimonTatham\Software\SimonTatham]

[HKEY_USERS\SimonTatham\Software\SimonTatham\PuTTY]

[HKEY_USERS\SimonTatham\Software\SimonTatham\PuTTY\Jumplist]
"Recent sessions"=hex(7):63,00,73,00,70,00,32,00,74,00,68,00,31,00,6e,00,6f,00,\
  20,00,28,00,70,00,72,00,6f,00,64,00,29,00,00,00,74,00,68,00,32,00,2e,00,6e,\
  00,6f,00,2e,00,63,00,67,00,2e,00,6e,00,6d,00,73,00,2e,00,6d,00,6c,00,62,00,\
  2e,00,69,00,6e,00,65,00,74,00,20,00,28,00,70,00,72,00,6f,00,64,00,29,00,00,\
  00,74,00,68,00,32,00,2e,00,6e,00,6f,00,2e,00,63,00,67,00,2e,00,6c,00,61,00,\
  62,00,2e,00,6e,00,6d,00,73,00,2e,00,6d,00,6c,00,62,00,2e,00,69,00,6e,00,65,\
  00,74,00,20,00,28,00,6c,00,61,00,62,00,29,00,00,00,73,00,63,00,6d,00,32,00,\
  2e,00,6e,00,6f,00,2e,00,63,00,67,00,2e,00,6e,00,6d,00,73,00,2e,00,6d,00,6c,\
  00,62,00,2e,00,69,00,6e,00,65,00,74,00,00,00,63,00,73,00,70,00,31,00,74,00,\
  68,00,31,00,7a,00,7a,00,20,00,28,00,6c,00,61,00,62,00,29,00,00,00,63,00,73,\
  00,70,00,32,00,74,00,68,00,31,00,73,00,6f,00,20,00,28,00,70,00,72,00,6f,00,\
  64,00,29,00,00,00,74,00,68,00,31,00,2e,00,6e,00,6f,00,2e,00,63,00,67,00,2e,\
  00,6e,00,6d,00,73,00,2e,00,6d,00,6c,00,62,00,2e,00,69,00,6e,00,65,00,74,00,\
  20,00,28,00,70,00,72,00,6f,00,64,00,29,00,00,00,74,00,68,00,31,00,2e,00,6e,\
  00,6f,00,2e,00,63,00,67,00,2e,00,6c,00,61,00,62,00,2e,00,6e,00,6d,00,73,00,\
  2e,00,6d,00,6c,00,62,00,2e,00,69,00,6e,00,65,00,74,00,00,00,77,00,62,00,33,\
  00,63,00,6f,00,2e,00,73,00,6f,00,63,00,2e,00,73,00,68,00,61,00,77,00,2e,00,\
  63,00,61,00,00,00,73,00,72,00,31,00,2e,00,6e,00,6f,00,2e,00,63,00,67,00,2e,\
  00,6f,00,73,00,73,00,2e,00,6d,00,6c,00,62,00,2e,00,69,00,6e,00,65,00,74,00,\
  00,00,74,00,68,00,31,00,30,00,2d,00,70,00,72,00,6f,00,64,00,00,00,61,00,70,\
  00,70,00,36,00,73,00,6f,00,63,00,6c,00,61,00,62,00,00,00,00,00

由于文件长度超过 3000 行,因此我不会发布所有内容。该文件的 unicode 版本(转换前)以以下内容开头:ÿþ每个字符之间都有一个空格,每个新行之间都有一个空行。例如:

ÿþW i n d o w s   R e g i s t r y   E d i t o r   V e r s i o n   5 . 0 0 


[ H K E Y _ U S E R S \ S i m o n T a t h a m \ S o f t w a r e \ S i m o n T a t h a m ]


[ H K E Y _ U S E R S \ S i m o n T a t h a m \ S o f t w a r e \ S i m o n   T a t h a m \ P u T T Y ]

答案1

问题HKEY_USERS在于您的 Windows 安装和您想要合并的注册表文件中的 ID 不同。

我在将 Putty 配置导出到新的 Windows 7 环境时遇到了完全相同的问题。以下是我解决问题的方法:

  • 右键单击 putty.reg 文件并选择“编辑”选项
  • 在计算机上打开 regedit 以合并 putty 配置
  • 从新机器上复制用户 ID#HKEY_USERS\\*your user ID# is here*
  • 在 putty.reg 的编辑窗口中,用新的 ID 号替换旧的 ID 号
  • 您应该能够毫无问题地合并注册表文件。

答案2

如果您尝试从 cmd 提示符执行此操作,则必须右键单击开始菜单中的 cmd 图标并选择“以管理员身份运行”。即使您已经是系统管理员,也必须执行此操作。

然后您应该能够合并注册表项。

答案3

当我迁移到 Windows 10 时出现此错误。

我结合上述方法修复了我的问题。
导出时,它是来自 HKEY_Users\myname\Software... 的键,并且是 Unicode 格式。

我对该文件进行了全局替换,将 HKEY_Users\myname 替换为 HKEY_CURRENT_USER\ 这使得文件中的行看起来像这样:[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions]

然后我必须将其保存为 ANSI。我以“管理员”身份运行 Regedit,然后从文件/导入菜单导入。

希望这对某人有帮助。

答案4

尝试紧急启动 CD (http://www.prime-expert.com/ebcd/)。它包含脱机注册表编辑器,因此您可以从旧帐户(HKEY_USERS\OldUsername)导出注册表项并导入到新帐户(​​HKEY_USERS\NewUsername)。

EBCD 是一款售价 25 美元的共享软件。导出和导入可以采用文本 (.REG) 或二进制格式。二进制格式与原生 NT hive 相同,因此它保留了密钥的所有元数据和权限。

相关内容