达米扬 鲁迪兹:Windows XP注册表详细分析解剖 赛迪网技术社区

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 20:18:38

Windows XP注册表详细分析解剖

1、解剖Windows XP注册表
 Windows XP注册表实际上是一个庞大的数据库,这个数据库记录了机器软硬件环境的各种信息,对操作系统及应用程序的正常运行至关重要。具体来讲,此数据库包含了Windows系统和应用程序的初始化信息、应用程序和文档文件的关联、硬件设备的说明、状态和属性等数据,操作系统和应用程序会对此数据库进行频繁存取,以保存和获取必要的数据。 "

  注册表中的不少数据可直接通过操作系统及应用软件提供的界面来变更。笔者认为对注册表数据直接修改的意义主要有二:一是快捷,可以绕过不少复杂的操作;二是可以对操作系统、应用软件不提供修改途径的数据进行变更,以实现特殊目的。这里要说明的是,由于Windows XP是严格的多用户操作系统,在进行注册表操作时,应以管理组(Administrators)成员身份进入。
 
  在Windows 9X中,注册表的数据文件存放在系统盘的Windows目录下(user.dat和system.dat)。而在Windows XP中,绝大部分数据文件存放在"%SystemRoot%\system32\config"文件夹下("%SystemRoot%"是文件夹system32所在位置,如"c:\windows")。该目录里面包含了5个没有扩展名的文件,即当前注册表文件:
  DEFAULT(默认注册表文件,位于注册表的HKEY_USERS项分支下)
  SAM(安全账户管理器注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SAM项分支下)
  SECURITY(安全注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SECURITY项分支下)
  SOFTWARE(应用软件注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SOFTWARE项分支下)
  SYSTEM(系统注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SYSTEM项分支下)
  Windows XP会将系统初装后的注册表文件备份到"%SystemRoot%\Repair"目录下,以便系统出现故障时能用此备份文件修复(具体使用方法请参见后文)。
 2.Windows XP注册表编辑器 

  Windows提供一个编辑注册表文件的编辑器,单击"开始"→"运行",输入"regedit"回车后即可进入。注册表编辑器的界面类似于资源管理器,其中涉及到一些名词术语,以下介绍我们将统一采用Windows XP中文版帮助文件中的命名。
  编辑器左栏是树形目录结构,共有5个根目录,称为子树,各子树以字符串"HKEY_"为前缀(分别为HKEY_CLASSES_ROOT,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_USER,HKEY_CURRENT_CONFIG);子树下依次为项、子项和活动子项,活动子项对应右栏中的值项,值项包括3部分:名称、数据类型、值(图1)。
  在Windows XP注册表编辑器中可直接修改、添加和删除项、子项与值项,并且可利用查找命令快速查找各子项和值项:
  (1)设置权限:在多用户情况下,可设置注册表的某个分支不能被指定用户访问,方法是选择要处理的项,并选择菜单"编辑"→"权限",然后在对话框中设置相应权限(图2)。但这里要注意,设置访问权限意味着该用户其进入系统后运行的任何程序均不能访问此注册表项,不熟悉的用户请慎用此功能。
  (2)查找:选择菜单"编辑"→"查找"(或按"Ctrl+F"),在弹出的"查找"窗口中"√"选要查找目标的类型,并输入待查找内容(图3),单击"查找下一个"按钮,等待片刻便能看到结果,之后按"F3"键可查找下一个相同目标。
  (3)收藏:有些注册表项经常需要修改,这时可将此项添加到"收藏夹"中。选择注册表项,单击"收藏"→"添加收藏夹",输入名称并确定后该注册表项便添加到了"收藏"列表中(图4),以后访问时可直接从"收藏夹"点选进入。查找和收藏是注册表编辑器的重要功能,应多加以利用。
  (4)添加子项或值项:在左窗格中选择要在其下添加新项的注册表项,然后在右窗格中单击鼠标右键,选择"新建"→"项"或值项数据类型(图5)。
  (5)更改值项:右键单击要更改的值项,选择"修改",然后输入新数据并"确定"即可(图6)。实际上,如要删除、重命名子项、值项,只须选择相应对象,单击右键,进行相应操作即可。
  (6)注册表项的"导出"和"导入":建议在修改注册表时,如果没有把握,请将修改项先导出以备修改错误时再导入恢复。选择要导出的注册表项,单击"文件"→"导出","保存类型"一般选择"*.reg",淙胛募蟮セ?保存"即可。要导入已备份的注册表项只须单击"文件"→"导入",并选择准备导入的文件,若是上一步导出时存为.reg文件,导入时直接双击此文件即可完成任务。
 3.备份注册表
  为了在注册表损坏后能及时修复,有必要对其进行备份。用Windows XP自带的备份工具就可完成此工作:单击"开始"→"所有程序"→"附件"→"系统工具"→"备份",取消向导模式调出"备份工具"对话框(图7),点选"备份"标签,再"√"选其中的"System State(系统状态)"项,点选左下角的"浏览"可选择存储备份文件的位置。最后点击"开始备份",系统便开始备份文件了(图8)。需要注意的是这样的备份是连带系统文件一同备份,虽然耗时多,但非常安全(后面会讲到),且操作简便。如果你仅对注册表信息备份,那么将上文中提到的5个注册表数据文件备份即可。
