Windows 注册表——了解与修改注册表

注册表是 Windows 操作系统的一个重要组成部分,他在Windows 中的作用是无法代替的。但是并不是所有用户(User)都了解他。绝大多用户经常会遇到各种各样的问题故障,可以通过修改注册表解决部分常遇到的故障问题。修改注册表之前我们需要先了解什么是注册表?

一、注册表基础

注册表是windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统;用于存储系统配置信息、用户设置、安装的软件等重要数据的一个关键组件,它以一种层次化结构来组织和存储各种配置信息。注册表记录了用户(User)安装在计算机中的软件和程序的相互关联信息,包括计算机的硬件配置、自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性。Windows操作系统中注册表的数据以键值对的形式存储,可以通过读取和修改注册表中的键和值来实现系统配置的调整和个性化设置。

1.注册表的作用

注册表在Windows操作系统中扮演着非常重要的角色,它不仅存储了操作系统的各种配置信息,还记录了用户和软件的个性化设置。通过对注册表的读写操作,可以实现系统优化与性能调节、程序设置与配置、用户个性化设置等功能。注册表的正确使用对于系统的稳定性、性能和安全性有着至关重要的影响。注册表中记录了用户安装在计算机上的软件和每个程序的相关信息,通过它可以控制硬件、软件、用户环境和操作系统界面的数据信息文件。

拓展:注册表文件的数据信息保存在system.dat 和user.dat 中、利用regedit.exe 程序能够存取注册表文件(其实大家可能也知道regedt32.exe,这两个程序是一样的)

2.注册表的组织结构

在Windows操作系统中,注册表是一个关键的系统数据库,用于保存和管理各种系统和软件配置信息。了解注册表的结构和组织对于理解其工作原理和进行相应的操作非常重要。

注册表包括以下5个根键


1.HKEY_CLASSES_ROOT  代表注册表的类信息(文件类型、COM组件等)。

说明:该根键包括启动应用程序所需的全部信息,包括扩展名,应用程序与文档之间的关系,
驱动程序名,DDE和OLE 信息,类ID 编号和应用程序与文档的图标等

2.HKEY_CURRENT_USER(表示当前用户的配置)

说明:该根键包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等

3.HKEY_LOCAL_MACHINE(表示本地计算机的配置)

说明:该根键包括本地计算机的系统信息,包括硬件和操作系统信息,
安全数据和计算机专用的各类软件设置信息

4.HKEY_USERS(表示所有用户的配置)

说明:该根键包括计算机的所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问。
这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色,字体

5.HKEY_CURRENT_CONFIG(表示当前计算机的配置)

说明:该根键包括当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的

注册表的结构是通过键(或称为“项”)和值来组织和管理的,键用于表示层级关系,值用于保存配置信息。可以使用winreg 模块访问和操作注册表。在实际应用中,可以根据需要读取和写入注册表中的键和值,用于程序设置、系统优化和用户个性化配置等。

注册表每个顶层节点下都有一系列键(Key),每个键(或称为“项”)都可以有子键和键值对;键用于组织和管理注册表中信息的层级结构,类似于文件夹。键值对则用于保存实际的配置信息。注册表的结构就是由这些键和键值对组成的。

3.编辑器说明

在运行(CMD命令窗口)键入regedit就可以进入了

根键:这个称为HKEY…………,某一项的句柄项:附加的文件夹和一个或多个值

子项:在某一个项(父项)下面出现的项(子项)

值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的值项,值项由三个部分组成:名称、数据类型和数据。

1、名称:不包括反斜线的字符、数字、代表符和空格的任意组合。同一键中不可有相同的名称

2、数据类型:包括字符串、二进制和双字节等

3、数据:值项的具体值,它的大小可以占用64KB

二、注册表结构与各种数据类型

1.键(或称为“项”)与键值

整个注册表的内容主要是由“键”(或称为“项”)与“键值”构成,上面已经介绍在注册表编辑器中,位于左侧窗格(窗口分格),同文件夹图标一样的就是“键”,而在右侧窗格中一行一行的选型,就是“键值”,如图 1 所示。

图 1

键(或称为“项”)

键(Key),其图标和资源管理器中的文件夹相同,不仅如此他在注册表中的定位和文件夹也比较相似。查找文件夹:切换到计算机,然后选择磁盘驱动器,接着在一级一级打开文件夹找到需要的文件。键在注册表中就是扮演这样的功能,整个注册表其实就是由许多键,一层一层组织起来的层次式结构,以此把注册表中保存的注册文件数据,进行有系统的的整理与分类,得以让系统更方便地找到所需应用的设置。

