一、注册表基础
1、概述
- 注册表是windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树桩分层结构的数据库系统
- 注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息,它包括了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性
2、早期注册表
- 以ini为扩展名的文本文件的配置文件
3、windows95后的注册表
- 自windows 95操作系统开始,注册表真正成为windows用户经常接触的内容,并在其后的操作系统中继续沿用
- 注册表数据库由多个文件组成
- windows提供了注册表编辑器
//在运行出输入命令打开注册表编辑器:regedit
4、注册表结构
-
注册表以树状结构进行呈现
-
子树(实际上只有两棵子树,为了方便操作,分成了5棵子树)
- HKEY_LOCAL_MACHINE:记录关于本地计算机系统的信息,包括硬件和操作系统数据
- HKEY_USERS:记录关于动态加载的用户配置文件和默认配置文件的信息
- HKEY_CURRENT_USER:HKEY_USERS子树,它指向“HKEY_USERS\当前用户的安全ID”包含当前以交互方式登录的用户的用户配置文件
- HKEY_CURRENT_CONFIG:HKEY_LOCAL_MACHINE子树,指向HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current包含在启动时由本地计算机系统使用的硬件配置文件的相关信息加载的设备驱动程序、显示时要使用的分辨率
- HKEY_CLASSES_ROOT:HKEY_CURRENT_USER子树包含用于各种0LE技术和文件类关联数据的信息
-
项
- 可以简单的理解文件夹,项中可以包含项和值
-
值
- 每个注册表项或子项都可以包含称为值的数据
- 部分值应用于某个用户的信息
- 部分值应用于计算机所有用户的信息
- 值由三部分组成:值的名称、值类型、值的数据
-
二、注册表基本操作
1、创建项
2、创建值(有六种类型的值)
- 字符串值(REG_SZ):固定长度的文本字符串
- 二进制值(REG_BINARY):原始二进制数据。多数硬件组件信息都以二进制数据存储
- DWORD值(REG_DWORD):数据由4字节长的数表示。设备驱动程序和服务的很多参数都是这种类型
- QWORD值(REG_QWORD):数据由8字节长的数表示
- 多字符串值(REG_MULTI_SZ):多重字符串,包含列表或多值的值通常为该类型
- 可扩充字符串值(REG_EXPAND_SZ):长度可变的数据串。改数据类型包含在程序或服务使用该数据时解析的变量
3、修改、删除和重命名值
三、注册表应用
1、案例
-
个性化时间设置
- 打开注册表编辑器,锁定“HKEY_CURRENT_USER\Control Panel\International“下的值sTimeFormat进行修改
-
在欢迎屏幕显示自定义信息
- 打开注册表编辑器,锁定“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”下的值legalnoticecaption(标题)、legalnoticetext(文本)
-
禁用任务管理器
- 打开注册表编辑器,锁定“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”下新建DWORD值DisableTaskMgr,设置值为1
任务管理器命令:TaskMgr
-
禁用控制面板
- 打开注册表编辑器,锁定“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”下新建DWORD值NoControlPanel,设置值为1
-
去除快捷方式左下角小箭头
- 打开注册表编辑器,锁定“HKEY_CLASSES_ROOT\inkfile”找到项下的IsShortcut值,直接删除
2、注册表编辑技巧
- 查找字符串、值或项
- 将子项添加到收藏夹
- 打印注册表
- 复制项名字
四、注册表维护
1、注册表被破坏后的常见现象
- 无法启动系统
- 无法运行或正常运行合法的应用程序
- 找不到启动系统或运行应用程序所需的文件
- 没有访问应用程序的权限
- 不能正确安装或装入驱动程序
- 不能进行网络连接
- 注册表条目有错误
2、注册表被破坏的原因
- 应用程序错误:在系统中安装过多的软件后,可能会出现彼此之间的冲突
- 驱动程序不兼容:安装系统时有很多驱动都是自动安装的,容易产生不同硬件驱动程序不兼容情况,建议到官方网站下载对应稳定版驱动进行安装
- 硬件问题:主要出现在硬件质量上,比如硬盘或内存质量不过关造成读写错误、超频、CMOS、病毒等
- 误操作:误操作是最常见的原因,可能会导致注册表出现错误,严重者造成系统崩溃或无法启动系统
3、备份注册表
- 直接将注册表数据库文件进行备份
- 导出注册表
- 找到对应的项直接选择导出
4、恢复注册表
- 直接将数据库文件进行覆盖
- 将之前导出的项进行导入
5、锁定和解锁注册表
-
打开注册表编辑器,锁定到“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System”项中新建DWORD值DisableRegistryTools,将值设置为1,表示锁定,设置为0表示解锁
-
当注册表被锁定后,windows自带的注册表编辑器就无法打开,需要使用外部第三方注册表编辑工具来进行打开,找到对应项,修改值为1
第三方注册表修改器:RegWorkshop
五、注册表优化
1、优化内容
- 清除多余的DLL文件
- 打开注册表编辑器,锁定到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs“项,在这个项下存放的是共享的DLL信息,注意看括号里面的数据,它表示共享文件的数目,如果为0,则可将其删除
- 安装卸载应用程序的垃圾信息
- 打开注册表编辑器,锁定到“HKEY_CURRENT_USER\SOFTWARE“项和”HKEY_LOCAL_MACHINE\SOFTWARE“项,这两个项中包含系统中的应用程序,对于已知的程序是知道的,主要是针对一些未知的程序进行删除和一些已经卸载了的残留
- 系统安装时产生的无用信息
- 删除多余时区(必要情况下只保留北京时区)
- 锁定到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones“项
- 清除多余的语言代码(英语:0409、中文-0804)
- 锁定到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Locale”项
- 删除多余的键盘布局
- 锁定到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts”项,下面每一个子项代表一种键盘布局
- 删除多余时区(必要情况下只保留北京时区)