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