亚鲁哥路實力:关于注册表

来源:百度文库 编辑:神马品牌网 时间:2024/05/15 04:39:38
我自己有电脑,想了解一下注册表 的知识

注册表由来

PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。

为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。

与INI文件不同的是:
1.注册表采用了二进制形式登录数据;
2.注册表支持子键,各级子关键字都有自己的“键值”;
3.注册表中的键值项可以包含可执行代码,而不是简单的字串;
4.在同一台计算机上,注册表可以存储多个用户的特性。

注册表的特点有:
1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。
2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。
3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

注册表完全恢复手册
注册表是伴随着Win95出现在我们面前的,其实它早就在NT中担当起了重要的作用。采用注册表来管理系统配置,主要是为了提高系统的稳定性。而系统出现的一些问题(如无法启动、应用程序无法运行、系统工作不正常等),很多都是因注册表出现错误而造成的,通过修改相应的错误数据就能使得Windows工作如初了。但注册表的结构太复杂,不正确的修改常常会带来更坏的结果。下面介绍几种安全恢复注册表的方法,希望能帮助大家远离令人头疼的注册表问题。

未 雨 绸 缪 篇
及大量应用程序的安装使用时要调用的各种信息等。它由3个相对独立的注册表文件组成:系统配置注册表文件:system.dat、用户平台配置注册表文件user.dat和网络管理注册表文件config.pol。它们存储在Windows目录中,其中system.dat中存储着当前计算机的配置,特别是各种即插即用设备的硬件配置,如设备的I/O地址、中断号(IRQ)以及DMA的值等;user.dat主要用来定义用户的优先权,存储着特定于某一用户的应用程序的安装信息等;而config.pol则是只有当Win98的用户安装了系统策略编辑器后才会生成的注册表文件,它存储的设置可以对网络用户的操作做出限制。一般而言,组成一个完整的注册表文件系统,system.dat和user.dat这两个文件是必不可少的。

一、文件备份还原法

显然,及时、正确的备份能够在计算机发生意外时,比较完全地恢复整个工作进程。对注册表进行的备份也一样,利用在正常工作状态下备份的注册表可以用来恢复发生错误的注册表,从而达到使系统重新恢复正常工作的目的。

(一)备份

1?简单拷贝法

备份注册表就是备份system.dat和user.dat这两个文件。它们的文件属性都是系统、隐藏、只读的,因此一般情况下无论在DOS还是Windows窗口状态都是不可见的,在备份时要注意使用一些“技术”。

在DOS状态下,请先进入Windows目录,然后键入命令“Attrib -h -r -s system.dat”,对于user.dat同样操作,此时就可以将这两个文件复制到其他的目录中去了。

在Windows窗口状态下,在【查看】中选择【文件夹选项】→【查看】,在【隐藏文件】中选择【显示所有文件】,这样system.dat和user.dat才能在文件夹窗口中显示出来。剩下的复制工作应该就不用我多说了吧。

2?注册表导出法

将注册表导出,也是一种不错的注册表备份方法。在【开始】→【运行】栏中运行【Regedit.exe】,选【注册表】→【导出注册表】,最后选择导出注册表文件的存储位置就可以了。要注意的,在导出注册表时,千万要在【导出范围】中选择【全部】,否则导出的注册表文件不完全,将无法用来恢复原注册表。采用此方法备份后只生成一个文件,它的文件名的后缀是.reg。

(二)还原

1?简单拷贝法的还原

还原的方法当然是重新用备份的文件覆盖现有文件。不过要注意的是,在覆盖现有文件前,同样得先将system.dat和user.dat的文件属性全部取消,否则系统会拒绝覆盖操作。在还原前请务必启动到DOS状态下,然后再进行此操作。千万不要在Windows或Windows的DOS窗口下进行此还原操作,否则不但不能恢复注册表,反而会对注册表产生极大的破坏。

2?注册表导出法的还原

利用注册表导出法的注册表文件还原系统时,既可以在Windows下进行,也可以在DOS下进行。

在Windows下进行时,运行注册表后选【注册表】→【导入注册表】,选择要导入注册表文件的所在位置,重新启动后就可以恢复注册表。虽然此法无论在安全模式还是正常方式下都可以进行,但为了保险起见,笔者还是建议最好在安全模式下或是干脆用下面介绍的在DOS下进行操作。

在DOS下只能以命令行的方式运行Regedit.exe,但它可以解决无法进入Windows情况下的注册表恢复问题。其命令行形式:

Regedit [/L: system] [/R: user] filename1
Regedit [/L: system] [/R: user] /C filename2

Regedit [/L: system] [/R: user] /E filename3 regpath1

Regedit [/L: system] [/R: user] /D regpath2

参数含义:

/L: system 指定system.dat文件的存放位置;

