两个知识点理清错综复杂的注册表脉络
1.查查注册表元素的身份证
运行regedit.exe打开“注册表编辑器”,就能在其左侧看到注册表的分支结构,其中以文件夹方式表示的称为“键”,而在选中一个键后在窗口右侧显示的则称为“项”。在网上搜索到的修改教程中经常会提到“根键”,“主键”,“子键”,“键值项”,是什么意思呢?
①根键(Root Key)是指在注册表编辑器左侧以“HKEY”作为名称前缀的位置,因其位于注册表最项层被称为根键,如Windows XP的注册表中包括五大根键,分别为HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG。这些根键都可所写的,譬如HKEY_CLASSES_ROOT就可以简写为HKCR,其它的则以此类推。
②主键(Main Key)是指根键下面于根键最近的键,主键通常包括一个或多个子键或键值,如图中HKEY_LOCAL_MACHINE包括5个主键。
③子键(Sub Key)的位置是相对的,并不固定。某个键下面包含的另一个键则称它为前者的子键。但主键则不能称为根键的子键,这种以相对位置关系来命名的方式不能用于根键和主键。
④键值项(Value entry)是指显示在“注册表编辑器”右侧的项目,每个键值项包括名称,类型和数据三部分。键值项的名称可以由任意字符,数字,代表符和空格组成,但不能使用反斜杠。不同键值,主键和子键的键值项可以同名,但同一键中的键值项不能同名。键值项所定义的内容即为该键值项的值(即“键值”),其中最多能存放64KB的数据。值的数据类型可以是字符串,二进制值,DWORD(双字节)值等。
小提示:上面的描述方法较为规范,平时我们还习惯将“子键”称为“分支”,而将“键值项”简称为“项”,这些称谓没有本质区别,只是叫法习惯不同罢了。
2.真正的根键只有两个
Windows 98的注册表有6个键值,而Windows 2000/XP/2003系统的根键数则是5个,但这些根键中只有HKEY_LOCAL_MACHINE和HKEY_USERS是真正的注册表键,其它几个键值都是从这两个根键的某个分支映射出来的,相对于这两个根键深层分支的一个快捷方式或者别名,主要是为了方便用户操作。
⑴HKEY_LOCAL_MACHINE
这个根键存储的是安装在当前计算机上的硬件和软件配置信息,比如硬件设备的驱动程序,特定软件设置和Windows系统安装配置等数据。这些信息对当前系统中的所有用户均保持一致。这个根键下面还有5个重要的主键,其中Software和System最为关键,平时对系统进行相关调整大多集中在这两个键上。
①Software子键:保存于这台电脑中安装的应用程序和相关的设置,许多应用程序都使用该键值保存特定设置。关于Windows的许多设置都存在于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion中。
②System子键:在这里精确的确定了Windows所装载的设备驱动程序和服务,以及当Windows启动时所使用的各种参数(如在网络上的计算机名称和当前硬件配置恩见)。
⑵HKEY_USERS
HKEY_USERS包含有电脑特定用户的配置数据,Windows在此根键下的一个子键中为登陆该电脑的每个用户存储配置数据。如果电脑只有一个用户使用,那么所看到的就是单独一个子键,称为“.DEFAULT”
而HKEY_USERS\S-1-5-21-1078081533-1202660629-1343024091-500(不同的电脑不一样)则是当前登陆用户的配置数据,其中S-1-5-21-1078081533-1202660629-1343024091-500就是这个目前登陆用户的SID,每一个网络上的用户都被域用户管理器分配了一个SID,每个SID是唯一的,所以它依赖于登陆用户,其分支数据是从用户配置文件的Ntuser.dat文件调出的。
3.改头换面我也认识你
前文提到只有HKEY_LOCAL_MACHINE和HKEY_USERS是才真正的注册表键。也就是说如果更改了其它别名分支中的某个键或键值,那么在HKEY_LOCAL_MACHINE和HKEY_USERS也会做出相应更改,通常我们还可将它们称为“别名”,下面是这些别名的实际位置:
①HKEY_CLASSES_ROOT--HKEY_LOCAL_MACHINE\SOFTWARE\Classes的别名。包含有文件类型和程序之间的关联。
②HKEY_CURRENT_USER--HKEY_USERS一个分支别名,该分支包含有当前登陆用户的配置数据,如果是单一用户HKEY_CURRENT_USER则指向HKEY_USERS\.DEFAULT
③HKEY_CURRENT_CONFIG
--HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\Current的别名,其中ControlSet001还有可能是ControlSet000,ControlSet002等,它包含当前的硬件配置。
附表1 HKEY_USERS部分重要分支说明
.DEFAULT\AppEvents ------- 列出了事件相应,描述和各种系统功能的声音
.DEFAULT\Console ------- 保存了MS-DOS窗口的选项,布局,荧屏颜色和字体设置
.DEFAULT\Control Panle ------- 所有在控制面板里配置设置的信息全保存在这个键和它的子键中
.DEFAULT\Environment ------- 保存了环境变量设置,特定的临时文件位置
.DEFAULT\Keyboard Layout ------ 保存的是键盘布局设置,其中默认设置是美国传统键盘布局
.DEFAULT\Software ------保存软件的安装设置,缺省用户只有微软生产的软件的设置
SID\Network ------ 所有连接到其他系统的映射配置
SID\Printers ------ 所有安装,共享和连接的打印机配置
SID\Sofeware ------单独的用户扩展,基于为用户或者被用户安装的其他软件。
附表2
HKEY_CLASSES_ROOT
配置单元包含的子项,列出了当前已计算机上注册的所有COM服务器和与应用程序相关的所有文件扩展名。
HKEY_CURRENT_USER
保存着当前登陆到由这个注册表服务的计算机机上的用户配置文件,其中子项包含环境变量,个人程序组,桌面设置,网络连接,打印机和应用程序首选项
HKEY_LOCAL_MACHINE
保存操作习用及硬件相关信息的配置单元,是一个公共配置信息,与具体用户无关
HKEY_USERS
包含的子项,含有当前计算机上所有的用户配置文件
HKEY_CURRENT_CONFIG
包含的子项,列出了计算机当前会话的所有硬件配置信息
HKEY_DYN_DATE
包含系统硬件的当前状态,也包含了那些需要更新和检索的数据,此键只存在于Windows 98/ME 系统中。
上一页 [1] [2]