每个项下的其他项成为“子键(SubKey,或称为子项)”,我们在确认辨识项位置时,会和文件夹路径相同的表示法表示,比如:

 “计算机\HKEY_CURRENT_USER\SOFTWARE\Intel”,这时就是在计算机中打开注册表编辑器(上面有说到打开方式),然后选择切换到“HKEY_CURRENT_USER”,在按照顺序选择切换SOFTWARE、Intel等子键。

键值 

键值(Value),上面提到,系统会将设置值保存在注册表文件中,就是保存键值。借助无数的键值系统才可以每次启动时,保证Windows 的配置符合用户的要求。在注册表编辑器中,可以发现,每个键值都具有名称、类型和数据等3 个字段。在修改注册表时,特别注意三者都必须按照正确格式和要求进行设置,才能让键值发挥功效。

提示:在注册表中,可以看到键、键值名的英文存在大小写字母的情况。键、键值名的英文字母大小写,只是方便用户阅读、识别,在注册表中并没有区别大小写,不管使用大写还是小写字母 ,系统都视为相同字母。实际输入时,可以按照自己的习惯自行决定使用大写或小写字母。

 2.键(或称为“项”)结构 

第一次打开注册表编辑器时,在键窗格计算机下,会有五个以“HKEY” 开头的键,我们把他们称为“根键(Root Key)”。这 5 个根键位于所有键的最上层位置,分别存放着不同类型的系统息, 以下是5 个根键的具体说明:

HKEY_CLASSES_ROOT 

这个根键可缩写为HKCR,根键中记录的是Windows 操作系统中所有的数据文件的信息内容(包括文件类型、文件关联、图标以及扩展名等信息),主要记录了不同文件的文件扩展名和与之相对应的应用程序,甚至每种文件类型以哪个软件打开也在这里设置。这就是为什么双击某一个文档的时候,可以由系统自动调出应用程序的所在了。这个根键的子键当展开时发现是非常多的,它主要分为两种:一是已经注册的各类文件的扩展名;一是各种文件类型的有关信息。

HKEY_CURRENT_USER

这个根键可以缩写为HKCU,主要保存当前登录Windows 的用户数据,以及个性化的设置,此根键中保存的信息(当前用户的子项信息)与HKEY_USERS_DEFAULT下面的一模一样的;如:桌面外观、软件设置、开始菜单等内容,而键的内容也会随着登录用户的不同有所改变;此根键下,Control Panel 和Software 两个子键最为重要。任何对 HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS_DEFAULT中子项的修改。 

Control Panel:记录了用户的操作设置,如,桌面背景、窗口外观等,几乎所有控制面板中的设置都保存在这里。

Software:记录了用户当前环境中安装的软件设置,甚至连Windows 本身内置的功能,也都在这里进行调校。

HKEY_USERS 

这个根键可缩写为HKU,保存的是默认用户(default),当前登录用户和软件(software) 的信息,其中.DEFAULT 这个子项是其中最重要的,它的配置是针对未来将会被创建的新用户的,记录了 Windows 用户默认的个人设置,与 HKEY_CURRENT_USER  是相同内容;如:桌面配置、开始菜单的设置等。还可以看到多个名称类似 S-1-15-18、S-1-15-18_Classes 的子键,都是系统内置程序或服务相关的键值,一般情况勿动。此根键是新用户根据默认用户的配置信息来生成自己的配置文件,该配置文件包括环境、屏幕和声音等多种信息   

HKEY_LOCAL_MACHINE

这个根键可缩写为HKLM,保存的是用来控制系统和软件的设置,由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体的用户没多大关系,绝大部分的系统信息,包括硬件配置、外设设备、网络设置以及所安装的软件等,是注册表数据库中最重要的、最庞大的根键。此根键中存放在HKLM 之下有 5 个子键非常重要:

HARDWARE:这个子键记录了计算机有关的硬件的各项信息,以及驱动程序的设置等;当使用设备管理器更改硬件设置时,这个子键中的数据也会跟着变化。

SAM 和 SECURITY:这两个子键记录计算机上有哪些用户和组账户,与相关的系统安全设置、权限分配等。一般情况下,用户无法访问这个键的内容,因此在这两个键下面不会看到任何键值。

