“reg save”和“reg export”之间的区别?

kar*_*arl 7 windows

使用 Windows cmd命令reg

reg save
Run Code Online (Sandbox Code Playgroud)

将注册表的指定子项、条目和值的副本保存在指定文件中。

reg export
Run Code Online (Sandbox Code Playgroud)

在文件中创建指定子项、条目和值的副本,以便可以将其传输到其他服务器。

它们之间有什么区别,除了生成的文件是.hiv还是.reg

use*_*686 8

生成的文件不同的。

save将分支保存为注册表的原生“hive”格式。这保留了密钥所有权和 ACL,因此最适合在同一台机器上进行备份和恢复。

export 将其导出为适合分发的文本格式,因为 .reg 格式不保留任何元数据。


dou*_*own 5

不仅仅是生成的文件不同。我注意到使用 .reg 文件与使用 .hiv 文件时发生的情况有很大不同

\n\n

导入 .reg 文件时,不必指定路径。它根据 .reg 文件写入您的注册表,并保持导出和导入之间创建的新注册表项和条目不变。

\n\n

然而,当您导入 .hiv 文件时,您必须指定路径。新的注册表项以及在导出和导入之间创建的条目将被删除。

\n\n
\n\n

这里举一个例子来说明。

\n\n
    \n
  1. 使用虚拟条目创建虚拟密钥

    \n\n
    reg add hkcu\\test\nreg add hkcu\\test /v entry /t REG_DWORD /d 1\n
    Run Code Online (Sandbox Code Playgroud)
  2. \n
  3. 如果你运行reg query hkcu\\test你会看到这个

    \n\n
    \n

    HKEY_CURRENT_USER\\test
    \n \xe2\x80\x80\xe2\x80\x80\xe2\x80\x80\xe2\x80\x80(Default) REG_SZ
    \n \xe2\x80\x80\xe2\x80\x80\xe2\x80\x80\xe2\x80\x80entry REG_DWORD 0x1

    \n
  4. \n
  5. 导出到 .reg 文件和 .hiv 文件

    \n\n
    reg export hkcu\\test test.reg\nreg save hkcu\\test test.hiv\n
    Run Code Online (Sandbox Code Playgroud)
  6. \n
  7. 然后创建一个新条目和一个新子项

    \n\n
    reg add hkcu\\test /v new_entry /t REG_SZ /d "ayy lmao"\nreg add hkcu\\test\\new_key\n
    Run Code Online (Sandbox Code Playgroud)
  8. \n
  9. 如果你运行reg query hkcu\\test你会看到这个

    \n\n
    \n

    HKEY_CURRENT_USER\\test
    \n \xe2\x80\x80\xe2\x80\x80\xe2\x80\x80\xe2\x80\x80(Default) REG_SZ
    \n \xe2\x80\x80\xe2\x80\x80\xe2\x80\x80\xe2\x80\x80entry REG_DWORD 0x1
    \n \xe2\x80\x80\xe2\x80\x80\xe2\x80\x80\xe2\x80\x80new_entry REG_SZ ayy lmao

    \n\n

    HKEY_CURRENT_USER\\test\\new_key

    \n
  10. \n
  11. 导入我们之前创建的 .reg 文件

    \n\n
    reg import test.reg \n
    Run Code Online (Sandbox Code Playgroud)\n\n

    如果运行reg query hkcu\\test,您将看到与 #5 相同的输出。

  12. \n
  13. 导入我们之前创建的 .hiv 文件

    \n\n
    reg restore hkcu\\test test.hiv\n
    Run Code Online (Sandbox Code Playgroud)\n\n

    如果你运行reg query hkcu\\test,你会发现我们在 #4 中创建的新项目消失了,我们得到与 #2 相同的输出。

  14. \n
\n