Microsoft Windows 注册表说明
概要
本文介绍注册表。本文还讲述如何编辑注册表,并列出可从中获取更多信息的参考资料。
可以使用注册表编辑器(Regedit.exe 或 Regedt32.exe)编辑注册表。注册表编辑器使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 有关 Regedit.exe 和 Regedt32.exe 的区别的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
注意:Windows XP 和 Windows Server 2003 的 64 位版本的注册表分为 32 位项和 64 位项。许多 32 位注册表项与其相应的 64 位注册表项同名,反之亦然。64 位版本的 Windows XP 和 Windows Server 2003 中附带的默认 64 位版本注册表编辑器在以下节点下显示 32 位注册表项:
下表列出了 Windows 当前定义和使用的数据类型。值名称的最大大小如下:
长值(超过 2,048 字节)必须存储为文件,将文件名存储在注册表中。这样有助于注册表有效地执行。值的最大大小如下:
注意:项的所有值的总大小不得超过 64K 的限制。
注册表说明
《英汉双解微软计算机辞典》(第 5 版)对注册表的定义是:Microsoft Windows 9x、Windows CE、Windows NT 和 Windows 2000 中使用的中央分层数据库,用于存储为一个或多个用户、应用程序和硬件设备配置系统所必需的信息。
注册表包含 Windows 在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在哪些硬件以及正在使用哪些端口。
注册表取代了 Windows 3.x 和 MS-DOS 配置文件(例如,Autoexec.bat 和 Config.sys)中使用的绝大多数基于文本的 .ini 文件。虽然几个 Windows 操作系统都有注册表,但这些操作系统的注册表有一些区别。
注册表数据存储在二进制文件中。 注册表包含 Windows 在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在哪些硬件以及正在使用哪些端口。
注册表取代了 Windows 3.x 和 MS-DOS 配置文件(例如,Autoexec.bat 和 Config.sys)中使用的绝大多数基于文本的 .ini 文件。虽然几个 Windows 操作系统都有注册表,但这些操作系统的注册表有一些区别。
关于编辑注册表的信息
要编辑注册表,Microsoft 建议您只按照 Microsoft 文档中的步骤执行。如果可能,请使用 Windows 用户界面,而不要直接编辑注册表。可以使用注册表编辑器(Regedit.exe 或 Regedt32.exe)编辑注册表。注册表编辑器使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 有关 Regedit.exe 和 Regedt32.exe 的区别的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
141377 (http://support.microsoft.com/kb/141377/) Regedit.exe 和 Regedt32.exe 的区别
修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。 有关备份和还原注册表的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 (http://support.microsoft.com/kb/322756/) 如何在 Windows XP 和 Windows Server 2003 中备份、编辑和还原注册表
322755 (http://support.microsoft.com/kb/322755/) 如何在 Windows 2000 中备份、编辑和还原注册表
323170 (http://support.microsoft.com/kb/323170/) 如何在 Windows NT 4.0 中备份、编辑和还原注册表
322754 (http://support.microsoft.com/kb/322754/) 如何在 Windows 95、Windows 98 和 Windows Me 中备份、编辑和还原注册表
要修改注册表数据,程序必须使用以下 MSDN 网站中定义的注册表功能:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry_functions.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry_functions.asp)
管理员可以通过使用注册表编辑器(Regedit.exe 或 Regedt32.exe)、组策略、系统策略、注册表文件 (.reg) 或通过运行脚本(例如,VisualBasic 脚本文件)来修改注册表。注意:Windows XP 和 Windows Server 2003 的 64 位版本的注册表分为 32 位项和 64 位项。许多 32 位注册表项与其相应的 64 位注册表项同名,反之亦然。64 位版本的 Windows XP 和 Windows Server 2003 中附带的默认 64 位版本注册表编辑器在以下节点下显示 32 位注册表项:
HKEY_LOCAL_MACHINE\Software\WOW6432
有关如何在 64 位版本的 Windows 中查看注册表的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
305097 (http://support.microsoft.com/kb/305097/) 如何通过使用 64 位版本 Windows 查看系统注册表
注册表编辑器的导航区显示文件夹。每个文件夹代表本地计算机上的一个预定义项。访问远程计算机的注册表时,只显示两个预定义项:HKEY_USERS 和 HKEY_LOCAL_MACHINE。下表列出了系统使用的预定义项。项名的最大长度是 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 Server 2003 和 Windows XP:16,383 个字符 |
• | Windows 2000:260 个 ANSI 字符或 16,383 个 Unicode 字符 |
• | Windows Millennium Edition/Windows 98/Windows 95:255 个字符 |
• | Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003:可用内存 |
• | Windows Millennium Edition/Windows 98/Windows 95:16,300 字节 |
名称 | 数据类型 | 描述 |
二进制值 | 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 中。 |
注册表配置单元是注册表中的一组项、子项和值,它有一组支持文件,这些文件包含其数据的备份。在 Windows NT 4.0、Windows 2000、Windows XP 和 Windows Server 2003 中,除 HKEY_CURRENT_USER 之外,所有其他配置单元的支持文件都位于 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 NT、Windows 2000、Windows XP 和 Windows Server 2003 中的安全功能,管理员可以控制对注册表项的访问权限
这篇文章中的信息适用于:
• | Microsoft Windows Server 2003, 64-Bit Datacenter Edition |
• | Microsoft Windows Server 2003 64-bit Enterprise Edition |
• | Microsoft Windows Server 2003 Datacenter Edition |
• | Microsoft Windows Server 2003 Enterprise Edition |
• | Microsoft Windows Server 2003 Standard Edition |
• | Microsoft Windows Server 2003 Web Edition |
• | Microsoft Windows XP 64-Bit Edition |
• | Microsoft Windows XP Home Edition |
• | Microsoft Windows XP Professional Edition |
• | Microsoft Windows XP Media Center Edition |
• | Microsoft Windows XP Tablet PC Edition |
• | Microsoft Windows 2000 Server |
• | Microsoft Windows 2000 Advanced Server |
• | Microsoft Windows 2000 Professional Edition |
• | Microsoft Windows 2000 Datacenter Server |
• | Microsoft Windows NT Server 4.0 Standard Edition |
• | Microsoft Windows NT Server 4.0 企业版 |
• | Microsoft Windows NT Workstation 4.0 开发员版 |
• | Microsoft Windows Millennium Edition |
• | Microsoft Windows 98 第二版 |
• | Microsoft Windows 98 Standard Edition |
• | Microsoft Windows 95 |
• | Microsoft Windows Small Business Server 2003 Premium Edition |
• | Microsoft Windows Small Business Server 2003 Standard Edition |