江苏大学教师备课用纸第七章WINDOWS注册表及其维护“注册表”实际上是一个庞大的树状分层数据库,它是WIN9X开始引入的概念,注册表 中存放着各种信息,如计算机的全部硬件配置、软件配置、当前配置和用户特定设置等,因而它直接控制着WINDOWS启动、硬件驱动程序的装 载以及一些WINDOWS应用程序的运行,在整个系统中起着核心作用。由于注册表保存所有硬件驱动程序及应用程序各种信息的数据 库,所以当WINDOWS处理硬件驱动程序和处理应用程序的时候,需从注册表中提取有关信息。因此,若WINDOWS操作系统离开了注册表 ,得不到它需求的信息,将无法正常工作。主要内容7.1注册表的组成7.2W indows注册表的存放位置7.3注册表的结构7.4注册表编辑器7.5注册表的管 理与维护7.6设置注册表维护计算机7.1注册表的组成1.Windows9X注册 表数据库注册表编辑器注册表数据库包括两个文件:SYSTEM.DAT和USER.DAT注册 表编辑器(Regedit.exe)是一个用来编辑注册表的程序2.Windows2000/XPWINDOWS20 00/XP的注册表分为两个部分,多个文件.用户配置文件:包括两个隐藏文件Ntuser.dat和Ntuser.ini以及 日志文件Ntuser.pol。系统配置文件:包括Default、Software、System、Appevent.e vt、SecEvent.Evt及SysEvent.Evt等多个隐藏文件及相应的.LOG?文件和.SAV文件。7.2WIND OWS中注册表的存放位置1.Windows9X?一般在C盘的Windows夹下(SYSTEM.DAT和USER.DAT), 备份文件在C:\WINDOWS\SYSBCKUP下,以rb.cab命名,第一次安装完以后,在C盘根目录下还有 一个SYSTEM.1ST文件作为第一次启动的备份。?2.Win2000/XP用户配置文件保存在根目录“Documents?a nd?Settings”下系统配置文件位于?Windows?2000?系统目录下的“SYSTEM32\CONFIG”中 备份文件位于WINDOWS\Repair下面。?7.3注册表的结构7.3.1注册表术语关键字可以分为两 类:一类是由系统定义的,通常称为“预定义关键字”;另一类是由应用程序定义的,安装的应用软件不同,其登录项也就不同。根键(主关键 字)类似于硬盘上的根目录,在WINDOWS9X的注册表中有六个预定义的根键。根键1).HKEY_CLAS SES_ROOT该根键包含了有关的OLE信息,以便在系统工作过程中实现对各种文件和文档信息的访问. 其具体的内容有已经注册的文件扩展名、文件类型、文件图标等。这些扩展名与能使用这种类型文件应用程序相关联。 根键2).HKEY_USERS该根键用于保存默认用户(.DEFAULT)与当前登录用户及软件的信息 。根据当前登录的用户不同,这个关键字又可以指向不同的分支部分。可以通过“控制面板”来修改其中.DEFAULT子键与HKE Y_CURRENT_USER根键中主键路类似。3).HKEY_CURRENT_USER是一个指向HKEY_USERS 结构中某个分支的指针,它包含当前用户的登录信息和配置信息,实际上它就是HKEY_USERS\.Default下面的一部分内容。 根键4).HKEY_LOCAL_MACHINE该根键包含了本地计算机(相对网络环境而言)的硬件和软件的全部信息. 当系统的配置和设置发生变化时,本关键字下面的登录项也将随之改变。根键5).HKEY_CURRENT_CONFIG 该根键实际上也是指向HKEY_LOCAL_MACHINE\Config结构中的某个分支的指针,HKEY_CURRENT_C ONFIG下面的子关键字及内容与HKEY_LOCAL_MACHINE\Config\0001分支下面的子关键字及内容是完全相同的 。该主关键字包含的主要内容是计算机的当前配置情况.根键6).HKEY_DYN_DATA该根键包含了 系统运行中的动态数据,即已发生的事件的有关信息,因此,这个主关键字的内容不仅包含系统硬件的当前状态,也包含了那些需要更新和检索的数 据。这些数据都是动态变化的,它们总是最新的信息。中文Windows98每次启动时都将重新建立这个主关键字。主键和子键在 注册表的左窗格中,所有的数据都是通过一种树状结构以键和子键的方式组织起来的,十分类似于目录结构。主键和子键类似于资源管理器中的文件 夹与子文件夹,在主键下面是子键,就象文件夹下有子文件夹。如果某个主键包含子键,则在代表主键的文件夹的左边有一个“+”号,单击“+” 号,则可展开该主键下的子键,此时“+”变成“-”号;单击“-”号,则可收敛该主键下的子键。键值项键值项类似于文件夹 的文件,主键和子键可以包含一个或多个键值项。键值项由键值名、键值类型、键值三部分组成.上图为WIN98的键值项下 图为WIN2000键值项键值项数据类型“键值项数据”可分为如下三种类型(在右窗格内右击鼠标,则在弹出的快捷菜单中将可以看到这三 种类型。1)字符串值在注册表中,字符串值一般用来表示文件的描述、硬件的标识等在下图中,“username”即为键值名 “mhd”的键值,它是一种字符串值类型的。键值项数据类型2)二进制值在注册表中,二进制值是没有长度限制的,可以是任 意个字节长。在注册表编辑器中,二进制以十六进制的方式显示出来。在上图中,键值名“SERVERLIST”的键值“6874747 03a…”就是一个二进制值数据。双击键值名,在“编辑二进制值”对话框中(下图),在编辑框的左边输入十六进制数时,其右边 将会显示相应的ASCII码键值项数据类型3)DWORD值DWORD值是一个32位(4个字节,即双字)长度的数值。 在注册表编辑器中,你将发现系统会以十六进制的方式显示DWORD值,如上图。双击键值名弹出编辑DWORD值窗口如下图, 可以选择用十进制还是16进制的方式进行输入。WINDOWS2000/XP注册表的键值类型WIN2000/XP注册表内的键值类型 除了具有WIN9X注册表的三种键值类型外,还具有如下几种键值类型:??REG_DWORD:只允许一个值,并且为1~8个16进制 数据串REG_SZ:只允许一个值,并且作为存储的串来解释REG_EXPAND_SZ(可扩充字符串值):类似REG_SZ,只是文 本可包含替换的变量REG_BINARY:只允许一个值,是16进制数字串,每对作为一个字节值来解释REG_MULTI_SZ(多字 符串值):允许多个值,每个值作为MULTI_SZ的一个成分7.3.2Windows2000/XP注册表的层次结构了解了 Windows9X注册表的结构后,我们再介绍Windows2000/XP注册表的结构,Windows2000/XP注册表基本上是相 同的,也都类似于磁盘的文件结构。他只有5个根键:1.HKEY_LOCAL_MACHINE该根键 存放了有关本地机器的所有配置信息及硬件、操作系统的数据等2.HKEY_USERS该根键容纳了当前登录用户的配置设 置和缺省的用户配置文件。3.HKEY_CURRENT_USER该根键记录了当前登录到机器上用户的有关 信息。4.HKEY_CLASSES_ROOT该根键包含了启动应用程序所需的全部信息,主要包括软件配置 信息,特别是对象链接与嵌入(OLE)和Windows2000外壳应用程序使用的信息等.5.HKEY_CURRENT_C ONFIG该根键包含了系统硬件的配置信息。7.4注册表编辑器1.启动注册表编辑器单击“开始”按 钮,然后单击“运行”,在“打开”框内输入regedit或者regedit.exe或者C:\windows\regedit.ex e!即可打开注册表!也可以进入系统盘系统目录双击regedit程序即可打开!打开注册表如图所示。2.搜索注册表很 多人在启动WIN98时遇到.vxd错误,这说明注册表出现了问题,你可根据提示信息或者错误现象分析可能是注册表中某个驱动程序出现了 问题。我们可以将这些错误对应的子键删除来排除错误。但如果你对注册表的结构不是很熟悉的话,不知道对应的子键在哪里?怎么办,不要紧RE GEDIT具有非常强大的查找功能,用户可利用“查找”命令,在注册表数据库中快速查找所需的内容,找到后将其删除。3.编辑主键与键值 P319创建主键和子键为主键和子键命名创建注册表键值项数据4.修改注册表P3211)修改键值项数据 2)删除键值项数据3)删除主键和子键5.不启动也能更新注册表一般情况下,对注册表进行了修改,必须重新启动机 器才能使所作的修改生效,由于重新启动需要一定的时间,能否有一种方法使注册表修改立即生效,是广大计算机维护工作者需要注意的,现在就来 介绍两种不重新启动Windows98系统,也能快速地更新注册表.方法一:1)按下Ctrl+Alt+Del组合键2)在该对 话框中单击“Explorer”选项,然后单击“结束任务”按钮,出现“关闭Windows”对话框。3)单击“否(N)”按钮,系统 过一会儿将出现结束程序的对话框.单击“结束任务(E)”按钮,则返回到Windows98系统环境中。方法二:1)单 击“开始”按钮,然后单击“关闭系统”命令,出现如图7-23所示的“关闭Windows”对话框。2)单击“重新启动计算机”选项。 3)按住Shift键,然后单击“是”按钮,则关闭Windows98,然后出现“RestartingWindows…”而重新 启动计算机。7.5注册表的管理与维护注册表是WINDOWS操作系统的核心文件,他存储和管理着整个操作系统、应用软件的重要 数据,一旦注册表受到损坏,将会引起各种故障,为了防止各种故障的发生,管理和维护好注册表就显得非常重要。下面就介绍一 些管理和维护注册表的方法。7.5.1使用注册表编辑器备份和恢复注册表备份注册表步骤如下:1)启动REGEDIT,在其窗口中 选择“我的电脑”或需要备份的某一个子键。2)在“注册表”菜单上单击“导出注册表文件”,则出现保存对话框。如图3)在“文件名” 文本框中输入导出注册表后的文本文件名称,在“存为类型”列表框中选择“注册表文件”。4)在“导出范围”框中选择导出注册表的范围全 身“全部”或者“选定的分支”。默认为导出分支。恢复注册表操作步骤如下:1)在执行该菜单项后,将出打开对话框。2)在“文 件名”文本框中输入注册表文件,例如,我们输入aa(后缀默认为.reg),按回车键或单击“打开”按钮,则出现如图所示的“引入注册表文 件”进程窗口。7.5.2使用WINDOWS2000系统的备份程序备份和还原注册表方法:开始/程序/附件/系统工具/备 份出现如图所示的窗口。单击“备份向导”按钮,选择备份内容为C:\WINNT\REPAIR中的system.dat 和NTUSER.DAT文件,在“备份目的地”中选择备份目的地,然后单击:“开始备份”即可。还原注册表,单击还 原向导来还原,选择要还原的文件和还原的位置,单击“开始还原”。7.5.3在DOS下备份、还原注册表1.Windows95注册 表的备份、还原备份操作步骤如下:CDWINDOWSATTRIB-R-H-SSYSTEM.DAT ATTRIB-R-H-SUSER.DATCOPYSYSTEM.DATSYSTEM0.DATCO PYUSER.DATUSER0.DATATTRIB+R+H+SSYSTEM.DATATTRIB+ R+H+SUSER.DATSYSTEM0.DAT,USER0.DAT为备份后的文件名。恢复操作步骤:CDW INDOWSATTRIB-R-H-SSYSTEM.DATATTRIB-R-H-SUSE R.DATCOPYSYSTEM0.DATSYSTEM.DATCOPYUSER0.DATUSER.DAT ATTRIB+R+H+SSYSTEM.DATATTRIB+R+H+SUSER.DAT在COPY 时系统会提示是否覆盖该文件,键入“Y”就行了。3.在DOS下运行REGEDIT1)导出注册表C>REGEDIT/L:syst em/R:user/Efilename3regpath/L:system是指定system.dat的路径,/R:use r是指定user.dat的路径,/Efilename3保存注册表的文件名,regpath指定哪个注册表的子键2)导入注册表 C>REGEDIT/L:system/R:usertest.reg3)重建注册表C>REGEDIT/L:syste m/R:user/Ctest.reg/C用指定文件重建注册表4)删除注册表分支C>REGEDIT/L:syst em/R:user/D:regpath/D将指定的注册表子键分支删除7.6设置注册表维护计算机在日 常工作中,我们也可以通过正确设置注册表来维护计算机系统,下面我们就结合实例加以说明。一、隐藏驱动器盘符在上 一章介绍分区软件时,我们曾讲到使用分区软件可以隐藏重要的分区(如备份文件的分区),或者不让其他人使用硬盘某个分区,机器的光驱、软驱 ,可以把它们隐藏起来,使得它们不受外界的干扰,减少病毒的传染机会。在这里我们可以通过注册表来实现隐藏分区的方法。操作方法如下: 运行注册表编辑器,查找HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRNET VERSION\POLICIES\EXPLORER,在右边的窗口中找到“NoDrives”项或新建一个“DWORD值编辑器”对话框 的“进制”选项中选择“十进制”单选框,在“数据”编辑框中输入需要隐藏的驱动器号码,一般用2n来表示驱动器的盘符。如20(1)表示A 盘,21(2)表示B盘,22(4)表示C盘,依次类推,D盘为8,E盘为16,F盘为32,G盘为64,H盘为128。如果想隐藏几个驱 动器,则需将几个驱动器的值相加即可如要隐藏C盘、D盘,则在数据框中输入12(4+8)即可,如要隐藏所有驱动器输入16进制“FFFF FFFF”。二、隐藏“网上邻居”图标为了安全考虑,有时我们想将“网上邻居”隐藏起来,使网络不可见,禁止非法 用户使用网络资源。可通过修改注册表的方法。具体操作如下:运行注册表编辑器,查找HKE Y_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRNETVERSION\POLICI ES\EXPLORER,在右边的窗口中单击鼠标右键,选择:新建/DWORD值命令,会出现一个名称为“新值#1”的键值项,将“新值# 1”更名为“NoNetHood”。双击“NoNetHood”,将其值设置为“1”(16进制)即可,将该键值删除或该值制设置为0,则 不隐藏。三、给“网上邻居”加锁即禁用上面介绍了通过隐藏“网上邻居”,禁止非法用户使用网上邻居,现在我们通过给注册 表加锁来禁用,达到维护的目的。方法如下:运行注册表编辑器,查找HKEY_CURRENT_USER\SOFTW ARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\NETWORK,在右边的窗口中单击鼠 标右键,选择:新建/DWORD值命令,会出现一个名称为“新值#1”的键值项,将“新值#1”更名为“NoNetSetup”。双击“N oNetSetup”,将其值设置为“1”(16进制)即可,将该键值删除或该值制设置为0,则可用。四、禁止“网络”属性中的“文件 及打印共享”项打开“控制面板”对话框中的“网络”选项,在“配置”选项卡中可以看到“文件及打印共享按钮”,如果不想让用户设 置该选项,可以通过注册表隐藏,禁止其他用户使用,这在计算机维护中也是很有用的,在公共机房可以防止学生通过网络来共享文件。 五、怎样禁止文件夹共享如果计算机管理维护人员不允许其他用户共享文件夹,那么可以通过注册表来设置(1)在注册表 编辑器中,查找HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRNETVERSI ON\POLICIES\NETWORK。(2)在该子键下,新建DWORD值“NoFileSharingContr ol”,把键值设置为“1”后,用鼠标右键单击文件夹时,右键菜单中的“共享”就被隐藏了。(3)如果想显示“共享”命 令,就设置NoFileSharingControl键值项的键值为0或删除该键值项即可.六、怎样防止匿名用户(按键登录 (WIN9X))在Win98中可以为每个用户定制各自的使用界面并指定口令,但任何人都能通过单击登录窗口中的“取 消”或按“”键进入系统,即所谓的匿名登录。通过修改注册表,可防止匿名登录。(1)在注册表编辑器中,打开 HKEY_LOCAL_MACHINE\NETWORK\Logon子键。(2)在该子键的右边窗口中新建D WORD类型的“MustBeValidated”键值项,并设置其值为“1”。(3)如果本机用户都进不去,可以进 入安全模式,然后将“MustBeValidated”键值设置为“0”。七、怎样禁止查看指定磁盘驱动器的内容如果某个驱 动器中存放了重要的数据,因而不希望用户查看该驱动器的内容,除了隐藏驱动器外,还可以通过注册表来禁止查看。操作步骤如下:( 1)运行注册表编辑器,找到HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRNE TVERSION\POLICIES\EXPLORER子键。(2)在该子键的右边窗口,新键一个DWORD类型的键值项“ NoViewOnDrive”。八、怎样禁用更改主页设置功能如果我们不希望IE的主页设置被其他用户随便更 改,则可以在注册表中进行如下修改。(1)在注册表编辑器中,查找如下子键:HKEY_CURRENT_USER\SO FTWARE\POLICIES\MICROSOFT\INTERNETEXPLORER\CONTROLPANEL。 (2)在该子键下单击鼠标右键,新建一个类型为DWORD的HomePage键值项,并将其值设为1即可。九、怎样设置开机提示 信息机器在启动时可能需要显示一些提示信息,来达到特定的目的,可通过修改注册表达到。(1)在注册表 编辑器中查找子键HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRNETVER SION\WINLOGON。(2)在其右边窗口新建或修改“字符串”LegalNoticCaption,将其值设为 “警告”。(3)建字符串“LegalNoticeText”并赋值你要显示的文本,如“非法使用机器”。 (4)关机重启机器即可。十、怎样更改操作系统默认的搜索路径以减少木马的威胁运行注册表编辑器系统 默认的搜索路径顺序先是Windows\System32目录,然后才是Windows目录。如果一个破坏程序顶替Edit.exe,并放 到Windows\System32目录下,则运行regedit.exe后将会优先执行这个程序,这样就会使系统出现故障,通过更改一下 默认的搜索路径就可以解决这个问题。十一、怎样禁止使用“控制面板”为了保护系统的安全,防止他人私自使用而造成不必要的麻 烦,我们可利用注册表把“控制面板”完全禁止使用。具体方法如下:(1)在注册表编辑器中查找子键:HKEY_CURR ENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\EXPL ORER。(2)在其右边窗口新建或修改“DWORD”值“NosetFolders”将其修改为1即可。十二、 禁用注册表编辑器(REGEDIT)由于计算机的很多故障是由于非法用户修改注册表造成的,为了减少因非法修改注册表造 成计算机故障,可修改注册表,使非法用户无法使用。方法如下:1、打开注册表,找到HKEY_CURRENT_USER\Softwa re\Microsoft\Windows\CurrentVersion\Policies\System,如果在Policies下面 没有System的话,请在它下面新建一项(主键),将其命名为System;2、然后在右边空白处新建一个双字节(DWOR D)值,将其命名为DisableRegistryTools;3、双击DisableRegistryTools,将其数 值数据修改为1(原来为0)通过上述之后,退出注册表编辑器,再次打开注册表时,则提示“注册表编辑已被管理员禁用”,以后别人、 甚至是你都无法再用regedit.exe。说明:注册表禁用后的解锁运行gpedit.msc/用户配置/管 理模板/系统/右窗口中双击“阻止访问注册表编辑工具”已禁用/应用,这样注册表又可打开了。 小结注册表包含了系统各个方面配置信息数据库,本章从注册表的组成、存放位置、结构介绍了注册 表的概念,以及注册表的维护方法,最后结合实例介绍了通过修改注册表来达到维护计算机系统的目的。十三.关闭共享漏洞HKEY_LO CAL_MACHINE/SYSTEM/CURRENTCONTROLSET/SERVICES/LANMANSERVER/PARAME TERS/在右窗口中autodisconnect双击其将其值改为0(原来为F)?十四.加快开机速度HKEY_CURREN T_USER/CONTROLPANEL/DESKTOP/右窗口中将AUTOENDTASKS值由0改为1,hungapptimeo ut将其值由5000改为3500?十五.缩短关机时间HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCON TROLSET/CONTROL/右窗口找到waittokillservicetimeout将其值由20000改为4000。?十 六.加快菜单显示速度HKEY_CURRENT_USER/CONTROLPANEL/DESKTOP/右窗口中将menushowd elay将其值由400改为0。?十七.清除内存不必要的DLL文件HKEY_LOCAL_MACHINE/SOFTWARE/MI CROSOFT/WINDOWS/CURRENTVERSION/EXPLORER/右键新建一项ALWAYSUNLOADDLL将其值改 为1做了策略之后,在注册表中就有了反应具体位置在Hkey_local_machine/software/polices/Mi crosoft/windows/safer/codeidentifies分支中可查看。?Msconfig启动项在注册表中的加载 位置有三处:1.Hkey_current_user/software/Microsoft/windowsnt/current version/windows/load加载2.Hkey_local_machine/software/Microsoft/wi ndows/currentversion/run3.Hkey_users/default/software/Microsoft/windows/currentversion/run?清除msconfig启动项中的多余项的方法Hkey_local_machine/software/Microsoft/sharedtools/msconfig展开该分支下带“+”的分支并删除分支下子项即可。?在注册表中清楚病毒:Hkey_local_machine/software/Microsoft/sharedtools/msconfig/病毒源清理?在注册表中处理双击打不开磁盘问题或出现双击后选择打开程序Hkey_current_user/software/Microsoft/windows/currentversion/explorer/mountpoint2分支下的“+”的分支展开,删除?在注册表中处理浏览器故障HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\shell\OpenHomePage\Command在该分支下往往是流氓软件和木马加载的地方。Ie浏览器的执行路径是C:\ProgramFiles\InternetExplorer的iexplore.exe退出2.使用SCANREG备份和恢复注册表这种方法一般是Windows98注册表出现问题时使用方法是在DOS提示符下,输入SCANREG/BACKUP,可快速对注册表进行备份,SCANREG/RESTORE,系统列出所有可供恢复的备份文件,用户只需选择适当的备份文件,即可恢复注册表。SCANREG/FIX对注册表进行修复。 |
|