一. 注册表基础

1. 概述

注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统

注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息,它包括了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据。利用一个功强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性

2. 早期的注册表

早期的注册表是以ini 为扩展名的文本文件的配置文件

3ca7d0f426b8845c.webp

3. Windows 95后的注册表

自Windows 95操作系统开始,注册表真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用

(1) 注册表数据库由多个文件组成

注册表的文件在:C:\Windows\System32\config

6cef260c0ea6bcb7.webp

(2) Windows 提供了注册表编辑器,就是我们的命令regedit

我们平时打开注册表是通过regedit命令来打开,其实它也可以通过exe双击直接打开

注册表管理的目录是:C:\Windows

53f9aa09edd00939.webp

4. 注册表的结构

(1) 简单来说

我们打开注册表,可以看到他是一个树状结构

53f9aa09edd00939.webp

可以看到,它的下面有5个文件夹,我们称之为5棵子树

我们随便打开一个子树,比如我们打开HKEY_USERS

8d3343492582dcc8.webp

可以看见这颗子树下还有一堆文件夹,我们称之为项,每个项在右面有对应的值

注册表的结构就由“子树”,“项”和“值”这三个组成

(2) 子树

我们刚才看到它有5棵子树,但是实际上,它就有两颗子树。

这两棵子树分别是 HKEY_USERS 和 HKEY_LOCAL_MACHINE

人们为了方便操作,把这两颗子树细分,最后变成了一共5棵子树。

HKEY_LOCAL_MACHINE:

它记录关于本地计算机系统的信息,包括硬件和操作系统数据。

HKEY_USERS:

它记录关于动态加载的用户配置文件和默认配置文件的信息。

HKEY_CURRENT_USER:

它是HKEY_USERS子树,指向 “HKEY_USERS\当前用户的安全ID”
包含当前以交互方式登录的用户的用户配置文件。

04d1b5de1c8594dd.webp

HKEY_CURRENT_CONFIG:
他是 HKEY_LOCAL_MACHINE 的子树,
指向 HKEY LOCAL_MACHINE\SYSTEM\CurentControlSet\Hardware Profiles\Current
包含在启动时由本地计算机系统使用的硬件配置文件的相关信息加载的设备驱动程序、显示时要使用的分辨率

2efa7e909653aa4a.webp

可以看到,这两个是一样的

HKEY_CLASSES_ROOT:
它是 HKEY_CURRENT_USER 的子树
包含用于各种OLE技术和文件类关联数据的信息

(3) 项

可以简单的理解文件夹,项中可以包含项和值

(4) 值

每一个子树都有对应值,每一个项也有对应值

每个注册表项或子项都可以包含称为值的数据

部分值应用于某个用户的信息

部分值应用于计算机所有用户的信息

值由三部分组成(值的名称、值类型、值的数据)

307939a6a3832448.webp

值的类型可以通过新建值看

58c5fb7dcd71943b.webp

二. 注册表基本操作

1. 创建项

这个简单,直接右击新建项就行了

2. 创建值(有六种类型的值)

b028b9adad642acb.webp

字符串值(REG_SZ) :固定长度的文本字符串

806579fe1f988f62.webp

二进制值(REG_BINARY) :原始二进制数据。多数硬件组件信息都以二进制数据存储

7634476300d6f8e6.webp

DWORD值(REG_DWORD) :数据由4字节长的数表示。设备驱动程序和服务的很多参数都是这种类型

c43c5b2f583a739f.webp

QWORD值(REG_QWORD) :数据由8字节长的数表示

这个类型没找着

多字符串值(REG_MULTI_SZ) :多重字符串。包含列表或多值的值通常为该类型

e1894f402a9bc4bd.webp

可扩充字符串值(REG EXPANDSZ) :长度可变的数据串。该数据类型包合在程序或服务使用该数据时解析的变量

dcf0de6e6b9bd599.webp

3. 修改、删除和重命名值

右键就行

ee097a1735997c92.webp

三. 注册表应用

1. 案例

(1) 个性化时间

注册表目录:计算机\HKEY_CURRENT_USER\Control Panel\International
修改的值:sTimeFormat

修改后点击确认

看看结果

400f211d52043b6c.webp

更改生效

(2) 欢迎屏幕的显示自定义

注册表目录:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
修改值:legalnoticecaption

这个legalnoticecaption是标题,下面那个legalnoticetext是文本,也可以改

afa6c5b5309aa697.webp

c2e7b9e6b37bc213.webp

