Windows注册表是一个目录,用于存储 Microsoft Windows 操作系统的设置和选项。它包含所有硬件、操作系统软件、大多数非操作系统软件、用户、电脑 首选项等的信息和设置。这篇文章讨论Windows 注册表基础知识。
每当用户对控制面板设置、文件关联、系统策略或大多数已安装软件进行更改时,更改都会反映并存储在注册表中。注册表还提供了一个了解内核操作的窗口,公开了运行时信息,例如性能计数器和当前活动的硬件。
引入 Windows 注册表是为了整理大量的每个程序 INI 文件,这些文件以前用于存储 Windows 程序的配置设置。这些文件往往分散在整个系统中,这使得它们难以追踪。
Windows 注册表基础知识解释
注册表由以下 5 个?根键组成:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG。
Root Keys 包含SubKeys。子键也可能包含它们自己的子键,并且至少包含一个值,称为其默认值。具有所有子键和值的键称为Hive。
注册表作为几个单独的 Hive 文件位于磁盘上的 system32/config 文件夹中。每次 Windows 启动或用户登录时,这些 Hive 文件都会被读入内存。要查看 Hives 的物理存储位置,请参阅:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlHiveList
您可以阅读有关Windows 注册表文件位置的更多信息。
注册表使用以下数据类型:
- REG_SZ:SZ 表示以零结尾的字符串。这是一个可变长度的字符串,可以包含 Unicode 和 ANSI 字符。
- REG_BINARY:它包含二进制数据。0 和 1。
- REG_DWORD:此数据类型是双字。它是一个 32 位的数值,可以容纳 0 到 232 之间的任意数字。
- REG_QWORD:此数据类型是四字。它是一个 64 位数值。
- REG_MULTI_SZ:此数据类型包含一组分配给单个值的以零结尾的字符串。
- REG_EXPAND_SZ:此数据类型是一个以零结尾的字符串,其中包含对环境变量的未扩展引用,例如 %SystemRoot%。
Windows 中的注册表虚拟化
从 Windows Vista 开始,随着文件虚拟化,注册表也被虚拟化,因此与 Windows XP 不同,注册表不会膨胀。在 Windows 7 中也延续了同样的做法。
虚拟化基本上意味着应用程序无法写入系统文件夹 Windows 的文件系统,也无法写入注册表中的“机器范围密钥”。但是,这不会阻止标准用户帐户安装或运行应用程序。
在 Windows Vista 及更高版本中,UAC 利用注册表虚拟化功能,将写入尝试重定向到
HKEY_LOCAL_MACHINESoftware
当应用程序尝试写入此配置单元时,Windows 会将其写入每个用户的位置,
HKEY_CLASSES_ROOTVirtualStoreMachineSoftware
这是谨慎进行的。没有人知道这正在发生!
简而言之,这就是注册表虚拟化,它是一项有用的安全功能。
顺便提一句,还必须提及 Windows Vista 及更高版本的另一项新技术:启用事务注册表的内核事务管理器。此功能启用了一种注册表回滚。但它没有在注册表编辑器中实现。相反,此功能旨在供需要使用事务处理创建健壮应用程序的开发人员使用。
注册表编辑器
Windows 11/10 中直接使用注册表的主要工具是注册表编辑器。要访问它,只需在 Vista 的“开始”菜单搜索栏中键入regedit ,然后按 Enter!
使用注册表时必须加倍小心,因为没有确认提示或单击“确定”保存提示。所做的更改将直接合并。
您可以阅读有关Windows 注册表编辑器提示和功能的更多信息。用户现在可以使用地址栏直接跳转到任何注册表项。
必须特别提到
HKEY_LOCAL_MACHINESystemCurrentControlSet
hive,作为这个特定位置的密钥,对于 Windows 的启动非常重要,它的备份得到维护,您可以在必要时恢复它,只需在安全模式下启动并在早期的 Windows 版本中选择最后一次正确的配置即可。