http://support.microsoft.com/kb/256986
《英汉双解微软计算机辞典》(第 5 版)对注册表的定义是:
注册表配置单元是注册表中的一组项、子项和值,它有一组包含其数据备份的支持文件。所有配置单元(HKEY_CURRENT_USER 除外)的支持文件都位于 Windows NT 4.0、Windows 2000、Windows XP、Windows Server 2003 和 Windows Vista 上的 %SystemRoot%\System32\Config 文件夹中。HKEY_CURRENT_USER 的支持文件位于 %SystemRoot%\Profiles\Username 文件夹中。这些文件夹中的文件的文件扩展名指示各自包含的数据的类型。缺少扩展名有时也可能指示文件包含的数据的类型。
注册表配置单元 | 支持文件 |
HKEY_LOCAL_MACHINE\SAM | Sam、Sam.log、Sam.sav |
HKEY_LOCAL_MACHINE\Security | Security、Security.log、Security.sav |
HKEY_LOCAL_MACHINE\Software | Software、Software.log、Software.sav |
HKEY_LOCAL_MACHINE\System | System、System.alt、System.log、System.sav |
HKEY_CURRENT_CONFIG | System、System.alt、System.log、System.sav、Ntuser.dat、Ntuser.dat.log |
HKEY_USERS\DEFAULT | Default、Default.log、Default.sav |
在 Windows 98 中,注册表文件称为 User.dat 和 System.dat。在 Windows Millennium Edition 中,注册表文件称为 Classes.dat、User.dat 和 System.dat。
注意:通过使用 Windows NT、Windows 2000、Windows XP、Windows Server 2003 和 Windows Vista 中的安全功能,管理员可以控制对注册表项的访问。
下表列出了系统使用的预定义项。项名的最大长度是 255 个字符。
文件夹/预定义项 | 描述 |
HKEY_CURRENT_USER | 包含当前登录的用户的配置信息的根目录。该用户的文件夹、屏幕颜色和“控制面板”设置都存储在这里。这些信息与用户的配置文件相关联。此项有时缩写为“HKCU”。 |
HKEY_USERS | 包含计算机上的所有以活动方式加载的用户配置文件。HKEY_CURRENT_USER 是 HKEY_USERS 的子项。HKEY_USERS 有时缩写为“HKU”。 |
HKEY_LOCAL_MACHINE | 包含特定于计算机的配置信息(用于任何用户)。此项有时缩写为“HKLM”。 |
HKEY_CLASSES_ROOT | 是 HKEY_LOCAL_MACHINE\Software 的子项。存储在这里的信息可确保使用 Windows 资源管理器打开文件时能打开正确的程序。此项有时缩写为“HKCR”。从 Windows 2000 开始,这些信息同时存储在 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 项下。HKEY_LOCAL_MACHINE\Software\Classes 项包含可应用于本地计算机上的所有用户的默认设置。HKEY_CURRENT_USER\Software\Classes 项包含覆盖默认设置并且只应用于交互用户的设置。HKEY_CLASSES_ROOT 项提供合并上述两个来源的信息的注册表视图。HKEY_CLASSES_ROOT 还为针对早期版本的 Windows 设计的程序提供这种合并视图。要更改交互用户的设置,必须在 HKEY_CURRENT_USER\Software\Classes 下进行更改,而不是在 HKEY_CLASSES_ROOT 下更改。要更改默认设置,必须在 HKEY_LOCAL_MACHINE\Software\Classes 下进行更改。如果将项写到 HKEY_CLASSES_ROOT 下的一个项,系统会将信息存储在 HKEY_LOCAL_MACHINE\Software\Classes 下。如果将值写到 HKEY_CLASSES_ROOT 下的一个项,并且 HKEY_CURRENT_USER\Software\Classes 下已经存在该项,系统会将信息存储在前面的注册表项下,而不是存储在 HKEY_LOCAL_MACHINE\Software\Classes 下。 |
HKEY_CURRENT_CONFIG | 包含有关本地计算机在系统启动时使用的硬件配置文件的信息。 |
注意:Windows XP、Windows Server 2003 和 Windows Vista 的 64 位版本中的注册表分为 32 位注册表项和 64 位注册表项。许多 32 位注册表项与其相应的 64 位注册表项同名,反之亦然。64 位版本的 Windows XP、Windows Server 2003 和 Windows Vista 中附带的默认 64 位版本的注册表编辑器在以下节点下显示 32 位注册表项:
有关如何在 64 位版本的 Windows 中查看注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
下表列出了 Windows 当前定义和使用的数据类型。值名称的最大大小如下:
长值(超过 2,048 字节)必须存储为文件,将文件名存储在注册表中。这样有助于注册表有效地执行。值的最大大小如下:
注意:项的所有值的总大小不得超过 64K 的限制。
名称 | 数据类型 | 描述 |
二进制值 | REG_BINARY | 原始二进制数据。大多数硬件组件信息作为二进制数据存储,以十六进制的格式显示在注册表编辑器中。 |
DWORD 值 | REG_DWORD | 由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。与之有关的值是 DWORD_LITTLE_ENDIAN(最不重要的字节在最低位地址)和 REG_DWORD_BIG_ENDIAN(最不重要的字节在最高位地址)。 |
可扩展字符串值 | REG_EXPAND_SZ | 长度可变的数据字符串。这种数据类型包括程序或服务使用该数据时解析的变量。 |
多字符串值 | REG_MULTI_SZ | 多字符串。包含用户可以阅读的列表或多个值的值通常就是这种类型。各条目之间用空格、逗号或其他标记分隔。 |
字符串值 | REG_SZ | 长度固定的文本字符串。 |
二进制值 | REG_RESOURCE_LIST | 一系列嵌套的数组,用于存储硬件设备驱动程序或它控制的某个物理设备所使用的资源列表。此数据由系统检测并写入 \ResourceMap 树,作为二进制值以十六进制的格式显示在注册表编辑器中。 |
二进制值 | REG_RESOURCE_REQUIREMENTS_LIST | 一系列嵌套的数组,用于存储一个设备驱动程序(或其控制的某个物理设备)可以使用的硬件资源列表。系统将此列表的子集写入 \ResourceMap 树。此数据由系统检测,作为二进制值以十六进制的格式显示在注册表编辑器中。 |
二进制值 | REG_FULL_RESOURCE_DESCRIPTOR | 一系列嵌套的数组,用于存储物理硬件设备使用的资源列表。此数据由系统检测并写入 \HardwareDescription 树,作为二进制值以十六进制的格式显示在注册表编辑器中。 |
无 | REG_NONE | 没有任何特定类型的数据。此数据由系统或应用程序写到注册表,作为二进制值以十六进制的格式显示在注册表编辑器中。 |
链接 | REG_LINK | 一个 Unicode 字符串,它命名一个符号链接。 |
QWORD 值 | REG_QWORD | 由 64 位整数数字表示的数据。此数据在注册表编辑器中作为二进制值显示,并且是在 Windows 2000 中引入的。 |
在您编辑注册表之前,导出该注册表中要编辑的项,或者备份整个注册表。如果出现问题,则可以按照“还原注册表”部分中的步骤进行操作以将注册表还原为其以前的状态。若要备份整个注册表,请使用“备份”实用工具来备份系统状态。系统状态包括注册表、COM+ 类注册数据库以及启动文件。 有关如何使用备份实用工具备份系统状态的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
要修改注册表数据,程序必须使用以下 MSDN 网站中定义的注册表功能:
管理员可以通过使用注册表编辑器(Regedit.exe 或 Regedt32.exe)、组策略、系统策略、注册表 (.reg) 文件或通过运行脚本(例如,VisualBasic 脚本文件)来修改注册表。
我们建议您使用 Windows 用户界面来更改系统设置,而不要手动编辑注册表。但是,在有些情况下,解决产品问题的最佳方法可能是编辑注册表。如果在 Microsoft 知识库中介绍了此问题,应该会有一篇文章详细说明如何编辑注册表来解决该问题。我们建议您严格按照这些说明操作。
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
可使用注册表编辑器执行下列操作:
注册表编辑器的导航区显示文件夹。每个文件夹代表本地计算机上的一个预定义项。访问远程计算机的注册表时,只显示两个预定义项:HKEY_USERS 和 HKEY_LOCAL_MACHINE。
Microsoft 管理控制台 (MMC) 包含可用于管理网络、计算机、服务和其他系统组件的各种管理工具。通过使用“组策略”MMC 管理单元,管理员可以定义应用于计算机或用户的策略设置。您可以在本地计算机上通过使用本地“组策略”MMC 管理单元 Gpedit.msc 实施组策略。可以在 Active Directory 中通过使用“Active Directory 用户和计算机”MMC 管理单元实施组策略。有关如何使用组策略的更多信息,请参见相应的“组策略”MMC 管理单元中的帮助主题。
创建包含注册表更改的注册项 (.reg) 文件,然后在要进行更改的计算机上运行该 .reg 文件。您可以手动运行 .reg 文件,也可以通过使用登录脚本运行它。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
Windows 脚本宿主允许您直接在操作系统中运行 VBScript 和 JScript 脚本。您可以创建使用 Windows 脚本宿主方法的 VBScript 和 JScript 文件来删除、读取和写入注册表项和值。有关这些方法的更多信息,请访问下面的 Microsoft 网站:
Windows Management Instrumentation (WMI) 是 Microsoft Windows 操作系统的一个组件,而且它是基于 Web 的企业管理 (WBEM) 的 Microsoft 实现。WBEM 是一个行业计划,旨在开发在企业环境中访问管理信息的标准技术。您可以使用 WMI 在企业环境中自动执行管理任务(如编辑注册表)。您可以在具有 Windows 引擎并且能够处理 Microsoft ActiveX 对象的脚本语言中使用 WMI。还可以使用 WMI 命令行实用工具 (Wmic.exe) 来修改 Windows 注册表。
有关 WMI 的更多信息,请访问下面的 Microsoft 网站:
有关 WMI 命令行实用工具的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
您可以使用“Windows 控制台注册表工具”(Reg.exe) 编辑注册表。有关 Reg.exe 工具的帮助,请在命令提示符处键入 reg /?,然后单击“确定”。
若要还原注册表,请根据需要使用下面的方法。
若要还原导出的注册表子项,请双击在“导出注册表子项”部分中保存的注册表项 (.reg) 文件。也可以从备份中还原整个注册表。有关如何还原整个注册表的更多信息,请参见本文中后面的“还原整个注册表”部分。
若要还原整个注册表,请从备份中还原系统状态。 有关如何从备份中还原系统状态的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
注意:备份系统状态还将在 %SystemRoot%\Repair 文件夹中创建注册表文件的更新的副本。如果您在编辑注册表后无法启动 Windows XP,则可以通过执行以下 Microsoft 知识库文章的“第一部分”部分中介绍的步骤,手动替换这些注册表文件。