注册表

https://zh.wikipedia.org/wiki/注册表

https://support.microsoft.com/zh-cn/help/141377/differences-between-regedit-exe-and-regedt32-exe

数据结构

注册表由键(key,或称“项”)、子键(subkey,子项)和值项(value)构成。一个键就是树状数据结构中的一个节点,而子键就是这个节点的子节点,子键也是键。一个值项则是一个键的一条属性,由名称(name)、数据类型(datatype)以及数据(data)组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。

在注册表编辑器(Regedit.exe)中,数据结构显示如下,其中,command键是open键的子键,(默认)表示该值是默认值,值名称为空,其数据类型为REG_SZ,数据值为%systemroot%system32NOTEPAD.EXE "%1

以上信息的意义是:txt类型的文件在右键菜单里的“打开”一项使用的程序是“NOTEPAD.EXE”,即用记事本打开文件。

数据类型

注册表的数据类型主要有以下五种:

显示类型(在编辑器中)数据类型说明
REG_SZ 字符串 文本字符串
REG_BINARY 二进制数 不定长度的二进制值,以十六进制显示
REG_DWORD 双字 一个 32 位的二进制值,显示为 8 位的十六进制值
REG_MULTI_SZ 多字符串 含有多个文本值的字符串,此名来源于字符串间用 nul 分隔、结尾两个 nul
REG_EXPAND_SZ 可扩展字符串 含有环境变量的字符串

此外,注册表还有其他的数据类型,但是均不常用:

  • REG_DWORD_BIG_ENDIAN - DWORD 的大头版本,下面同理
  • REG_DWORD_LITTLE_ENDIAN
  • REG_FULL_RESOURCE_DESCRIPTOR
  • REG_QWORD - DWORD 的四字(64 位)版本
  • REG_FILE_NAME

注册表的分支结构

注册表有五个一级分支,下面是这五个分支的名称及作用:

名称作用
HKEY_CLASSES_ROOT 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
HKEY_CURRENT_USER 存储当前用户设置的信息。
HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息。
HKEY_USERS 包含使用计算机的用户的信息。
HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息。

注册表的存储方式[编辑]

注册表的存储位置随着Windows的版本变化而不同。尤其是Windows NT系列操作系统和Windows 95系列的存储方式有很大区别。注册表被分成多个文件存储,称为Registry Hives,每一个文件被称为一个配置单元。

在早期的Windows 3.x系列中,注册表仅包含一个reg.dat文件,所存放的内容后来演变为HKEY_CLASSES_ROOT分支。

Windows NT家族的配置单元文件:

名称注册表分支作用
SYSTEM HKEY_LOCAL_MACHINESYSTEM 存储计算机硬件和系统的信息
NTUSER.DAT HKEY_CURRENT_USER 存储用户参数选择的信息(此文件放置于用户个人目录,和其他注册表文件是分开的)
SAM HKEY_LOCAL_MACHINESAM 用户及密码的数据库
SECURITY HKEY_LOCAL_MACHINESECURITY 安全性设置信息
SOFTWARE HKEY_LOCAL_MACHINESOFTWARE 安装的软件信息
DEFAULT HKEY_USERSDEFAULT 缺省启动用户的信息
USERDIFF HKEY_USERS 管理员对用户强行进行的设置
  • 假设Windows安装于C盘,则在Windows XP以前,文件存放于C:WINNTSYSTEM32CONFIG,而XP及以后则存放于C:WINDOWSSYSTEM32CONFIG

Windos95家族的配置文件

名称注册表分支作用
CLASSES HKEY_CLASSES_ROOT 存储软件组件库有关信息
USER.DAT HKEY_USERS 存储用户参数选择的信息
SYSTEM.DAT HKEY_LOCAL_MACHINE 系统信息

Regedit.exe 和 Regedt32.exe 的区别


概要


基于 Windows NT 的操作系统包含两个用于编辑注册表的实用工具:Regedit.exe 和 Regedt32.exe。本文描述在各种基于 Windows NT 的操作系统中这两个实用工具之间的区别。

更多信息


Windows NT 3.x

Regedit.exe