/R: user 指定user.dat文件的存放位置;

filename1 指定导入的注册表数据库文件名;

/C filename2 利用指定的注册表文件重新生成注册表;

/E filename3 导出注册表文件为指定文件名;

regpath1 将指定开始关键字的部分从注册表文件中导出;

/D regpath2 将指定开始关键字的部分从注册表文件中删除

具体在恢复注册表时,可以采取命令行1的形式:Regedit bak.reg(假设你导出的备份注册表文件为此文件名)。不过建议采用命令行2的形式,即:Regedit /C bak.reg,因为此命令不但会将bak.reg中的所有信息导入注册表,而且会将其中的一些无用的信息(如一些已经被删除的程序在注册表中的残留部分关键字等)同时剔除,从而达到压缩重建注册表的目的。

顺便提一下,命令行2也不一定要在恢复注册表才使用,平时运行也能压缩、清除注册表中的“垃圾”,从而起到提高Windows启动速度,减少注册表错误发生几率的作用。笔者就曾经利用此命令将原来6兆的注册表压缩为4兆。要注意的是,在使用此命令时,请务必在运行前加载磁盘缓冲smartdrv,否则它的运行时间之长或许足够你去看一场电影了!

二、系统备份法

正是由于注册表对于系统的重要性,微软在开发Win95时就考虑到系统对于注册表的自动备份问题。尽管它所提供的功能直到Win98才令人稍感满意,但毕竟这也不失为修复注册表的方法之一。

(一)Windows 95

当初Win95各版本中提供的系统自动备份注册表的方法比较简单,通常是在Windows系统启动的同时,将当前的注册表文件备份。具体的做法就是将system.dat和user.dat这两个文件分别备份为相同属性的system.da0和user.da0。因此,当系统因注册表遭破坏无法启动时,可以手工将system.da0和user.da0这两个文件拷贝并覆盖system.dat和user.dat(请注意在操作前,分别将这4个文件的文件属性全部取消)。尽管这种想法不错,但由于疏忽和一些无法预料情况的发生,系统自动备份的注册表经常会在不知不觉中被破坏或备份失败。例如:①当注册表的破坏是在上

次关机以前发生的,而当你再次启动系统时,备份的注册表其实就是已经遭破坏的注册表的“完全”拷贝了;②启动时注册表为正确的,此时系统自动备份的注册表也是好的,但在系统启动过程中发生意外(如突然停电、硬盘意外读写错误等)导致系统启动失败,当你再次启动时,原来完整的注册表备份也会被已经遭破坏的注册表覆盖。因此,利用system.da0和user.da0这两个备份文件来恢复注册表的效果不是十分令人满意,成功率一般在50%左右。要注意在一次启动失败后,尽量不要试图再次启动,应该立即用system.da0和user.da0这两个文件来覆盖恢复,否则90%以上你的系统是再也无法恢复的了。

(二)Windows 98

Win98对注册表文件备份系统的改进之处主要体现在以下两个方面:①备份文件不仅包括system.dat和user.dat,还包括了system.ini和win.ini这两个初始化文件,大大提高了系统还原的完整性;②备份文件被统一地压缩在一个文件中,而且备份压缩文件的数量大大增加,避免了在Win95下一个备份容易发生错误无法恢复的现象。

Win98将注册表的备份文件放在了Windows下面的隐藏子目录Sysbckup中,备份文件以rbX为名,都是CAB格式的压缩文件,每个文件包含system.dat、user.dat 、system.ini和win.ini。默认情况下,系统共留有5个(X从000到004,如果某次有错误,数字往后顺延)压缩包备份,这5个压缩包备份分别是你最近5个工作日中第一次启动计算机时系统所做的备份。请注意,并不是最近5次,举个例子,如果你每天都使用计算机,那么这5个备份中保存的分别是5天来每天你第一次启动计算机时的注册表文件。当某次启动发生错误时,系统会将这时的注册表文件另外保存为rbbad.cab,以供使用者分析、寻找发生错误的原因所在。
了解了Win98的备份原理后,对于注册表的还原就比较轻松了。如果你可以进入Windows(哪怕是安全模式),想进行备份还原的话,只要用Winzip等支持CAB压缩格式的软件选择最近的或是前几天的备份压缩包文件,并将其中的4个文件解压出来,重新启动计算机到DOS状态,利用这些文件覆盖相应同名文件就可以了。如果你在启动的时候就无法进入Windows的话,那么可以尝试在DOS下进行备份还原工作:①利用Windows提供的extract.exe文件,用命令行方式将备份文件展开,直接对系统注册表文件进行覆盖还原(假设当前目录为Windows):extract /Y ?.? Sysbckup\ rbX.cab,其中X为000~004。②利用Windows附带的scanreg.exe,在DOS状态下运行此程序,按提示选择检查注册表,在程序检查完注册表后,可以看到【Create Backups】和【View Backups】这两项,前者用来将当前的注册表备份下来,后者用来查看以前备份的注册表情况。选择后者,屏幕将显示近日来的各备份注册表文件情况(主要是备份的时间),选择你想还原的备份,按回车,然后选择【Restore】开始还原,还原完毕后选择【Restart】重新启动计算机就可以了。

