注册表说明
Microsoft 计算机字典(第五版)将注册表定义为:
Windows 98、Windows CE、Windows NT 和 Windows 2000 中使用的中央层次结构数据库,用于存储为一个或多个用户、应用程序和硬件设备配置系统所需的信息。
注册表包含在操作期间 Windows 持续引用的信息,例如每个用户的配置文件、计算机上安装的应用程序以及每个用户可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在的硬件以及正在使用的端口。
注册表将替换 Windows 3.x 和 MS-DOS 配置文件中使用的大多数基于文本的 .ini 文件,例如 Autoexec.bat 和 Config.sys。 虽然注册表在多个 Windows 操作系统中很常见,但它们之间存在一些差异。 注册表配置单元是注册表中的一组项、子项和值,它包含一组含有其数据备份的支持文件。 除 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 中的安全功能允许管理员控制对注册表项的访问。
下表列出了系统使用的预定义项。 项名称的最大长度为 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 位注册表编辑器版本在节点 HKEY_LOCAL_MACHINE\Software\WOW6432Node
下显示 32 位项。 有关如何查看 64 位版本 Windows 的注册表的详细信息,请参阅如何使用 64 位版本 Windows 查看系统注册表。
下表列出了当前定义和 Windows 使用的数据类型。 值名称的最大大小如下所示:
- Windows Server 2003、Windows XP 和 Windows Vista:16,383 个字符
- Windows 2000:260 个 ANSI 字符或 16,383 个 Unicode 字符
- Windows Millennium Edition/Windows 98/Windows 95:255 个字符
(超过 2,048 字节)的长值必须存储为文件,文件名存储在注册表中。 这有助于注册表高效执行。 该值的最大大小如下所示:
- Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista:可用内存
- Windows Millennium Edition/Windows 98/Windows 95:16,300 字节
备注
一个项的所有值的总大小有 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+ 类注册数据库和启动文件。 有关如何使用备份工具备份系统状态的详细信息,请参阅以下文章:
编辑注册表
要修改注册表数据,程序必须使用注册表函数中定义的注册表函数。
管理员可以使用注册表编辑器(Regedit.exe 或 Regedt32.exe)、组策略、系统策略、注册表 (.reg) 文件或运行 VisualBasic 脚本文件等脚本来修改注册表。