探索Windows XP注册表
  Windows XP注册表中除前面提到的5大子树,其实还有一个隐藏的性能子树HKEY_PERFOR MANCE_DATA,包含了Windows XP一些性能工具和性能数据之间的信息;但在注册表编辑器中无法看到此子树内容,只能通过编程方式访问,因此本文就不作介绍了。
  在Windows XP注册表中,HKEY_CURRENT_CONFIG子树的信息较少,也不是很有用,这里予以跳过。HKEY_CLASSES_ROOT下的信息和HKEY_LOCAL_MACHINE\SOFTWARE\Classes下的信息相同,只要一处更改,另一处便自动更改。HKEY_USERS子树很有用,特别是.DEFAULT项,保存的是默认用户的软件设置,如果要限制新建立用户的软件设置,则可在此修改;当前用户由于已被创建,修改此子树对其已无效,而应当通过HKEY_CURRENT_USER来达到修改目的。这样我们关注的注册表内容其实就集中在HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER两大子树下,后面将对这两大子树进行深入探索,所举之例都是与大家关系密切的,其本身的意义固然不小,但我们更希望大家细细分析这些实例,并得出规律性的结论,以达到举一反三的效果。
 1.HKEY_LOCAL_MACHINE子树详解
  该子树主要存储Windows XP的系统信息,常用到SOFTWARE和SYSTEM两个子项。
  (1)HKEY_LOCAL_MACHINE\SOFTWARE
  该项下的数据存储了应用和系统软件的有关信息,只要涉及到具体软件方面的修改都应进入此注册表项。
  ①HKEY_LOCAL_MACHINE\SOFTWARE\Classes +^)
  该项存储了不同文件类型的打开程序及已注册程序的相关信息。关于文件用什么软件打开、播放等修改操作都应进入此项。
  实例:更改AVI文件的默认打开程序
  首先来分析一下AVI文件打开程序的存储位置。在注册表编辑器中(以下除非特别说明,都是在注册表编辑器中)展开上述Classes项下的.avi,发现左窗格中"默认"值项的数据是"AVIFile"(图9),于是找到同一Classes项下的AVIFile,展开其下的shell\open\command,发现其默认值指向Windows Media Player(图10),即AVI文件用WMP默认播放。因此修改其默认打开程序有两种方法:一种是把上述command项下的默认值改为指定程序,如笔者硬盘上的"D:\Winamp2经典\Winamp.exe",但上述方法的结果之一是AVI文件的显示图标仍然是原来的Media Player样式;也可修改上述.avi项中的默认值,使其指向Winamp2的注册位置,于是仍在上述Classes项下寻找,果然发现有Winamp.File子项,因此将.avi项中的默认值改为"Winamp.File",果然一击奏效,图标也随着改变了。如果你发现这两个修改方法均对打开程序不起作用,没关系,这是因为HKEY_CURRENT_USER中对AVI扩展名信息进行了覆盖,看到后面的内容你就明白了。
  巩固:要禁止CD光盘自动运行,只需展开上述Classes项下的AudioCD\shell子项,在右边窗格中将"默认"值项设为空" "(即输入空格)。
  ②HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
  该子项存储有关类ID(CLaSs ID)分配的信息,Windows XP中几乎所有支持OLE的应用程序都有一个合法的类ID。这个子项对于程序员的意义很大,对于普通用户,则可用来修改特定图标的提示信息。这个子项比较常用,建议大家收藏,以方便使用。
  实例:修改"回收站"的提示信息
  上面所说的特定图标包括HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Explorer\CLSID下的5个图标(图11),分别代表网上邻居、我的电脑、我的文档、回收站和IE浏览器。由图可知"回收站"的CLSID值为{645FF040-5081-101B-9F08-00AA002F954E},在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID子项下查找此字串,找到后将右边窗格中修改字符串InfoTip的值为你想要的提示信息,如"电子垃圾轮回之所"(图12)。在这里也有DefaultIcon(默认图标)子项,但因HKEY_CURRENT_USER对此也进行了覆盖(其实就是上面提到HKEY_CURRENT_USER\…\下的CLSID子项),所以改过后并没有任何作用。
  巩固:修改控制面板中"任务栏和'开始'菜单"的默认图标,查找CLSID下的{0DF44EAA-FF21-4412-828E-260A8728E7F1},选择此项下的DefaultIcon,在右边窗格中修改"默认"键值为新图标的路径。不少DLL和EXE文件中都不只一个图标资源,可以在这些文件名后加",n"表示引用第n个图标。可下载专门的工具软件来查看图标资源,如AIconExtract(地址:http://www.onlinedown.net/AIconExtr...

  其他较有用的CLSID值大家可以用这样的方法去找:选择CLSID子项,然后分别查找"infotip"和"defaulticon"两项,应当能够一网打尽。
  ③HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft E-Lk P
  该子项是一些与Windows XP系统的安装、使用有关的信息。
  实例1:删除残余程序名
  有时用"控制面板"中的"添加/删除程序"删除应用程序后,程序名一直残留在列表中删不去,我们看一下能否用注册表编辑器解决问题。试着在上述子项下的Windows项上点右键,查找"Uninstall"项,查到第2次时发现果然有一个CurrentVersion\Uninstall子项,其下有不少已安装好的程序(图15),将残留项选中并删除即可,当然你也查看残留项的内容以决定进一步彻底删除。
  实例2:修改Windows XP安装源文件路径
  展开Windows NT\CurrentVersion子项,双击右边窗格中的SourcePath值项,将其值改成新的Windows XP安装源文件路径即可。
  巩固:查看随系统启动的程序或服务,只需留意Windows\CurrentVersion\Run子项,这里面的启动项目与你用什么用户身份登录系统无关,与用户身份有关的启动项目可在HKEY_CURRENT_USER子树下的同样位置找到。
  (2)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet b
  该项中存储的都是与Windows XP系统有关的控制信息,这里仅举一例,更多的运用请大家参考后附的列表:通过修改注册表提升Windows XP的运行速度。
  实例:当Windows XP登录超时自动断开连接
  登录Windows网络时,有时会因出错而无法登录,以致长时间没有动静。其实我们可通过修改注册表来限制超时断开,打开Services\LanmanServer\Parameters子项,然后在右窗格内修改AutoDisConnect值项的值为1。
 2.HKEY_CURRENT_USER详解
  该子树下存储的是Windows XP系统当前登录用户的软件配置信息,前面已经提到此子树下的信息会覆盖HKEY_LOCAL_MACHINE下的部分信息,只要是涉及到当前用户的特殊配置,就应当进入到这儿来。

  (1)HKEY_CURRENT_USER\Control Panel
  该子项存储了Windows XP系统用来配置控制面板的信息。
  实例:改变时间显示格式
  展开International子项,双击右窗格中的sTimeFormat值项,改为"tth:mm",其中tt代表出现"上午"和"下午"(此字串可在同项下的s1159和s2359处修改),h表示12时制小时数(H则代表24时制的小时数),mm表示分钟1。同样改sLongDate为"yyyy'/'MM'/'d",注销后重新登录即可看到效果(图16)。

  巩固:关掉Windows XP的错误提示声音
  Windows XP在用户操作错误时会发出提示声,可通过修改注册表关掉它。打开HKEY_CURRENT_USER\Control Panel\Sound子项,然后双击右窗格的ExtendedSounds,键入"no"即可。
  (2)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
  该子项是我们用得最多的子项,存储了Windows XP大量的配置信息,如屏蔽菜单项、关闭自动运行功能等。

  实例1:改变收藏夹的目录指向
  对多操作系统的朋友,这一实例比较有用,可将各个操作系统的收藏夹指向一个目录,这样在不同系统中无需同步软件就能共享收藏夹了。方法是展开Explorer\User Shell Folders子项,然后在右边窗口双击"Fovarites",将其值改变你想指向的目录即可。其实这个子项下的内容还可以让你共享Cookie和桌面文件夹等(图17)。
  实例2:这里讲一下上面遗留下来的一个问题,即AVI文件的打开程序在HKEY_LOCAL_MACHINE\SOFT WARE\Classes下通过两种方法修改后仍无法变更。展开Explorer\FileExts,会发现下面有所有注册的扩展名,找到.avi,发现此项中有一个项值名为"Progid",AVI文件将被其后所显示的程序默认打开,而不管你在HKEY_LOCAL_MACHINE\SOFTWARE\Classes下作了什么更改。解决方法是删除此项值即可,此操作对应图形界面操作中的"还原"(图18)。
  实例3:屏蔽"开始"菜单中的"搜索"项
  展开此项下的Policies\Explorer子项,然后新建一个名为"NoFind"的REG_DWORD类型值项,并将值设为"1",注销后重新登录即可用。
  (3)HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer
  这个子项是一些与IE浏览器相关的信息。
  实例:IE主页的修改
  IE主页即运行IE时自动打开的网页,有时安装了个别软件或被恶意网站修改后,起始页无法更改,这种情况下可通过修改注册表解决问题:找到Main子项,双击右边窗格的Start Page,更改其中的网址。若以上方法无效,那么请双击以上子项下的Default_Page_URL项,更改其中的网址即可。有时Internet选项中会有一些设置项目被锁定(变灰不可用,图19),此时则需在HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel下将相应项值删除或改其值为0(详见45页附表)。
 
  巩固:删除部分键入的历史网址,许多注册表软件都有清除历史记忆功能,但一般是删除全部,有时只想针对个别网址,可在TypedURLs中找到相应项值并直接删除。
  (4)HKEY_CURRENT_USER\Software\Microsoft\Windows\ ShellNoRoam\MUICache
  这个就不详细讲了,因为一进去就非常熟悉(图20),你可以随便将这些文字串改了,比如把"清空回收站"改成"倒垃圾",然后再双击回收站,看看界面有什么改变?
  终于到了最后总结的时候了(咦,为什么要说终于呢?)。其实注册表的应用远不限于上面所讲的这些,但只要掌握了基本的规律和操作知识,再加以勤奋探索,相信在解决一个个问题的同时,你的计算机应用水平也一定会有不小的提高。
附:通过修改注册表提升Windows XP的运行速度
  对于那些硬件配置不是很高的朋友来说,Windows XP的运行速度一直是个问题。除了在性能选项中调节视觉效果以外(右击"我的电脑"→"属性"→"高级"→"性能"→"设置"→"视觉效果"→"自定义",左图),下面我们看看怎样通过修改注册表来提高运行速度。
  目的 注册表项 具体操作
  启用CPU L2 Cahce HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management 新建一个名为SecondLevelDataCache的Dword值项,并输入值100(16进制)。

  加快菜单显示速度 HKEY_CURRENT_USER\Control Panel\Desktop 将字符串MenuShowDelay的值更改为100或更小。 
  缩短系统启动时chkdsk的等待时间 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 新建AutoChkTimeOut的Dword值项,将其值改为3(16进制)或更小。

  关闭检查预定任务 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer \RemoteComputer\NameSpace 删掉{D6277990-4C6A-11CF-8D87-00AA0060F5BF}注册表项。
  加快程序运行速度 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 新建一个名为ConfigFileAllocSize、类型为REG_DWORD的值项,并将其值设为0x000001F4(500)。
  加快自动刷新 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update 双击UpdateMode值项,将其值更改为"0"。
  加快电脑运行速度 HKKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\FS Templates\Server 双击右边窗格的Namecache和PathCache值项,将它们的值分别更改为a9 0a 00 00和40 00 00 00。
  自动关闭停止响应的程序 HKEY_CURRENT_USER\Control Panel\Desktop 双击AutoEndTasks值项,并将其值更改为"1"。
  清除内存内不使用的DLL文件 HKKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer 新建一个名为AlwaysUnloadDLL的子项,并将默认值设为1。
Windows XP注册表故障修复
  电脑出现故障的原因很多,其中有不少是由注册表产生的。一般出现以下症状则可以初步断定为注册表出了问题:(1)运行程序时弹出"找不到*.dll"信息;(2)Windows应用程序出现"找不到服务器上的嵌入对象"或"找不到OLE控件"错误提示;(3)单击某个文档时,Windows XP给出"找不到应用程序打开这种类型的文档"信息;(4)Windows资源管理器中存在没有图标的文件夹、文件或奇怪的图标;(5)菜单、控制面板中的一些项目丢失或处于不可激活状态;(6)网络连接无法建立;(7)工作正常的硬件设备变得不起作用;(8)Windows XP根本无法启动,或仅能从安全模式启动;(9)Windows XP系统显示"注册表损坏"等信息。
  此时可采取以下方法修复注册表:
 1.在Windows XP下用备份文件还原
  如果Windows XP还能启动,只是出现出错提示信息并且有些系统程序不能用,单击"开始"→"所有程序"→"附件"→"系统工具"→"备份"菜单项,调出"备份工具"对话框,然后点击"备份工具"对话框中的"还原与管理媒体"标签,将注册表还原到损坏前的状态(图21)。此方法有个前提条件,就是你必须有注册表损坏前的备份文件。
 2.用Windows XP的"系统还原"功能还原
  和上一方法一样,必须能启动进入Windows XP系统。单击"开始"→"所有程序"→"附件"→"系统工具"→"系统还原"菜单项,调出"系统还原"对话框,选择"恢复我的计算机到一个较早的时间"项,单击"下一步",选择一个较早的还原点(图22),然后单击"下一步"确认。Windows XP便会重新启动系统,将系统设置还原到指定的时间,并给出恢复完成的提示(图23)。如果你的Windows XP的系统还原功能被关闭,可单击"开始"→"控制面板"→"系统"项,并点击"系统还原"标签,去掉"在所有驱动器上关闭系统还原"复选框前面的"√"(图24)。
 3.使用上次正常启动的注册表配置
  如Windows XP无法正常启动,可使用上次正常启动的注册表配置。当电脑通过内存、硬盘自检后,按F8键,进入启动菜单,选择"最后一次正确的配置"项(图25),这样Windows XP就可以正常启动,同时将当前注册表恢复为上次的注册表。这里需要注意的是选择"最后一次正确的配置",并不能解决由于驱动程序或文件被损坏、丢失所导致的问题。同时,选择"最后一次正确的配置",Windows XP只还原注册表项HKEY_LOCAL_MACHINE\System\CurrentControlSet中的信息。任何在其他注册表项中所作的更改均保持不变。
 4.使用安全模式恢复注册表
  如果使用"最后一次正确的配置"项无效,则可以在启动菜单中选择"安全模式",这样Windows XP可自动修复注册表中的错误,从而使启动能够正常引导下去。引导进入系统后再执行方法1或方法2。
 5.使用故障恢复控制台修复损坏后的Windows XP注册表
  如果连安全模式都进不去,那么我们就不得不利用Windows XP的恢复控制台来修复系统了。
  将Windows XP安装光盘放入光驱中,然后在BIOS中将光驱设为第一启动驱动器。启动电脑进入"欢迎使用安装程序"界面(图26),按"R"键进入Windows XP的"故障恢复控制台"页面,系统会将电脑中的Windows XP系统都列出来,选择需要修复的系统,并键入管理员密码(图27)。为了尽可能修复注册表到损坏前的设置和状态,可按以下4步进行操作。 
  进入故障恢复控制台,新建一个临时文件夹,备份当前的注册表文件到临时文件夹中以备不时之需,然后将当前注册表文件删除,接着将"%SystemRoot%\Repair"目录下文件拷贝到"%SystemRoot%\System\Config"目录下,最后重新启动系统便可进入Windows XP系统。不过恢复此项操作的是Windows XP刚安装完后的注册表,因此,安装完后所做的任何改变和设置都将丢失。具体操作如下(这里假设Windows XP安装在E:\Windows下,具体操作应根据情况改变此文件夹):
  (1)进入故障恢复控制台
  (2)键入以下命令,每键入1行便按回车键1次:
  md tmp
  copy e:\windows\system32\config\sam e:\windows\tmp\sam.bak 
  delete e:\windows\system32\config\sam P 
  copy e:\windows\repair\sam e:\windows\system32\config\sam   
  接着将后3行中的"sam"字符分别替换为"software"、"system"、"security"和"default",分别键入(即除上述4行命令,还另有12行命令)。这里需要注意的是,熟悉DOS命令的朋友可以将delete语句去除,在进行copy时选择"Yes";此外这里的copy命令不支持通配符"*"和"?",一次只能复制一个文件。如果你有另外一台电脑可用,为节省时间也可用记事本新建一个文本文件,并将全部命令拷入,例如将其取名为r1.txt,把它拷贝到Windows目录下,并在故障恢复控制台的Windows目录下运行"batch r1.txt"命令。
  (3)键入"exit"退出故障恢复控制台,电脑将自动重新启动,直接以正常模式进入Windows XP系统。
  这一步需要从System Volume Information文件夹中拷贝注册表文件,以恢复系统设置,不过此文件夹在故障恢复控制台下不能用,在正常情况下的Windows XP系统中也不可见,因此首先应改变几项设置使得文件夹可见。
  (1)重新启动系统,从"安全模式"以管理员组成员(Adiministrators)的身份进入Windows XP系统。
  (2)进入资源管理器窗口,点击"工具"→"文件夹选项",然后点选"查看"标签,在"高级设置"框中的"隐藏文件和文件夹"下点选"显示所有文件和文件夹"项,再清除"隐藏受保护的操作系统文件"前的"√"(图28),最后单击"确定"。
  (3)进入Windows XP系统所在驱动器,进入System Volume Information\_restore{E3586CBC-4366-49A4-8B15-8C7E491AB54F}\RPn\snapshot目录(RPn中的"n"为数字,若有多个,选择最大的那个,图29),将该目录中的_REGISTRY_USER_.DEFAULT、_REGISTRY_MACHINE_SECURITY、_REGISTRY_MACHINE_SOFTWARE、_REGISTRY_MACHINE_SYSTEM、_REGISTRY_MACHINE_SAM共5个文件拷贝到Windows\tmp文件夹中,分别将其重命名为default、security、software、system、sam。

  在这一步中又要进入故障恢复台,将当前注册表文件删除,然后把刚才拷贝到Windows\tmp中的5个文件,复制到Windows\system32\config文件夹下替代当前注册表文件。具体操作请先进入故障恢复控制台,然后在命令行下输入如下命令:
  del e:\windows\system32\config\sam 0~U0s3 
  copy e:\windows\tmp\sam e:\windows\system32\config\sam
  同理将"sam"字符分别替换为"software"、"system"、"security"和"default",分别键入(共10行命令)。
  同样的道理也可以用batch命令进行上述操作,另外如果Windows XP不安装在E盘,请根据实际情况更改。
  以正常模式进入Windows XP系统,运行"系统还原"工具,将系统还原到所需的还原点。具体操作可以参照前面的方法。
附:制作REG文件编辑注册表
  Windows XP注册表文件除了可以用注册表编辑器、工具软件修改外,还可以直接用记事本制作REG文件脚本来直接修改,其优势是可以文件形式保存、交流,也保证了准确性和安全性。下面我们分别从注册表项(子项、值项)的创建、修改、删除3个方面分析REG文件的制作。
 1.创建和修改
  (1)创建子项
  我们现在需要在HKEY_LOCAL_MACHINE\SOFTWARE下创建一个名为"IvanLuo"的子项,则只须在记事本中输入以下内容(右图):
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo]
  将其保存为任一扩展名为REG的文件(如ivan.reg),双击其就可以在HKEY_LOCAL_MACHINE\SOFTWARE\下创建名为"ivanluo"的子项。
  (2)创建或修改值项
  现在要在HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo下新建一个名为"ivan"(如注册表中已有ivan值项,则为修改)、类型为"REG_DWORD"、值为"111"(16进制)的值项,则可在记事本中输入以下内容: 
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo] 
  将以上文档保存为一个REG文件并双击之,如果此时你的注册表中没有IvanLuo这个子项,那么将会为你创建。修改时也可把需要修改的注册表项导出,用记事本打开并修改,然后将其导入即可。
 2.删除
 
  (1)删除值项
  如要将HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo\下名为"ivan"的值项删除,相应REG文件的内容为:
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo]
  (2)删除子项
  或要删除HKEY_LOCAL_MACHINE\SOFTWARE下的IvanLuo子项,REG文件如下书写:
  Windows Registry Editor Version 5.00
  [-HKEY_LOCAL_MACHINE\SOFTWARE\IvanLuo] 
  以上便是REG文件制作的全部内容,很简单吧!如果还有什么不懂的地方,只须将注册表中一项导出为REG文件,然后用记事本打开,对照注册表编辑器中的相应项看看便明白了。
