350 likes | 614 Views
轻松搞定注册表. (基础篇). 吴 猛. 注册表的由来. 在 Windows 3.x 中,用 .INI 文件(如 System.ini 、 Win.ini 等)来记录硬件和软件的各种初始化信息,同时,某些文件关联数据放在一个简单的 Reg.dat 文件中,形成初期的注册表。 因为每个设备或者应用程序都可以建立自己的 INI 文件,所以 Windows 3.x 中 INI 文件众多,增加了管理难度。
E N D
轻松搞定注册表 (基础篇) 吴 猛
注册表的由来 在Windows 3.x中,用.INI文件(如System.ini、Win.ini等)来记录硬件和软件的各种初始化信息,同时,某些文件关联数据放在一个简单的Reg.dat文件中,形成初期的注册表。 因为每个设备或者应用程序都可以建立自己的INI文件,所以Windows 3.x中INI文件众多,增加了管理难度。 为了克服上述问题,建立起统一管理各种信息资源的机构来集中存储各种配置信息,使系统运行得更为稳定、健壮,微软从Windows NT 3.51开始采用了注册表技术,将INI文件中的大部分设置移植到注册表中。因此,注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用。
什么是注册表 注册表(Registry)实质上是一个庞大的数据库 ,以树形目录显示,其中容纳了应用程序和计算机系统的全部配置信息、Windows系统和应用程序的初始化信息、应用程序和文件的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。 注册表的每个键都包含了一组特定的信息,每个键的键名都和它所包含的信息相关联。
9X/ME注册表文件 虽然Windows 9x/me注册表都出自Windows NT 3.51,但与windows NT/2000/XP注册表所包括的文件是不同的,其数据结构及数据类型也有许多方面的差异。 Windows 9x注册表数据库主要包括两个文件: SYSTEM.DAT:用来保存计算机的系统信息,如安装的硬件和设备驱动程序的有关信息等。这个文件必须放在安装目录下。 USER.DAT:用来保存每个用户特有的信息,如桌面设置、墙纸或窗口的颜色设置等。这个文件可以放在安装目录下,也可以放在网络磁盘上。
Windows me注册表数据库除了SYSTEM.DAT和USER.DAT两个文件外,又增加了一个名为CLASSES.DAT的文件,这三个文件一起存放在安装目录里。 CLASSES.DAT动态的映射HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES子键下的所有内容。 在Windows me中,SYSTEM.DAT被分割成CLASSES.DAT和它自己(SYSTEM.DAT)两部分。 Windows 9x/me注册表均具有隐藏(H)、只读(R)、系统(S)三个属性,都是二进制文件,必须用注册表编辑器等专用软件来修改或编辑。Windows 3.x的INI文件是文本格式的,以节为单位。
Windows NT/2000/XP系统注册表所包括的文件很多,都存放在%SystemRoot%\System32\Config文件夹下。 Windows NT/2K/XP还具有另外一个用户注册表,存在于\Documents And Settings\%USERNAME%目录下,名为NTUser.dat,这个注册表存储了用户的相关配置及应用程序关联等信息。 Windows 9x/me是16位与32位操作系统的混合模式,系统启动时加载系统注册表。NT/2K/XP是纯32位操作系统,系统启动时加载系统注册表后又加载了当前用户的用户注册表(NTUSER.DAT)。 注:注册表系统包括两部分:注册表文件和注册表编辑器。
SAM:这是SAM(安全账号管理器 Security Account Manager)注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SAM子键分支下面; DEFAULT:这是默认的注册表文件,位于注册表HKEY_USERS\DEFAULT子键分支下面; SECURITY:系统安全性注册表文件,位于注册表HKEY_LOCAL_MACHINE\SECURITY子键分支下面; SYSTEM:系统注册表文件,位于HKEY_LOCAL_MACHINE\SYSTEM子键分支下面; SOFTWARE:应用软件的注册表文件,位于HKEY_LOCAL_MACHINE\SOFTWARE子键分支下面。 这些文件没有扩展名,但却是最重要的,是当前使用的注册表文件。
SYSTEM.DAT文件是系统注册表文件的备份文件,在系统出现错误时能够恢复系统。 CONFIG文件夹下还有一些扩展名为log、sav的文件,它们是以前正确启动运行的注册表文件。其中以SAV为扩展名的注册表文件是最近一次系统正常引导过程中保存的,而LOG文件则记录了注册表审核功能启用过程中对注册表所进行的修改。 小技巧:系统的崩溃很多是注册表出了问题,你不防将CONFIG目录中的文件拷贝出来,当有问题时恢复回去试一试。 小知识:注册表的大小通常设定为虚拟内存的25%,它允许用户更改。双击“控制面板”/“系统”图标/“高级”/“性能选项”/“虚拟内存”/“更改”
注册表与INI文件 为了保持Windows 系统的向下兼容性,仍然保留了INI文件,不同之处见下: (1)注册表采用的是二进制形式登录数据,INI文件采用的简单的文本形式登录数据。 (2)注册表支持子关键字,各级子关键字都有自己的键值,INI文件以小节来设置,并且不支持嵌套。 (3)注册表的键值项可以包含可执行代码,INI文件的设置项只是简单的字符串。 (4)同一台计算机上有多个用户,注册表可以存储每个用户的个性化设置信息,INI文件却不能。 (5)注册表允许对硬件、某些操作系统参数、应用程序和设备驱动程序进行跟踪配置,使某些配置的改变不用重启就可生效。 (6)注册表中记录的硬件部分数据支持即插即用特性。 (7)通过注册表,管理人员和用户可以在网络上进行远程管理。
注册表结构的异同 98注册表结构 2000注册表结构
由上页我们可以看到,注册表编辑器与资源管理器的界面相似。Windows 98/me 比NT/2K/XP多了一个HKEY-DYN-DATA主键。左边窗格中,由“我的电脑”开始,以下是六个分支,每个分支名都以HKEY开头,称为主键(KEY),展开后可以看到主键还包含子键(SubKEY)。当单击某一主键或子键时,右边窗格中显示的是所选主键内包含的一个或多个键值(Value)。键值由键值名称(Value Name)和数据(Value Data)组成。主键中可以包含多级的子键,注册表中的信息就是按照多级的层次结构组织的。每个分支中保存计算机软件或应用程序某一方面的信息与数据。 9X/me注册表中各主键的功能如下:HKEY-CLASSES-ROOT 定义了系统中所有文件类型标识、基本操作标识。 HKEY-CURRENT-USER 定义了当前用户的所有权限。 HKEY-LOCAL-MACHINE 计算机安装的硬件及应用程序信息 HKEY-USERS 定义了所有用户的信息 HKEY-CURRENT-CONFIG 当前系统的设置信息 HKEY-DYN-DATA 即插即用和系统性能的动态信息
注册表编辑器 Windows 9x/me是16位和32位操作系统的混合模式,注册表编辑器使用的是16位的regedit.exe,regedit.exe 简单易用,但功能有限,修改用户权限之类的操作就无能为力了。Windows NT/2K/XP是纯32位操作系统,增加了32位注册表编辑器regedt32.exe,它可以对注册表进行高级的修改。为了保持向下兼容,16位注册表编辑器regedit.exe仍然保留。Regedt32共有五个子窗口,每一个子窗口对应一个注册表根键,每个主键设定的分支与原来也有很大不同,主要表现在分组方法和键值放置位置上,但每个主键名称和储存的信息和9x/me中规定的一样。 regedit注册表编辑器支持的数据类型有限,支持双字(REG_DWORD)、字符串(REG_SZ)、二进制(REG_BINARY),而regedt32支持NT/2K/XP中的所有数据类型。
主键 键名 数据 类型 键值 子键 Regedt32注册表编辑器
注册表编辑器的使用 16位注册表编辑器:Regedit.exe: 在“开始”\“运行…”中输入Regedit,点击“确定”即可运行。 菜单项描述: “注册表\导入注册表文件”需要导入的文件是文本文件,扩展名为.reg,这个文件可以自己编写,也可以是以前导出的全部或某一个键的分支。 “注册表\导出注册表文件”导出的是一个文件文件,与INI文件有些相似,以小节为单位。 右图为用regedit.exe 导出注册表结构中的一个分支:瑞星网络杀毒软件.
“注册表\连接网络注册表”中输入网络计算机名,点击“确定”,前提是远程计算机的注册表权限允许你访问,否则会出现无法连接的提示。“注册表\连接网络注册表”中输入网络计算机名,点击“确定”,前提是远程计算机的注册表权限允许你访问,否则会出现无法连接的提示。 “编辑\新建\项”用来建立一个子键。 “编辑\新建”的子菜单包括“字串值”、“二进制值”、“双字节值”,用来建立什么类型的键名。 当建立了一个类型的键名后,“编辑”菜单会有一个“修改”子菜单出现,用它可以输入键名的键值。
“编辑\查找”用来快速找到某一个键(主键或子键)、键名、键值。例如查找瑞星的有关注册信息,选择“查找”,在“查找目标”中输入rising,点击“查找下一个”,将会快速的找到键、键名或键值中包括“rising”的第一个信息。按F3键可以继续查找下一个包括“rising”字样的信息。 注:这种查找是从当前位置开始向下查找。
32位注册表编辑器:Regedt32.exe 在“运行”对话框中输入“regedt32”,点击确定。 从菜单栏中我们可以看出,regedt32.exe要比regedit.exe功能强大得多。 每一个子窗口代表本地计算机上的一个根键
菜单项描述: 1、“注册表” “打开本地”用来打开本地注册表。 “关闭”用来从注册表编辑器中清除本地注册表。 “加载配置单元”只在HKEY_LOCAL_MACHINE或HKEY_USERS窗口活动时为可用状态,用来向注册表中加载配置信息,此项可增加一个注册表项。 “卸载配置单元”与“加载”作用相反,在选择了子键后可用。 “还原”与“加载配置单元”相似,载入的是二进制文件,不同是覆盖当前表项。 “保存项”用来将当前的一个分支导出并保存成一个没有扩展名的二进制文件。 “选择计算机”与regedit编辑器的“连接网络注册表”相同,允许打开的远程计算机注册表只显示HKEY-LOCAL-MACHINE和HKEY-USERS两个根键的信息 。 “将子目录树另存为”与“保存项”相似,但存储后的文件要比“保存项”存储的文件大很多。
2、“编辑” “编辑”的子菜单与regedit编辑器的“编辑”的作用相同,功能一样。不同是多增加了一些数据类型。 3、“查看” “搜索项”与regedit中的“查找”功能一样,不同是多了“向上”和“向下”查找,regedit中只能从当前位置向下查找。
4、“安全” “权限”设置哪些用户或组成员可以使用哪些注册表项。 5、“选项” “选项”中的所有子菜单均是对注册表编辑器进行设置。点选“自动刷新”,则“查看”菜单项中的“全部刷新”和“刷新活动项”将不可用。 “只读模式”选取后,注册表编辑器将不保存所做的任何更改。
Windows NT/2K/XP注册表编辑与维护技巧 我们知道,注册表对Windows 操作系统至关重要,从现在开始,我们将一起讨论注册表的编辑与维护。 使用Regedit.exe或者Regedt32.exe可以方便地修改注册表,使之满足自己的需求,同时还可以维护NT/2K/XP。Regedt32.exe存放在%Systemroot%\System32目录下,Regedit.exe存放在%Systemroot%目录下。 Regedit.exe主要用来更改NT/2K/XP系统注册表的设置,相对来说比较专业一些,超级兔子魔法设置和Windows 优化大师对注册表修改则显得相对简单一些。 注意:如果不是绝对必要,请不要轻易修改注册表,在修改注册表之前请先学会还原注册表。
注册表的备份与还原 (1)因为修改了注册表而导致系统不能启动,可以在系统启动时按F8键后选择“最后一次正确的配置”选项,系统重启后会恢复注册表。 如果因为驱动程序或文件被损坏或丢失所导致的问题,选择“最后一次正确的配置”选项时,NT/2K/XP操作系统只还原注册表项HKEY_LOCAL_MACHINE\System\CurrentControlset中的信息,任何在其他注册表项中所作的更改均保持不变。 (2)如果因为其他一些原因而导致注册表被修改了,可以在重新启动时进入纯DOS状态,在DOS提示符下输入SCANREG /RESTORE 并且根据提示进一步完成。
(3)在修改注册表之前,通过注册表编辑器中的“注册表”菜单下的“导出注册表文件”提前导出一个完整的注册表(不要只导出某一个分支),并放置在一个目录中,导出的注册表文件的扩展名是REG。当注册表损坏时,可用REGEDIT.EXE将注册表文件导回到注册表,然后重新启动。这种方法是最安全的。(3)在修改注册表之前,通过注册表编辑器中的“注册表”菜单下的“导出注册表文件”提前导出一个完整的注册表(不要只导出某一个分支),并放置在一个目录中,导出的注册表文件的扩展名是REG。当注册表损坏时,可用REGEDIT.EXE将注册表文件导回到注册表,然后重新启动。这种方法是最安全的。 当然,这种方法的前提是注册表未被禁用。如果因为打开了一个网页而注册表被恶意修改了,同时注册表编辑器往往也会被禁用,这里请登录到3721网站,利用“上网助手”解决,如下图:
(4)利用Windows备份程序中的还原向导还原注册表。将已经备份过的注册表文件还原回%Systemroot%\system32\config目录下,如下图:(4)利用Windows备份程序中的还原向导还原注册表。将已经备份过的注册表文件还原回%Systemroot%\system32\config目录下,如下图: 点击 在还原向导中点击“导入文件”按钮后,选择要导入的文件后根据提示去做即可完成。
(5)用恢复控制台 故障恢复控制台是Windows 2000新增加的工具,用于从多次失败中恢复系统。故障恢复控制台不是Windows 2000的缺省安装,且必须在故障发生前安装才可以使用。安装故障恢复控制台的步骤是:插入Windows 2000安装光盘,在运行窗口中键入:安装光盘盘符\i386\winnt32.exe /cmdcons,启动恢复控制台安装程序(如图3)。安装了恢复控制台后,重新启动计算机,在启动菜单中会出现“故障恢复控制台”选项。启动安全恢复控制台后,使用恢复控制台的“COPY”命令,将“%systemroot%\system32\config”目录下的文件拷贝到一个安全目录中。在恢复时,将备份目录中的文件覆盖“%systemroot%\system32\config”目录下的文件,注册表文件就恢复了。值得一提的是,在恢复控制台下的COPY命令不支持通配符“*”和“?”,所以一次只能复制一个文件,用起来比较麻烦。
(6)用安装光盘安装程序恢复注册表是在没有其他注册表备份时的最佳选择。将Windows 2000安装盘插入光驱,进入CMOS设置,将系统设置为从光盘启动。安装程序启动时,首先检测硬盘驱动器,查看已经安装的Windows 2000及其修复路径。然后会出现一个选择操作的界面,按“R”,对Windows 2000进行修复。在接下来的界面中,有四个选择,选中“检查注册表文件”(要全面恢复系统,最好四项都选中)。安装程序开始修复选定的安装。在修复注册表文件后,系统重新启动,Windows 2000就会工作正常了。 (7)用紧急修复盘制作紧急恢复盘的方法是用NTBACKUP工具,在欢迎标签中选择“紧急修复盘”。选取“将注册表文件复制到修复目录中”复选框,那么在制作紧急修复盘的同时,会自动将当前注册表文件备份到“%systemroot%\repair”文件夹。用紧急修复盘修复注册表的过程与用安装光盘基本相似,不再讲述。
编辑修改注册表 既然知道怎样还原注册表,并且也了解注册编辑器的使用,我们就可以进行注册表的修改和编辑了。 注册表中的数据格式为: “键名”=数据类型:数据项值 例如:“Regcopystate”=Dword:00000000 常用数据类型: REG_BINARY(保存二进制数据,长度不限) REG_DWORD (保存双字数据,占四个字节) REG_SZ (保存一个字符串) REG_MULTI_SZ (保存一个或多个字符串) REG_LINK (保存一个UNICODE串) REG_NONE (不属于任何类型的数据) REG_UNKOWN (保存一个注册表编辑器未定义的数据类型)
注册表修改技术 注册表存放了系统配置信息,这些配置信息可以通过“控制面板”中的相应配置程序来修改。另外,Microsoft公司还在Windows系统中提供了一个“系统策略编辑器”,帮助用户高效地修改注册,同时还可以维护注册表。 1、自动修改 (1) “控制面板”与注册表的关系 “控制面板”中各组件的修改直接修改了注册表,这种修改是最安全的。每一项修改主要是在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE两个主键下的相对应的子键上完成。这里不再详述每个组件对应哪一个子键。
(2)“系统策略编辑器”与注册表 使用系统策略编辑器可以方便地修改注册表,不会因为误操作破坏注册表而导致使系统崩溃。它的能力,可不仅仅是修改注册表这么简单,还可以禁用或隐藏系统的某些功能、禁用注册表编辑工具、禁用网络功能中的文件共享控制、隐藏桌面上的所有程序项等等。 系统策略编辑器存储在%Systemroot%目录下,文件名为poledit.exe。
打开后的系统策略编辑器窗口如右图,选择“打开注册表”。打开后的系统策略编辑器窗口如右图,选择“打开注册表”。 双击“本地计算机”或“本地用户”后即可进行相应的设置。
系统策略编辑器与系统模板结合使用。Windows98的系统模板是admin.adm,我们也可以编辑自己的系统策略模板。系统策略编辑器与系统模板结合使用。Windows98的系统模板是admin.adm,我们也可以编辑自己的系统策略模板。 2000的系统模板
2、利用REG文件手工修改 所谓REG文件就是指后缀为.reg的文件,而内容是按照注册表格式编写的注册表设置文件,这种文件可以直接双击运行,也可以通过注册表编辑器导入到注册表。 (1)Windows 9x/XP REG文件结构 必须以REGEDIT4开头,表示使用的是注册表编辑器4.0版本。然后空一个空行,下面是要导入的主键及子键,最后是一些相关信息。格式要求严格,都必须靠近最左侧,不能有空格。
(2)Windows NT/2000/XP REG文件结构 必须以Windows Registry Editor Version 5.00开头,表示使用的是注册表编辑器5.0版本。第二行为一空行。 这两种REG文件结构都使用的是Unicode码格式,通过导入达到修改注册表的目的。编辑的文件必须以.reg为扩展名,可以用任何文本编辑器来编写。
注册表的修改技巧以后再讨论,如有不足及错误之处敬请斧正。注册表的修改技巧以后再讨论,如有不足及错误之处敬请斧正。 谢谢观看 再 见!