SOFTWARE:包含已安装的各项软件信息,与HKEY_CURRENT_USER\Software 键不同的是,这个子键的影响范围较大,对系统下的所有用户有效。

多数在HKCU\Sofrtware 下设置的键、键值,在HKLM\SOFTWARE 下修改也可以生效,区别在于HKLM 下面的设置,Windows 7 会应用到所有账户。由于影响的范围涵盖所有用户。为了使计算机所有用户都有各自的修改空间,尽量只修改HKCU\Software 键的信息。

SYSTEM:包含有关系统启动、驱动程序加载等与操作系统本身有关的各项设置信息。

HKEY_CURRENT_CONFIG

这个根键可缩写为HKCC,主要是记录当前硬件的配置值。和HKLM 部分内容重叠,HKCC 的内容就是当前系统使用的硬件配置,至于其他硬件配置文件保保存在HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Hardware Profiles键下。

总结:五大根键实际上并不是五个,看是五个分支,其实就是HKEY_LOCAL_MACHINE、HKEY_USERS这两个才是真正的注册表键,其它都是从某个分支映射出来的,相当于快捷方式或是别名,这样的话看注册表就简单了许多了,现在说一下每个分支的作用:

HKEY_CLASSES_ROOT:列出当前计算机注册的所有COM服务器和与应用程序相关联的所有文件扩展名。

HKEY_CURRENT_USER:保存着当前登录到由这个注册服务的计算机上的用户配置文件。

HKEY_LOCAL_MACHINE:保存操作系统及硬件相关信息的配置单元,它是一个公共的配置信息与具体用户无关,其中关键是两个键值

SOFTWARE:保存着与这台电脑中安装的应用程序相关的设置。

SYSTEM:WINDOWS所装载的设备驱动程序以及当WINDOWS启动时所需要的各种参数。

HKEY_USERS:包含当前计算机所有用户配置文件。

HKEY_CURRENT_CONFIG: 计算机当前会话中的所有硬件配置信息。

3.键值的数据类型

每个键值可区分为名称、类型、数据等字段,其中数据字段就是键值实际的内容,依据数据内容的类型(如:文字、数字等),必须指定键值的类型。注册表中的键值类型有 15 中之多,实际可能用到的只有 6 种类型,也就是在注册表编辑器右侧窗格空白处单击鼠标右键并执行新建命令后,可以增加的6 种键值,如图 2 所示。

图 2

注册表中常用这 6 种类型实际类型有5种:

字符串值(reg_sz):包括字符串的注册表键,使用字符串数据类型,表示键值内容为文字类型。

图 3 字符串值类型内容

二进制值(reg_binary):多数硬件信息以二进制数据存储,而以十六进制格式显示在注册表编辑器中,表示键值的内容为二进制数值。

图 4 二进制值类型内容



双字节值(reg_dword 或reg_qword):就是DWORD/QWORD 值,一个是32 位,另一个是644 位的值。是32位信息常显示成4个字节。它在出错控制功能上用处极大,其数据一般以十六进制格式显示在注册表编辑器中。是经常遇到的键值类型。这类键值的内容通常是数字,可以选择以10进制或16进制输入,有时也可能用来表示布尔值(以0 或1 表示Yes/True、No/False)。               

图 5 DWORD值类型内容

多字符串值(reg_multi_sz):其键值为一长串的文字,也可允许输入比字符串值(reg_sz)更长的内容,允许将一系列项目作为单独的一个值使用。对于多种网络协议、多个项目、设备列表以及其他类似的列表项目来说,可以使用多字符串值。

图 6 多字符串值类型内容

可扩充字符串值(reg_expand_sz):代表一个可扩展的字符串,其内容乍看和多字符串(reg_multi_sz)一样。这个键值格式通常仅用来指定数据保存的路径,内容会随者系统设置而自行改变。                                          

图 7 可扩充字符串值类型内容

三、注册表操作

1.创建项和项值

在注册表编辑器右侧窗格空白处单击鼠标右键并执行新建命令后,选择需要的键值数据类型,然后在字符串类型内容中编辑字符串,赋予正确可行的数值名称和数值数据即可。

2.更值项的数据

在注册表编辑器右侧窗格中,选择需要进行操作的项,双击打开编辑数字串窗口,修改需要的数值数据即可。

3.删除项、子项或值项

在注册表编辑器右侧窗格中,选中需要删除的项,右键删除即可,删除之前做好备份和确认,防止误删造成计算机运行故障。