注意,当你第一次启动计算机失败后,请不要不断地继续尝试启动计算机,因为scanreg.exe会将启动失败的注册表都一一依次备份下来,如果你连续启动失败5次的话,也就意味着原先备份的5个完好的注册表都将被这连续5次的坏注册表所替代,也就失去了利用它们来还原系统注册表的机会。因此,在启动失败后,请尽量不要一而再再而三地连续启动,应及时地进行注册表还原工作。

亡 羊 补 牢 篇

古人云:亡羊补牢,为时未晚。如果你从来就没有备份注册表的习惯,或是在Windows下所有的系统自动备份都已经如前所述被已遭破坏的注册表文件所替代了的话,那么试试下面的方法,或许能使你的机器再次正常地运转起来。

一、保守还原法

一般而言,当Win9X在成功安装完毕后,会自动将第一次正常运行时的系统信息(其实也就是注册表信息,主要是相应的硬件信息)保存在C盘根目录下的system.1st这个文件中。利用它,有可能将系统恢复到最初安装时的状态。具体的做法如下:在DOS下,首先去除system.1st以及Windows目录下system.dat的文件属性(它们都是系统、只读、隐藏属性),然后将system. 1st拷贝为system.dat来覆盖系统的system.dat,最后重新启动计算机。如果启动成功,还得对系统进行大幅度地调整才能恢复到破坏前的状态。

二、“李代桃僵”法

如果有和你的硬件配置大致相同的计算机,可以用那台计算机上的注册表文件(system.dat和user.dat)来覆盖自己计算机上的注册表文件,然后启动。如果可以进入Windows,再对系统做相应的修改,就能恢复如初了。尽管这种方法成功的概率比较小(大约在25%左右),但这也是不得已而为之,或许能将你的“死马”真的医活了。

如果上面的招数对你都无效,那我再教你一记“超级绝招”——准备好你的Windows安装光盘,然后Setup吧!笔者凭着对注册表的了解(经常在里面修修改改)以及以上几大绝招,创造了自上年10月安装Win98至今没有重新安装的个人新记录。

如何清理注册表

??删除多余的DLL等文件
对共享软件感兴趣的朋友可能都知道著名的DLL文件清理工具CleanSweep。它的作用,就是将我们长期在系统中添加、删除程序时,在System目录下留下来的大量无用的DLL文件删除,从而提高系统的工作效率,减少硬盘空间的损失。通过注册表,我们也能发现一些无用的DLL文件信息或是VxD文件信息等并将其删除,从而提高系统的运行效率:在注册表中依次打开“HKEY-LOCAL-MACHINE\Software\Microsoft
\Windows\CurrentVersion\ShareDLLs”,此子键下包含的项目即是应用程序安装完毕后向注册表中写入的DLL文件共享信息,每个DLL文件的键值表明了共享此DLL文件的应用程序数目(在卸载这些应用程序时,卸载程序会给出类似“xxx文件被其他文件共享,是否确定删除”的提示),如果某个DLL文件所对应的数值为0,即表示此DLL文件对系统已没有用处,我们可以直接将其删除。对于其他类型的文件,只要其值为0,我们就可以判断其已没有用处,应当予以删除。

此外,在此子键下,你可能会发现以前删除的许多文件包括文件夹(在硬盘上已不存在)下包含的众多文件,它们的值不一定为0,但你一样可以完全将其删除。

重建作清理
我们知道,通过注册表可以将“添加、删除程序”中的各种无法删除的卸载程序信息删除,那么你有没有想过,你在大量增删各种应用程序和硬件设备驱动程序的同时,不可避免地要向注册表中写入数据。时间长了,这些废弃的数据会越来越多,你的注册表文件也越来越臃肿,不仅使你的“酒吧”因为负担越来越重而速度越来越慢,还会经常导致“酒吧”莫名其妙地罢工或提示出错。

现在,我们就动手来将这些无用的信息删除,方法是重建注册表。首先打开注册表编辑器,在注册表编辑器中单击“文件”菜单下的“导出”命令,将现有完整包含各种软件、硬件资源的注册表导出并为其命名,如命名为dc1.reg(因为要在DOS下执行重建注册表工作,因此最好不要起中文名称)。

然后重新启动计算机进入DOS状态(不能用Windows 98 中的DOS模式,重建注册表时Windows 98 不能运行),然后执行下述命令;

regedit/c dc1.reg(c与文件名之间应留一空格)