Regedit.exe 是 16 位 Windows 操作系统的注册编辑器。它用于修改 Windows 的注册数据库。此数据库位于 Windows 目录下,名称是 Reg.dat。数据库中包含有关 16 位应用程序的信息,文件管理器用它来打开和打印文件。支持对象链接和嵌入 (OLE) 的应用程序也使用此数据库。Windows on Windows (WOW) 和 16 位 Windows 应用程序使用并维护 Reg.dat。WOW 层位于虚拟 DOS 机器 (VDM) 层之上。

Regedit.exe 是 16 位应用程序,Windows NT 中包含它是为了与早先的 16 位应用程序兼容。Regedit 提供了在 Windows NT 下查看 Reg.dat 的方法。您可以在 Windows NT 初始安装完成后的首次登录时将 Reg.dat 数据库文件迁移到 Windows NT 注册表。

Regedt32.exe

Regedt32.exe 是 Windows NT 的配置编辑器。它用于修改 Windows NT 配置数据库或 Windows NT 注册表。此编辑器允许您查看或修改 Windows NT 注册表。它提供了表示注册表各个部分(称为配置单元)的窗口视图。每个窗口显示两部分。左侧是表示注册表项的文件夹。右侧是与所选注册表项关联的值。Regedt32 是一个功能强大的工具。使用它修改注册表值时必须格外小心。注册表中的值丢失或不正确可能导致已安装的 Windows NT 系统无法使用。

Windows NT 4.0 和 Windows 2000

Regedit.exe

Windows NT 4.0 和 Windows 2000 中包含 Regedit.exe 主要是为了使用它的搜索功能。您可以使用 Regedit.exe 更改 Windows NT 4.0 和 Windows 2000 注册表,但并非 Windows NT 4.0 和 Windows 2000 中的所有功能或数据类型都能用它来查看或编辑。

Windows NT 4.0 和 Windows 2000 中包含的 Regedit.exe 版本存在以下局限:
  • 无法为注册表项设置安全性。
  • 无法查看、编辑或搜索 REG_EXPAND_SZ 和 REG_MULTI_SZ 这两种值数据类型。如果试图查看 REG_EXPAND_SZ 值,Regedit.exe 会将其显示为二进制数据类型。如果试图编辑上述任一数据类型,Regedit.exe 会将其保存为 REG_SZ,而且该数据类型将无法执行预期的功能。
  • 您无法将注册表项保存为或还原为配置单元文件。
Microsoft 建议,如果需要在基于 Windows NT 4.0 或 Windows 2000 的计算机上使用 Regedit.exe,则只使用它的搜索功能。

Regedt32.exe

Regedt32.exe 是 Windows NT 4.0 和 Windows 2000 的配置编辑器,用于修改 Windows NT 配置数据库或 Windows NT 注册表。此编辑器允许您查看或修改 Windows NT 注册表。它提供了表示注册表各个部分(称为配置单元)的窗口视图。每个窗口显示两部分。左侧是表示注册表项的文件夹。右侧是与所选注册表项关联的值。Regedt32 是一个功能强大的工具,使用它修改注册表值时必须格外小心。注册表中的值丢失或不正确可能导致已经安装的 Windows 系统无法使用。

注意:与 Regedit.exe 不同,Regedt32.exe 不支持注册项文件 (.reg) 的导入和导出。

Windows XP 和 Windows Server 2003

Regedit.exe

Regedit.exe 是 Windows XP 和 Windows Server 2003 的配置编辑器,用于修改 Windows NT 配置数据库或 Windows NT 注册表。您可以使用此编辑器查看或修改 Windows NT 注册表。它支持以下功能:在注册表项上设置安全性;查看和编辑 REG_EXPAND_SZ 与 REG_MULTI_SZ;保存和还原配置单元文件。左侧是表示注册表项的文件夹。右侧是与所选注册表项关联的值。Regedit 是一个功能强大的工具。使用它修改注册表值时必须格外小心。注册表中的值丢失或不正确可能导致已经安装的 Windows 系统无法使用。

Regedt32.exe

在 Windows XP 和 Windows Server 2003 中,Regedt32.exe 只是一个用来运行 Regedit.exe 的小程序。
 
 
原文地址:https://www.cnblogs.com/rsapaper/p/6764926.html