我们注销一下,重新登录试试

559cf3e5feb9829c.webp

成功!

(3) 禁用任务管理器

注册表位置:计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
新建DWORD值:DisableTaskMgr
值数据:1

这里要是Policies下没有System项的话,就新建一个

c7b42a4066162af1.webp

看看结果

18df8b2b1cfb07f0.webp

这样任务管理器就禁用了。

想要恢复的话把DisableTaskMgr值删了就行

(4) 禁用控制面板

注册表路径:HKEY_CURRENT_USERISOFTWARE\Microsoft Windows CurrentVersion Policies\Explorer
新建DWORD值:NoControlPanel
值数据:1

这里要是Policies下没有Explorer项的话,就新建一个

856ff8df29a5ba6f.webp

看看效果

47dd75b52c1b1a0b.webp

这样就打不开控制面板了

这里注意,先要恢复它的话需要把 Explorer项 删掉才行

(5) 删除快捷方式左下角小箭头

注册表路径:HKEY_CLASSES_ROOT\Inkfile
删除IsShortcut 值

我这里已经在装系统的时候默认给删了,演示不了

2. 注册表的编辑技巧

(1) 查找字符串、值或项

就是Ctrl + F

88151a143d10cf96.webp

还可以在 子树或项 中寻找 项或子项

9b1825f885b311fe.webp

(2) 打印,导出注册表

在上面的文件可以进行整个的操作

e48a94fd3055623b.webp

还可以导出子树或项

7d05d16a6933874e.webp

三. 注册表的维护

1. 注册表被破坏后的常见现象

无法启动系统

无法运行或正常运行合法的应用程序

找不到启动系统或运行应用程序所需的文件

没有访问应用程序的权限

不能正确安装或装入驱动程序

不能进行网络连接

注册表条目有错误

2. 注册表被破坏的原因

应用程序错误:在系统中安装过多的软件后,可能会出现彼此之间的冲突

驱动程序不兼容:安装系统时有很多驱动都是自动安装,容易产生不同硬件驱动程序不兼容情况,建议到官方网站下载对应稳定版驱动进行安装

硬件问题:主要出现在硬件质量上,比如硬盘或内存质量不过关造成读写错误、超频、CMOS、病毒等

误操作:误操作是最常见的原因,可能会导致注册表出现错误,严重者造成系统崩溃或无法启动系统

3. 备份注册表

(1) 直接将注册表数据库文件进行备份

(2) 导出注册表

根据我们上面提到的两种导出方法

(3) 恢复注册表

直接导入就行

56de08a1125bdfc2.webp

(4) 锁定和解锁注册表

锁定后就不能用regedit进行编辑了,但是可以用第三方软件进行编辑
注册表目录:HKEY_CURRENT_USERISOFTWARE\Microsoft Windows CurrentVersion Policies\Explorer\
设置值:Disableregistrytools
值数据:1表示锁定,0表示解锁

锁定后就不能用Windows自带的来编辑注册表了,需要用第三方软件将对应的值改回0

四. 注册表优化

1. 优化内容

(1) 清除多余的DLL文件

打开注册表编辑器,锁定到 “计算机HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs” 项,在这
个项下存放的是共享的DLL信息,注意看括号里面的数据,它表示共享文件的数目,如果为0,则可将其删除

7fd82822b84cc1c7.webp

(2) 安装卸载应用程序的垃圾信息

打开注册表编辑器,锁定到 “计算机\HKEY_CURRENT_USER\SOFTWARE” 项和 “HKEY_LOCAL_MACHINE\SOFTWARE“ 项,这两个项中包含系统中的应用程序,对于已知的程序是知道的,主要是针对一些未知的程序进行删除和一些已经卸载了的残留

2f4c873c5642c268.webp

06a23e910310e8c5.webp

(3) 系统安装时产生的无用信息

删除多余时区 (必要情况下只保留北京时区)

锁定到 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones” 项

680db032162c3425.webp

删之前建议备份一个

75715bf723aa300e.webp

删除多余的键盘布局

锁定到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts” 项,下面每一个子项代表一种键盘布局

f51479f894cf66f3.webp

我通常保留中文和美国英文这两个

这里就不演示了,记得删之前先备份,删的时候看好了是啥键盘布局,别手快把要留的删了

清除多余的语言代码(英语-0409、中文一0804)

锁定到 “计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Locale” 项

10e6f452124a6520.webp

这里和上面一样,注意也一样