的记录 Windows 它是一个集中的、分层的数据库,用于存储系统、应用程序和用户配置,取代旧的 INI 文件。
它的结构由配置单元、键、子键和值组成,每个都有特定的数据类型,可以安全有效地管理对系统运行至关重要的信息。
注册表操作需要谨慎和扎实的知识,包括备份和恢复方法,因为它涉及安全、定制和高级故障排除的关键方面。
Windows 注册表 是一个 集中式层次数据库 它存储了操作系统本身、已安装的应用程序以及与其交互的用户的配置和运行所需的基本信息。与旧的 INI 文件系统不同,注册表将所有这些设置组织成一个统一、现代且更高效的结构。
Windows 的几乎每个方面(硬件、驱动程序、服务、文件关联、系统首选项、网络设置和用户详细信息)都是通过注册表来协调的。 因此,对注册表的任何修改都会对系统的行为和稳定性产生直接影响。
什么是 Windows 注册表?
El Windows的注册 是一个 集中式层次数据库 它存储了操作系统本身、已安装的应用程序以及与其交互的用户的配置和运行所需的基本信息。与旧的 INI 文件系统不同,注册表将所有这些设置组织成一个统一、现代且更高效的结构。
该系统允许您集中管理和维护配置,从而简化 Windows 环境中的管理和故障排除任务。
相关文章:如何修复常见的 Windows 注册表错误:完整且更新的指南
记录的历史背景和演变
在登记册出现之前, INI文件 是 Windows 和 MS-DOS 系统上存储配置的标准。这些分布式纯文本文件妨碍了集中管理、安全性和用户定制。 Windows 95 中注册表的出现代表了一次质的飞跃,它允许单个逻辑存储库具有多种优势:
更快、更高效的访问 这得益于其二进制格式,与文本文件的顺序分析相比。
强类型数据,避免歧义和错误。
多用户支持,因为每个配置文件都存储了自己的偏好和设置。
原子更新能力 (事务性),在并发修改时提高数据完整性。
轻松备份和恢复,甚至是远程的。
随着Windows版本的更迭(从95/98/Me/NT/2000到现在的Windows 10和11),注册表也在不断发展,调整了其结构,加强了其安全性,并扩展了其访问API。
相关文章:如何在 Home 10 Windows 中打开 HEIC 日志数据?
基本架构:Hive、键和值
Windows 注册表的结构基于 类似于文件系统的层次结构,但它不使用文件夹和文件,而是使用 麻疹 (子树), 键 (键), 子键 (子键),以及 价值观 (价值观)。
Hives:组织的核心
注册表配置单元是键和值的逻辑分组。 在 引导 系统或用户登录时。每个配置单元通常由磁盘上的一个或多个特定文件支持,允许单独上传、下载和备份。
如何在 Windows 中强制删除文件或文件夹:完整且更新的指南注册表中的主要配置单元是:
HKEY_LOCAL_MACHINE(HKLM): 全局和设备特定的配置。包含软件、系统、SAM 和安全配置单元等。
HKEY_CURRENT_USER(HKCU): 偏好设置和会话特定的用户数据。从技术上讲,它是指向 HKEY_USERS 特定分支的动态链接。
HKEY_USERS(HKU): 包含系统中所有活跃用户的个人资料。
HKEY_CLASSES_ROOT (HKCR): 有关 OLE/COM 对象的文件和类关联的信息。自 Windows 2000 起,它结合了 HKCU 和 HKLM 视图以适应多用户环境。
HKEY_CURRENT_CONFIG (HKCC): 提供个人资料数据 硬件 在当前启动中使用。
其他专用配置单元,例如旧版本中的 HKEY_PERFORMANCE_DATA 和 HKEY_DYN_DATA。
每个配置单元又包含无数的键、子键和值,它们决定了 Windows 各个方面的行为。
键和子键:层次结构
键类似于文件系统中的文件夹。。每个键可以包含其他子键,形成遵循以下方案的分支层次结构:
根密钥 (例如,HKLM)> 子密钥 (软件)> 子密钥 (微软)> 子密钥 (Windows)> …
所有注册表项都有唯一的名称并且不区分大小写。 名称不能包含反斜杠 (\),因为它用于分隔不同的层次结构。
值:存储的信息
每个键中可能有多个 价值观. 每个值在其父键中都有一个唯一的名称,并存储各种类型的数据,具体取决于每个应用程序或 Windows 组件的特定需求。
按照惯例,所有键都可以有一个“默认”值,其名称为空字符串。因此,注册表允许键包含从单个值到一长串值的任何内容,每个值代表不同的设置或数据。
例如: 关键 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion 可以具有如下值 ProgramFilesDir的 (带有 Program Files 路径的字符串)或 的CommonFilesDir (公共文件位置),每个都有其对应的数据类型。
注册表中存储的数据类型
与 INI 文件或大多数基于文本的配置系统相比,注册表的主要优势之一是能够处理强类型数据。 每个注册表值可以具有特定的数据类型,从而允许系统和应用程序明确地处理信息。
注册数据的主要类型
名称
符号
描述
无类型
REG_NONE
非类型化数据
卡德纳
REG_SZ
文本字符串,通常为 Unicode(UTF-16LE),通常带有空终止符
可扩展链条
REG_EXPAND_SZ
可能包含环境变量的字符串,通过读取值动态解析
二进制
REG_BINARY
任意二进制数据
DWORD
REG_DWORD / REG_DWORD_LITTLE_ENDIAN
32 位整数(通常为小端)
大端 DWORD
REG_DWORD_BIG_ENDIAN
大端顺序的 32 位整数(罕见)
符号链接
REG_LINK
指定对另一个注册表项的符号引用的 Unicode 字符串
多链
REG_MULTI_SZ
Unicode 字符串列表,非常适合将列表设置为搜索路径
资源清单
REG_RESOURCE_LIST
即插即用硬件用来存储资源列表
资源描述符
REG_FULL_RESOURCE_DESCRIPTOR
硬件分配数据,即插即用
资源需求列表
REG_RESOURCE_REQUIREMENTS_LIST
硬件可能需要的资源
字词
REG_QWORD / REG_QWORD_LITTLE_ENDIAN
64 位整数(从 Windows XP 开始引入)
如何使用 MSConfig 优化 PC 启动并减少启动时间每种数据类型都允许以最适合其用途的格式保存信息,从而使操作系统以及开发人员和管理员的工作更加轻松。
Hive 备份和持久文件
注册表中存储的数据不仅仅存在于内存中:每个配置单元都会在文件系统上的特定文件中进行备份和维护,以便在发生严重错误时能够在重启、备份和恢复后继续保留。
大多数中央蜂巢位于 %SystemRoot%\System32\配置 对于用户设置,则位于相应的配置文件文件夹中。其中最相关的文件包括:
Sam: HKEY_LOCAL_MACHINE\SAM
安全性:HKEY_LOCAL_MACHINE\SECURITY
软件:HKEY_LOCAL_MACHINE\SOFTWARE
系统: HKEY_LOCAL_MACHINE\SYSTEM
默认: HKEY_USERS\.DEFAULT
NTUSER.DAT:HKEY_USERS\ 以及链接 HKEY_CURRENT_USER
UsrClass.dat:用户特定的 COM 关联和配置
根据 Windows 版本的不同,这些文件可能有额外的备份(.log、.sav、.alt),以便在出现故障或损坏时帮助恢复配置单元。
例如:
系统.alt:SYSTEM 的关键备用备份
*。日志:最近更改的事务日志
*.sav:安装特定阶段的配置快照
移动用户设置和系统恢复使用这些文件来加载或移动自定义的首选项和设置。
注册表层次结构和根键
注册表访问始终从根键开始(根 根键(对应于预定义的配置单元之一)。每个根键都是 Windows API 中的一个常量,可以通过注册表编辑器、脚本或应用程序访问,就像这个高级编辑示例中的 Windows 中的注册表编辑器. 主要根键是:
HKEY_CLASSES_ROOT (HKCR): 文件关联、对象类型、OLE/COM 接口
HKEY_CURRENT_USER(HKCU): 会话中的用户偏好设置
HKEY_LOCAL_MACHINE(HKLM): 设备级配置
HKEY_USERS(HKU): 已加载的用户配置文件
HKEY_CURRENT_CONFIG (HKCC): 当前硬件配置文件
特殊键,例如 HKEY_PERFORMANCE_DATA 和 HKEY_DYN_DATA(旧版本)
在现代版本的 Windows 上, HKEY_CURRENT_USER 它实现为与登录用户对应的HKEY_USERS子键的动态链接,对于用户和机器类关联分支的HKEY_CLASSES_ROOT也是如此。
浏览和编辑注册表
访问和修改注册表需要专门的工具,因为任何错误的更改都可能导致严重的系统问题。 主要方法有:
注册表编辑器(regedit.exe)
最常用的图形工具是 注册表编辑器。可执行程序 (及其历史版本 regedt32.exe)。它允许您导航结构、搜索键、添加、修改或删除值以及导出/导入整个分支。
层次视图: 项和子项显示为树中的文件夹,使导航更容易。
基本动作: 创建、重命名、删除键和值、更改值数据、将分支导出和导入到 .REG 文件。
高级搜索: 允许您在整个注册表中(或限制在某个分支中)定位键、值或数据。
Windows 10 文件资源管理器不工作。原因、解决方案和替代方案命令行实用程序
对于重复、无人值守或自动化操作,您可以使用以下工具 REG.EXE (Windows 标准配置) 注册机 甚至是 VBScript 脚本, PowerShell的 或 JScript。
ejemplos:
reg 查询 HKLM\Software\Microsoft /v 版本 – 检查“版本”值
reg add HKCU\Software\MiApp /v Config /t REG_SZ /d “值” – 添加或修改值
reg 删除 HKLM\Software\MiApp /f – 删除“MyApp”键及其值
reg导入文件.reg – 合并 .REG 文件的内容
.REG 文件
.REG 文件是可读和可导出的文本文件,允许您轻松导入或导出注册表的部分内容。 它们非常适合传输配置、分发更改或备份特定分支。
现代 .REG 文件的示例以以下内容开头:
Windows 注册表编辑器版本 5.00“设置”=“值”
可以通过双击文件或使用命令将它们合并到注册表中 regedit /s archivo.reg 从 comandos.
Windows API 和编程
对于程序员来说,注册表访问是通过 Win32 API 函数(advapi32.dll)和 VB.NET、C#、Delphi、PowerShell 等语言的高级库来管理的。 这允许应用程序和服务在遵守权限和安全限制的同时读取、写入或删除注册表设置。
一些最常用的功能包括:
RegOpenKeyEx、RegCreateKey、RegSetValueEx、RegDeleteValue、RegQueryValueEx 等等。
COM 应用程序可以使用 RegSvr32 程序 更安全地注册或取消链接对象。
注册表中的权限和安全性
该注册表基于访问控制列表 (ACL) 实现了强大的安全系统,该系统确定哪些用户和组可以查看或修改每个键或值。 这对于保护关键系统配置尤其重要。
一般而言:
敏感分支(例如 HKLM\SYSTEM、HKLM\SECURITY、HKLM\SAM)只能由管理员或系统本身读取或修改。
其余设置通常可供所有者用户和系统使用。
组和域策略可以强制执行这些限制,甚至阻止非特权用户访问注册表编辑器。
通过 注册机, SubInACL 程序 或者 regedit 本身,您可以查看和修改键的权限以适应特定需要。
此外,自 Windows Vista 以来,已经实现了虚拟化和保护机制,如果应用程序缺乏足够的权限,则会将写入尝试重定向到受保护的分支以保护用户位置,从而避免兼容性错误和安全问题。
艾萨克对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。