4.查找项、值项或数据

在注册表编辑器窗口,左上角功能区点击编辑展开功能项,选择查找即可使用查找功能。

四、注册表破坏的现象及原因

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

无法启动系统、无法运行或正常运行合法的应用程序、找不到启动系统或运行应用程序所需的文件、没有访问应用程序的权限、不能正确安装或装入驱动程序、不能进行网络连接、注册表条目有错误

2.注册表被破坏的原因

应用程序错误:这个出现的时候比较多,因为我们知道应用程序或多或少的时候都有错误,都有可能导致不同的后果;另外在系统中安装过多的软件后,有可能出现彼此之间的冲突。 

驱动程序不兼容:其实我发现好多出在系统自动安装的驱动程序上,如果你本身有驱动程序盘的话,还是用专业的比较好一些。

硬件问题:这里面好我问题出现在硬件质量上,比如硬盘或内存质量不过关造成读写错误,或超频或CMOS或病毒等。

 误操作:这个大家不知出现了没有,您的误操作可能会导致注册表出现错误,有的时候甚至会很严重的。

五、备份和还原注册表

修改注册表数据库其实具有某种程度的危险,在开始修改注册表某个键之前,建议先将修改前的键导出为Reg 文件。方面还原,利用导出的Reg 文件,即可轻易恢复原状。

1.备份原始注册表

注册表导出法导出注册表                                                                                                                    注册表编辑器本身就提供导出功能,可以快速将注册表内容存储为一个Reg 文件。如果不满意修改的结果或注册表出现问题,可以借助备份的Reg 文件,快速恢复原始的注册内容:

图 8

如图 8 选择需要备份的键位置,执行导出命令;然后勾选所选分支,决定保存路径和文件名,最后保存即可。                   

图 9

手工备份注册表                                                                                                                                大家把以下几个文件直接复制到另一个文件夹就可以了 

1、在windows\system32\config下有以下几个文件用以保存系统配置:SAM,SYSTEM,SOFYWARE,DEFAULT 

2、在Documetents and settings\username文件夹中保存用户配置文件:NETUSER.DAT,当然对应的LOG文件应该一块保存。

可以通过系统备份功能进行备份Windows 7 

选择开始—程序—附件—系统工具—备份

选择高级模式点下一步

选择system state(系统状态),在底下文件名中位置中回答路径及文件名

点击开始备份

注意:备份完成的注册表中,包含了选定键下所有子键的键值。如果其中有重要的系统设置,还原时系统会禁止写入。因此建议备份时,只需要选择可能更改的部分即可。如果备份的层次太高,很容易因为系统禁止写入键值导致还原失败。

2.还原注册表

完成注册表的备份,不管时注册表出现问题或是需要将修改好的键值应用到其他计算机,只需要选择需要恢复的Reg 文件导入即可。

注意:注册表内已存在同名的键或键值,那么已存在的内容会被Reg 文件的内容覆盖。

重新启动系统恢复注册表 

 一重启就可以修正各种在注册表中出现的错误了,但是以硬盘上的注册表的信息正确为前提的。

手工恢复注册表 

把备份导出复制出来的文件再弄回去就OK了。

注册表导入法恢复 

首先要有备份导出的文件,然后运行regedit.exe文件,文件中的导入,选择要导入的注册表文件,点找开就可以了

利用高级启动选项恢复注册表

重启计算机,启动时按F8键进入高级选项菜单, 选择最后一次正确的配置,回车了,OK 

通过局域网来恢复注册表

这个我们一般是指连入局域网的某一计算机(我们假设叫aaaaa)的注册表被管理员锁了,但有另一台计算机(我们假设叫B)的注册表可以用,现在我们用B来解除A的锁定。进入B的注册表,选择文件中的连接网络注册表,在查找位置中输入aaaaa,这时注册表中出现了songxiang计算机的注册表,修改键值:aaaaa\HEKY_USERS\S-1-5-21-823518204-688789844-842925246-500\Software\Microsoft\Windows\CurrentVersion\Policies\System下的disableregistrytools值改为0就可以了。S-1-5-21-823518204-688789844-842925246-500这一大堆数知道什么意思吗,是超级管理员,重新安装系统

提示:绝大多数修改的键值需要重新登录(或重新启动)方能生效!

注:有不当之处,请批评指正!谢谢~


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

『六哥』

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值