regedit/c表示从后面指定的文件中重新生成整个注册表。完成后再启动计算机进入Windows 98 ,你会发现重建的注册表文件比原来小了很多(视Windows 98安装后安装和卸载程序的多少而定)。这样经过“减肥”会使Windows 98的运行效率得到提高。

不过需要注意的是,用这种方法重建注册表时一定要注意的DOS的版本,一般计算机只安装了Windows 98的没什么问题,如果计算机同时安装了多个操作系统,进行此项操作最好在DOS 7.0下进行,至少也应在DOS 6.22下进行。Windows 98重建注册表需要很长的时间,以本人计算机为例,赛扬300A,升技BH6主板,64M PC100内存,昆腾火球7代6.4G硬盘,导出的注册表大小为5.86M,重建注册表约耗费了1小时,所以朋友们在进行这项操作前,最好能先加载磁盘高速缓存程序Smartdrv以便加快处理速度,同时在重建注册表前应先将原有的注册表进行完整备份,以免发生不必要的问题。

清理注册表中的软件信息垃圾
虽然现在绝大多数基于Windows 98 的软件都自带了卸载程序或是为Windows 98的“添加/删除程序”提供了卸载信息,但它们并不自觉地在退出历史舞台时将自身删的干干净净,大多数在卸载时并不会将注册表中的相关信息文件(这些信息主要是软件在初始安装时写到注册表中的有关生产商、ID号、用户名等)删除,导致注册表越来越庞大,无用的软件信息垃圾越来越多。我们可以在注册表中用手工方式删除这些无用的信息:

在注册表中依次打开“HEKY-CURRENT-USER\software”,它的下面包含的主键一般以软件生产商命名,如微软件出品的一系列软件都包含在“Microsoft”主键项中。如果确信某些软件已被删除,就可以将其键值全部删除。

开始→运行→命令 集锦!
winver---------检查Windows版本
wmimgmt.msc----打开windows管理体系结构(WMI)
wupdmgr--------windows更新程序
wscript--------windows脚本宿主设置
write----------写字板
winmsd---------系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------XP自带局域网聊天

mem.exe--------显示内存使用情况
Msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mspaint--------画图板
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令

dxdiag---------检查DirectX信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开DDE共享设置
dvdplay--------DVD播放器

net stop messenger-----停止信使服务
net start messenger----开始信使服务
notepad--------打开记事本
nslookup-------网络管理的工具向导
ntbackup-------系统备份和还原
narrator-------屏幕“讲述人”
ntmsmgr.msc----移动存储管理器
ntmsoprq.msc---移动存储管理员操作请求
netstat -an----(TC)命令检查接口

syncapp--------创建一个公文包
sysedit--------系统配置编辑器
sigverif-------文件签名验证程序
sndrec32-------录音机
shrpubw--------创建共享文件夹
secpol.msc-----本地安全策略
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc---本地服务设置
Sndvol32-------音量控制程序
sfc.exe--------系统文件检查器
sfc /scannow---windows文件保护

tsshutdn-------60秒倒计时关机命令
tourstart------xp简介(安装完成后出现的漫游xp程序)
taskmgr--------任务管理器

eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打开资源管理器

packager-------对象包装程序
perfmon.msc----计算机性能监测程序
progman--------程序管理器

regedit.exe----注册表
rsop.msc-------组策略结果集
regedt32-------注册表编辑器
rononce -p ----15秒关机
regsvr32 /u *.dll----停止dll文件运行
regsvr32 /u zipfldr.dll------取消ZIP支持
rundll32.exe shell32.dll,Control_RunDLL ----------显示控制面板
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1--------显示辅助功能选项
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1--打开系统属性
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1---删除或添加程序
rundll32.exe syncui.dll,Briefcase_Create----桌面上建立公文包
rundll32.exe diskcopy.dll,DiskCopyRunDll----复制软盘驱动器
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0--显示时间属性
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0----显示桌面墙纸属性
rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0-----游戏控制器
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0---音频属性

cmd.exe--------CMD命令提示符
chkdsk.exe-----Chkdsk磁盘检查
certmgr.msc----证书管理实用程序
calc-----------启动计算器
charmap--------启动字符映射表
cliconfg-------SQL SERVER 客户端网络实用程序
Clipbrd--------剪贴板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管理
cleanmgr-------垃圾整理
ciadv.msc------索引服务程序

osk------------打开屏幕键盘
odbcad32-------ODBC数据源管理器
oobe/msoobe /a----检查XP是否激活
lusrmgr.msc----本机用户和组
logoff---------注销命令

iexpress-------木马捆绑工具,系统自带

Nslookup-------IP地址侦测器

fsmgmt.msc-----共享文件夹管理器

utilman--------辅助工具管理器

gpedit.msc-----组策略