注意
-
本文适用于高级用户、管理员和 IT 专业人员。
-
(.reg) 文件导入注册项是 Regedit.exe 的一项功能,Regedt32.exe 不支持。 可以使用 Regedit.exe 对基于 Windows NT 4.0 或基于 Windows 2000 的计算机上的注册表进行一些更改,但某些更改需要 Regedt32.exe。 例如,在基于 Windows NT 4.0 或基于 Windows 2000 的计算机上,不能使用 Regedit.exe 添加或更改REG_EXPAND_SZ或REG_MULTI_SZ值。 Regedt32.exe 是 Windows NT 4.0 和 Windows 2000 的主要注册表编辑器。 如果必须使用 Regedt32.exe,则不能使用注册项 (.reg) 文件来修改注册表。 有关 Regedit.exe 和 Regedt32.exe 之间的差异的详细信息,请单击以下编号以查看 Microsoft 知识库中的文章:
141377 Regedit.exe 与 Regedt32.exe之间的差异
本任务的内容
摘要
重要:本节、方法或任务包含如何修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请一定严格按照下列步骤操作。 为了获得进一步的保护,请在修改注册表之前对其进行备份。 这样就可以在出现问题时还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表 本分步文章介绍如何使用注册项 (.reg) 文件添加、修改或删除注册表子项和值。 Regedit.exe 使用.reg文件导入和导出注册表子项和值。 可以使用这些.reg文件将注册表更改远程分发到多个基于 Windows 的计算机。 运行 .reg 文件时,文件内容会合并到本地注册表中。 因此,必须谨慎分发.reg文件。返回到顶部
的语法。Reg 文件
.reg 文件具有以下语法:
RegistryEditorVersion 空白行 [RegistryPath1] “DataItemName1”=“DataType1:DataValue1” DataItemName2“=”DataType2:DataValue2“ 空白行 [RegistryPath2] “DataItemName3”=“DataType3:DataValue3” 其中: RegistryEditorVersion 是 Windows 2000、Windows XP 和 Windows Server 2003 的“Windows 注册表编辑器版本 5.00”,或者是 Windows 98 和 Windows NT 4.0 的“REGEDIT4”。 “REGEDIT4”标头也适用于基于 Windows 2000、基于 Windows XP 和基于 Windows Server 2003 的计算机。 空行 是空白行。 这将标识新注册表路径的开头。 每个项或子项都是一个新的注册表路径。 如果.reg文件中有多个键,则空白行可帮助你检查和排查内容问题。 RegistryPathx 是包含要导入的第一个值的子项的路径。 将路径括在方括号中,并用反斜杠分隔层次结构的每个级别。 例如:[HKEY_LOCAL_ MACHINE\SOFTWARE\Policies\Microsoft\Windows\System] .reg文件可以包含多个注册表路径。 如果注册表中不存在路径语句中层次结构的底部,则会创建新的子项。 注册表文件的内容将按照输入的顺序发送到注册表。 因此,如果要创建一个新的子项,其下有另一个子项,则必须按正确的顺序输入行。
DataItemNamex 是要导入的数据项的名称。 如果注册表中不存在文件中的数据项,则.reg文件会 (添加数据项的值) 。 如果数据项确实存在,则 .reg 文件中的值将覆盖现有值。 用引号将数据项的名称括起来。 数据项的名称后面紧跟一个等号 (=) 。 DataTypex 是注册表值的数据类型,紧跟等号。 对于除REG_SZ (字符串值) 以外的所有数据类型,数据类型后面紧跟冒号。 如果数据类型为 REG_SZ ,则不要包括数据类型值或冒号。 在这种情况下,Regedit.exe 假定数据类型REG_SZ。 下表列出了典型的注册表数据类型:
数据类型 |
.reg中的 DataType |
---|---|
REG_BINARY |
十六进制 |
REG_DWORD |
Dword |
REG_EXPAND_SZ |
十六进制 (2) |
REG_MULTI_SZ |
十六进制 (7) |
有关注册表数据类型的详细信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
256986 Microsoft Windows 注册表 DataValuex 的说明紧跟冒号 (或带有REG_SZ) 的等号,并且必须采用适当的格式 (例如字符串或十六进制) 。 对二进制数据项使用十六进制格式。 注意 您可以为同一注册表路径输入多个数据项行。 请注意,注册表文件应在文件底部包含一个空行。返回到顶部
添加注册表子项或添加和更改注册表值
若要添加注册表子项或添加或更改注册表值,请在注册表中进行适当的更改,然后导出相应的子项或子项。 导出的注册表子项将自动保存为.reg文件。 若要对注册表进行更改并将更改导出到 .reg 文件,请执行以下步骤:
-
单击 “开始”,单击“ 运行”,在“ 打开 ”框中键入 regedit,然后单击“ 确定”。
-
找到并单击包含要更改的注册表项的子项。
-
单击“ 文件”,然后单击“ 导出”。
此步骤在进行任何更改之前备份子项。 如果更改导致问题,可以稍后将此文件导入到注册表中。 -
在“ 文件名 ”框中,键入用于保存包含原始注册表项的.reg文件的文件名,然后单击“ 保存”。
注意 使用提醒你内容的文件名,例如对子项名称的引用。 -
在右窗格中,添加或修改所需的注册表项。
-
重复步骤 3 和 4 以再次导出子项,但对 .reg 文件使用不同的文件名。 可以使用此.reg文件在另一台计算机上更改注册表。
-
在本地计算机上测试更改。 如果它们导致问题,请双击保存原始注册表数据备份的文件,使注册表恢复其原始状态。 如果更改按预期工作,则可以使用本文“分发注册表更改”部分中的方法将步骤 6 中创建的.reg分发到其他计算机。
删除注册表项和值
若要删除具有 .reg 文件的注册表项,请在 .reg 文件的 RegistryPath 前面放置连字符 (-) 。 例如,从以下注册表项中删除 Test 子项:
HKEY_LOCAL_MACHINE\Software 在 .reg 文件中的以下注册表项前面放置连字符:
HKEY_LOCAL_MACHINE\Software\Test 以下示例包含一个可执行此任务的 .reg 文件。
[-HKEY_LOCAL_MACHINE\Software\Test] 若要删除具有 .reg 文件的注册表值,请在 .reg 文件中 DataItemName 后面的等号后面放置连字符 (-) 。 例如,从以下注册表项中删除 TestValue 注册表值:
HKEY_LOCAL_MACHINE\Software\Test 在 .reg 文件中,在“TestValue”= 后面放置连字符。 以下示例包含一个可执行此任务的 .reg 文件。
HKEY_LOCAL_MACHINE\Software\Test “TestValue”=- 若要创建.reg文件,请使用 Regedit.exe 导出要删除的注册表项,然后使用记事本编辑.reg文件并插入连字符。重命名注册表项和值
若要重命名键或值,请删除该键或值,然后使用新名称创建新的键或值。
分发注册表更改
可以在电子邮件中向用户发送.reg文件,将.reg文件放在网络共享上,并将用户定向到网络共享来运行该文件,也可以向用户的登录脚本添加命令,以便在用户登录时自动导入.reg文件。 当用户运行 .reg 文件时,他们会收到以下消息:
注册表编辑器
是否确实要将 .reg 文件的路径中的信息添加到注册表? 如果用户单击“ 是”,则用户会收到以下消息:注册表编辑器
.reg 文件路径中的信息已成功输入注册表。 Regedit.exe 支持 /s 命令行开关来不显示这些消息。 例如,若要从登录脚本批处理文件使用 /s 开关) 以静默方式运行 .reg 文件 (,请使用以下语法:.reg 文件的 regedit.exe /s 路径 还可以使用组策略或系统策略跨网络分发注册表更改。 有关其他信息,请访问以下 Microsoft 网站: