注册表

来自Wikioe
Eijux讨论 | 贡献2020年9月10日 (四) 01:02的版本 (建立内容为“category:Windows == 概述 == <q> 注册表(Registry)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信…”的新页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索


概述

注册表(Registry)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息,在操作系统的启动、运行过程中起着重要的作用。

注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
具体来说,在启动Windows时,Registry会对照已有硬件配置数据,检测新的硬件信息;系统内核从Registry中选取信息,包括要装入什么设备驱动程序,以及依什么次序装入,内核传送回它自身的信息,例如版权号等;同时设备驱动程序也向Registry传送数据,并从Registry接收装入和配置参数,一个好的设备驱动程序会告诉Registry它在使用什么系统资源,例如硬件中断或DMA通道等,另外,设备驱动程序还要报告所发现的配置数据;为应用程序或硬件的运行提供增加新的配置数据的服务。配合ini文件兼容16位Windows应用程序,当安装—个基于Windows 3.x的应用程序时,应用程序的安装程序Setup像在windows中—样创建它自己的INI文件或在win.ini和system.ini文件中创建入口;同时windows还提供了大量其他接口,允许用户修改系统配置数据,例如控制面板、设置程序等。
如果注册表受到了破坏,轻则使windows的启动过程出现异常,重则可能会导致整个windows系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题恢复注册表对windows用户来说就显得非常重要。 [1]

运行注册表

  1. windows+R 运行“regedit”(或“regedt32”)
  2. “C:\Windows\SysWOW64\regedit.exe”(regedit.exe或regedt32.exe)(32bit位于:“C:\Windows\System32\regedt32.exe”)

数据结构

Regedit.png

注册表由键(也叫主键或称“项”)、子键(子项)和值项构成:

  • 一个键就是分支中的一个文件夹,而子键就是这个文件夹当中的子文件夹,子键同样它也是一个键。
  • 一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。
  • 一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。



  • 数据类型主要有以下四种:
名称 说明
REG_SZ 字符串:文本字符串
REG_MULTI_SZ 多字符串值:含有多个文本值的字符串
REG_BINARY 二进制数:二进制值,以十六进制显示,
REG_DWORD 双字值:一个32位的二进制值,显示为8位的十六进制值。

目录结构[2]

注册表有五个一级分支,其作用如下:

数据类型 说明
HKEY_CLASSES_ROOT 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
HKEY_CURRENT_USER 存储当前用户设置的信息。(登录Windows时从HKEY_USERS拷贝相应项)
HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息。(公共配置信息与具体用户无关)
HKEY_USERS 包含使用计算机的用户的信息。
HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息。

存储方式[2]

Windows NT系列(Windows New Technology,新技术视窗操作系统,见Windows NT)操作系统和Windows 9x系列(以Windows 95内核作为蓝本的微软操作系统,见Windows 9x)的存储方式有很大区别。
注册表被分成多个文件存储,称为Registry Hives,每一个文件被称为一个配置单元。
Windows NT系列的配置单元文件:

名称 注册表分支 作用
SYSTEM HKEY_LOCAL_MACHINE\SYSTEM 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
NTUSER.DAT HKEY_CURRENT_USER 存储用户参数选择的信息(此文件放置于用户个人目录,和其他注册表文件是分开的)
SAM HKEY_LOCAL_MACHINE\SAM 用户及密码的数据库
SECURITY HKEY_LOCAL_MACHINE\SECURITY 安全性设置信息
SOFTWARE HKEY_LOCAL_MACHINE\SOFTWARE 安装的软件信息
DEFAULT HKEY_USERS\DEFAULT 缺省启动用户的信息
USERDIFF HKEY_USERS 管理员对用户强行进行的设置

Windows 9x系列的配置单元文件:

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

分散与集中之争[2]

常用

系统启动项

Windows操作系统的系统启动项是在注册表中设置的,在注册表中常见的自启动位置如下:

  1. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/2017/05/24/Windows/CurrentVersion/中的RunRunOnceRunOnceExRunServicesRunServicesOnce
  2. HKEY_CURRENT_USER/SOFTWARE/Microsoft/2017/05/24/Windows/CurrentVersion中的RunRunonce
  3. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/2017/05/24/WindowsNT/CurrentVersion/Winlogon/Notify

在这些注册表位置下,如果添加一新键值,并指定运行的程序,那么只要操作系统启动时,该程序自动启动。

右键菜单

参考