附:Windows XP注册表部分修改对照表
 一、定制个性化"开始"菜单、桌面和右键菜单
  目的 注册表项 具体操作
  屏蔽"开始"菜单中的"注销"菜单项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为StartMenuLogOff类型为REG_DWORD的值项,并将其值设为"1"。
  屏蔽"开始"菜单中的"运行"菜单项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoRun类型为REG_DWORD的值项,并将其值设为"1"。
  屏蔽"开始"菜单中的"关闭计算机"菜单项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoClose类型为REG_DWORD的值项,并将其值设为"1"。
  禁止修改"开始"菜单和任务栏 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoSetTaskbar类型为REG_DWORD的值项,并将其值设为"1"。
  在退出Windows XP时
  自动清除文档内容 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为ClearRecentDocsOnExit类型为REG_DWORD的值项,并将其值设为"1"。
  屏蔽桌面上的所有图标 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoDesktop类型为REG_DWORD的值项,并将其值设为"1"。
  禁止运行任务管理器 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System 新建一个名为DisableTaskMgr类型为REG_DWORD的值项,并将其值设为"1"。
  从桌面上删除"回收站" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\ 删除{645FF040-5081-101B-9F08-00AA002F954E}子项。
  禁止系统右键弹出菜单 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoViewContextMenu类型为REG_DWORD的值项,并将其值设为"1"。
  为右键菜单添加"在新窗口打开"命令 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell 新建名为NewWindows的子项,将其"默认"值项的值改为"在新窗口打开",在NewWindows子项下创建名为Command子项,并将其"默认"值项的值改为"Explorer.exe %1"。
 二、定制Windows XP系统功能 
  目的 注册表项 具体操作
  为"我的电脑"更改图标 HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon 将"默认"值项中的图标路径修改成别的图标路径。
  更改"我的文档"的目录 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 将"Personal"值项中的路径值改成新的目录路径。
  禁用"注册表编辑器" HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System 新建一个名为DisableRegistryTools类型为REG_DWORD的值项,并将其值设为"1"。
  禁止使用.REG文件 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.reg 更改其"默认"值项的值为txtfile。
  禁止"删除打印机" HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoDeletePrinter类型为REG_DWORD的值项,并将其值设为"1"。
  隐藏上次用户登录的名字 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system 将值项dontdisplaylastusername的值改为"1"。
  屏蔽资源管理器中"工具"菜单下的"文件夹选项" HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 新建一个名为NoFolderOptions类型为REG_DWORD的值项,并将其值设为"1"。
 三、定制个性化IE
  目的 注册表项 具体操作
  禁用IE的"Internet选项"的"常规"标签 HKEY_CURRENT_USER\Software\Policies\Microsoft 先新建Internet Explorer子项,再在此子项下新建Control Panel子项,最后在其下新建名为GeneralTab类型为REG_DWORD的值项,并将其值设为"1"。
  禁用"文件"菜单下的"另存为" HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer 新建Restrictions子项,然后在此子项下新建一个名为NoBrowserSaveAs类型为REG_DWORD的值项,并将其值设为"1"。
  禁用IE鼠标右键功能 HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions 新建一个名为NoBrowserContextMenu类型为REG_DWORD的值项,并将其值设为"1"。
  禁止关闭IE浏览器 HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions 新建一个名为NoBrowserClose类型为REG_DWORD的值项,并将其值设为"1"。
  个性化IE的标题列 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 新建一个名为"Window Title",类型为"字符串"的值项,其值可以随便输,如"大众软件"。
  重新安装IE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{89820200-ECBD-11cf-8B85-00AA005B4383} 将值项IsInstalled的值改为"0",这样系统就会认为IE还未安装,重启后便会自动下载安装文件并安装。