
注册表的损坏和解决修复方法
注册表可能出现的问题。
如果注册表受到严重的损害,存取硬件和软件可能会受到很大的限制,甚至系统不能启动。
可能因为一个很小的问题,一个应用程序将不能正常的运行,或者运行的不稳定。
当注册表在运行时是受保护的,所以它不可能被复制,删除,或者改变内容,除非经过一个“验
证过的”程序(比如安装程序,注册表编辑工具,和域用户管理器改变安全策略和浏览器等)。
由于这些保护,注册表是十分安全的,但是并不是完全能防止的。问题仍会发生,你需要作好
认识它们的准备来应付这些问题。
当你注册表出现问题时,我们大多数会听到或者感觉到下面一些症状来认识问题,注册表问
题的特征有:
昨天计算机(或者软件程序)还工作,但是今天它就不工作了;
在我安装软件/硬件前它还工作,但是现在我无法使用它了;
我的系统不象以前那样工作了;
当我试图关闭计算机时,硬盘响个不停却没有什么反应;
我的计算机启动不了了;
天!又是蓝屏,死机了;
注册表变的不正常一般来说有三种原因:
1、应用程序和驱动被添加到系统中
1)在注册表中找出大半的错误与添加和删除程序有关。多数用户自己添加或者更新驱动,应
用程序等等。而且添加和删除都是多次的。
2)程序本身也有问题。没有任何应用程序没有bug或者错误。最好的情况,就是错误微乎其
微,复杂深奥的问题你可能从来没见过。在设计程序时因为受时间和经费的限制,这些错误
被放置不管。作为一个程序员来讲,在程序里有错误可能是次要的,但是它使系统崩溃那就
变成一个大问题了。
3)驱动程序不兼容。个人计算机世界的开放结构体系造成了一定的风险,因为任何类型的部
件组合在一起都是可能的。但测试所有的组合并保证所有设备的兼容性却不太可能。所以当
用在Win95下的驱动被用在Winnt时,某些问题就会产生。
4)在应用程序安装过程中在注册表中添加了不正确的项。在安装时,多数应用程序使用叫一
个叫的文件详细说明例如需要什么磁盘,哪个目录将被建立,从哪里复制文件,
使应用程序工作正常所需要建立的注册表项等等详细信息。如果在中有一个错
误,这个改变也仍然会出现,就会出现严重的问题。
5)一个应用程序导致另一个应用程序和它缺省的文件关联出现错误。当一个应用程序被安装
后,缺省文件类型被记录在注册表中。然后用户可以通过双击来启动应用程序和装载文件。
很多时候,其他应用程序也会使用同样的扩展名。举例说,当一个TIF图形在基于注册表里
的设置被激活时,最后一次装载的程序将会变成一个执行体。有时候,彻底不相同和根本不
兼容的程序会在它们自己的文档文件中使用相同的文件扩展名,启动文档的快捷方式将不会
工作。在用户操作过程中,如果在文件打开方式选择了不正确的程序,就会造成一定的问题。
6)在反安装时出现的错误。当你在控制面板里的添加/删除程序种删除程序时,通过应用程序
自身的反安装特征,或者通过第三方软件,这可能会对注册表造成损坏。除此之外,删除程
序,辅助文件,数据文件和反安装程序可能会试图移去注册表的参数项。因为系统不可能知
道一个应用程序在注册表中所要存取的相关参数项,这将会不经意的移除掉其他应用程序的
参数项。
7)字体的错误。当注册表中字体ID出错,你将在应用程序中看到一种不同的字体。这就让人
感觉很讨厌并可能需要你移去部分或全部字体并取代它们。这经常发生在用户频繁安装和删
除字体的时候。
2、硬件设置改变或者硬件失败
1)如果计算机系统自身有问题,注册表会有损害。通常的,这些错误可以在正确的系统维护
和管理下避免。
2)病毒问题。病毒很隐秘的改变正常的文件和注册表中的部分内容来影响我们的系统。
3)计算机用电如果不正常也会影响计算机系统,用UPS可以避免。
4)磁盘问题。很多时候你会因为容量不够使硬件失败而换掉你的硬盘。如果整块硬盘失败,
当然,你将不得不从备份中恢复你的注册表。其他的则是磁盘独立扇区或者簇的故障。虽然
这些情况在今天的系统不可能发生,但是磁盘表面介质的故障会使得磁盘部分不可读,包括
那些注册表文件位置。
3、用户改动了注册表
1)手工改变注册表。当人们手工编辑注册表,由于数据的复杂性和难懂性使得他们难免容易
犯错误,而且这个错误可能很严重导致系统工作发生中断。
2)拷贝其他注册表是很多用户犯的一个严重错误。因为从其他机器上拷贝来的注册表文件并
不意味着也会在这一个机器上工作正常。对单独的系统来说注册表都是特殊的。甚至计算机
硬件设备相同,拷贝来的注册表在另一个系统上不见得就会工作。如果使用另一个系统的注
册表,多数硬件设备将不会工作,用户和安全问题可能造成数据和应用程序信息无法使用。
保护Windows注册表
保护注册表是很重要的,有很多不同的工具可以实现这一目的。当没有安全设置时,用户可
能的错误会更多。幸运的是,他们可以有几中方法来保护Windows注册表,在注册表失败时
他们可以用额外的拷贝来恢复注册表。下面就是其中的一些方法:
1、使用windows备份软件
注:Win95和Win98备份程序有部分区别,在这里只讲Win98的备份程序。
Win98中包括一个备份程序。当安装Win98时如果你选择“自定义安装”,或者你可以在控制
面板中的添加/删除程序里安装它。当你安装了这个备份程序,从开始菜单|程序|附件|系
统工具|备份可以运行它。启动时,这个程序提示你是否新建一个新备份,打开现有的备份
作业,或者是还原备份文件。
如果选择新建备份,则会有一个备份向导提示你如何去做备份。
如果选择取消向导,那么可以自己手工设置要备份的内容。在备份内容里可以备份网络和本
地驱动器的文件。可以在你想备份磁盘或者文件的选择框打上对号来做备份工作。然后在备
份在何处里填上你做备份的目的位置既可。如果要连同windows注册表一起备份,那么在作
业|选项|高级里,在“备份windows注册表”选择框打对号就可以了。恢复则是备份的逆过程,
这里就不详述了。
2、在安全模式下复制注册表文件
当Win95运行时,注册表文件被锁定,只能用注册表编辑器或者系统自己来进行存取,这些
文件不能够被复制到其他地方。如果你在安全模式下启动Win95,注册表就不会使用同样的方
法载入,这样和就可以被复制。实际上安全模式下系统文件是
受保护的。
在启动时,当计算机显示StartingWindows95...时按F8键进入安全模式。改变
和的隐藏和只读属性这样就可以看到和复制它们。当拷贝完注册表文件,不要
忘记了改回它们只读和隐藏属性。
3、使用微软配置备份来备份你的注册表文件
是Win95(Win98中没有这个软件)所附带的备份软件。它在Win95CD-ROM
上的OtherMiscCFGBACK这个目录。在系统上拷贝所有的文件到任何一个目录,然后在桌
面上建立一个的快捷方式。
要做一个注册表的备份,启动CFGBACK然后在选择的备份名位置输入一个名字然后点备份
继续。
注意:在使用CFGBACK前确定你已经关掉了所有运行的程序。如果有程序在运行,
CFGBACK可能将使得系统崩溃,数据丢失,而且保存的是一个不完整的备份。
4、导出注册表
在我看来,如果你没有磁带机或者其他东西。在中导出选项有一个导出为文
本文件。通常使用一个压缩工具,导出工具选项也可以被用做保存和保护注册表的方法。
要导出在注册表中的任意键,选中这个键然后选择注册|导出注册表文件。这将会复制这个
键,并提示你在那里存放这个键及它的名字,然后用一个扩展名为.REG的文件保存这些数
据。
当我们用文本格式导出注册表。我们可以使用象pkzip或者其他压缩工具压缩它(可以在正常
Dos模式运行的)来节省空间。
为了备份我们可以在windows目录下建立一个用来做备份的文件夹。最少在一个月我们应该
进行定期的备份。因为许多计算机用户订阅或购买带有赠送CD的计算机杂志。这些CD上
有大量的时间限制的共享软件。许多用户从其中安装一个或者多个程序。当软件过期时它们
反安装这些程序,但是这些程序在注册表中留下了一些痕迹。频繁的添加/删除程序会影响注
册表,但是有了备份相对来说我们就比较安全了。
我们必须重新启动计算机到DOS模式下来导入,假定你导出你的注册表为.现在
在命令提示下打
REGEDIT/
注册表编辑器将中的数据导入你的注册表并保存。不过只在命令提示下这个全部
导入的工作才比较可靠。
技巧:如果你的注册表不断的变的庞大,那么先导出它然后象上面那样再逐个导入它。在这个
导入导出过程中注册表中不必要的项将被清除出去。如果你使用Win98那么你可以使用
程序。在windows目录命令提示下打Scanreg/fix来执行命令。
请记住,预防要比修复好的多。注册表太容易被改变了,在发生突然事件时有几个注册表的
备份是解决问题最好的方法。
从注册表故障中恢复
这里有四种不同级别的方法可以从Windows注册表故障中恢复
Restart
Redetect
Restore
Reinstall
让我们来看每一个方法来断定来使用它最适合的时间,并且解决何种类型的问题。
Restart(重新启动)
Win95注册表大部分内容保存在RAM中。如果哪个信息受损,它就必须重新读取正确的信
息。当你重新启动系统,注册表将数据从硬盘读到RAM中就可以使用了。
拿字体ID问题来说。每种字体在系统中用一个ID号来使用。当一个字体被用在一个文档时,
这个字体被这个数字保存并且用一个名字来标识。当字体ID损坏那么字体显示和打印将被其
他字体取代。重新启动系统从硬盘上刷新数据,将产生修复过的字体ID,这样字体显示和打
印就变的正常了。
这也就是为什么Windows系统故障经常在重新启动后就又恢复正常的一个原因。
RedetecttheDevices(重新检测硬件)
如果一个设备工作不正常,那么在注册表中控制设备的设置可能受损了。为了重新设置注册
表,你应该删除并且重装设备的驱动,或者你应该让Win95重新检测它们。很多时候,当一
个设备工作不正常,它们会在设备管理器上此设备前使用一个惊叹号标志显示出来。很明显,
如果设备从来不工作,可能就是其他问题了。但是如果设备以前工作,现在出问题,注册表
就需要被恢复。
要检测一个设备,在控制面板上选择添加新硬件。第一个问题是文你“需要Windows搜索新
硬件吗?”如果你选择是,Win95将做一个彻底的搜索去找“新”设备。任何设置不正确的或者没
找到驱动的设备将被检测到并显示出来。
Restore(恢复)
从CFGBACK中恢复注册表
从CFGBACK中恢复注册表有很多好处。如果你建立了几个备份,你可以选择正确的一个来
恢复。你可以如同做手术般放置排列注册表参数项。
导入注册表文件
象前面章节讲述的那样,一个代替使用备份的方法就是导入一个.REG文件。.REG文件包括
了目的数据位置,所以对这个文件简单的双击就可以将数据放入注册表。它是所有恢复程序
中最简单的,但是也可能造成错误。错误不会是用把数据写入错误的位置,
它很可能出现在用户直接双击注册表文件的时候。
Reinstall(重新安装)
重新安装
最后的方法就是重新安装驱动、应用程序或者Win95。一般来说,它只花费你一个小时左右
时间去做这些事。如果你在现有的文件上重新安装,很多配置信息还被安装在同样的地方。
同样在安装驱动程序时,你应该重新加入配置数据。
实际上找出原因并修复它所花费的时间比重新安装还要多,这就是为什么重新安装在技术支
持上是一个相当普通的“解决方法”。关键的问题在于,“你是否想找出是什么错误,或者你是
否只想让它工作正常?”答案取决于问这个问题的用户情况,发生问题的频繁次数和重新安装
的软件的实用性。
当Windows第一次被安装时它将在启动目录的根目录上创建一个名为SYSTEM.1ST的文
件。这是Windows第一次启动时创建的个简单的文件。你所应该做的就是将这
个文件放到windows目录(在dos模式下)并将它的名字改为。然后重新启动。
然后你就可以得到安装时第一次启动的windows。
因为很多.INI,.DLL和其他文件的改变,这种方法的成功机率大概只超过50%。比如当装IE4.0
后系统和注册表将有一个彻底的改变。我们的system.1st文件虽然包含了一个Dll文件的参
考,但它可能更新或者改变版本号。
这里就是几个在注册表出故障的时候恢复它的工具和方法。你的数据可能会安全恢复,但是
不管你用什么方法,除了重新格式化硬盘,最好的方法就是做好系统注册表的备份工作。
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计
算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注
册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有
用户的。
HKEY_LOCAL_MACHINEAppEvents
为了以后在客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents
键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINEConfig
这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配
置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比
如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,
那就只会有0001这个键
HKEY_LOCAL_MACHINEConfig0001Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),
可以修改分辨率来解决。进入安全模式,运行,在这个键的Resolution键值中
把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。
HKEY_LOCAL_MACHINEConfig0001System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINEConfig0001SystemCurrentControlSetControlPrintPrinters
在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除
打印机会调整这个列表
HKEY_LOCAL_MACHINEEnum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举
在启动时通过不同的.ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会
显示在这里。子键包括BIOS,ESDI,FLOP,HTREE,ISAPNP,Monitor,Network,Root,
SCSI,和VIRTUAL。子键名表示它们各自的硬件设备信息。
HKEY_LOCAL_MACHINEEnumBIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一
个键的详细说明,举例,*pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功
能,它就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINEEnumRoot
Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插
即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig
的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINEEnumNetwork
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协
议。
HKEY_LOCAL_MACHINEHARDWARE
hardware子键包括了两个多层的子键:DEscriptION键,它包含了中央处理器和一个
浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个
hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINENetwork
这个键仅保存网络登陆信息。所有网络服务细节都保存在
HKEY_LOCAL_MACHINEEnumNetwork这个键中。这个键有一个子键,logon,包括了
lmlogon(本地机器登陆?0=fal1=true)的值,logonvalidated(必须登陆验证),策略
处理,主登陆方式(Windows登陆,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINESECURITY
curity有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存
取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级
安全功能和NT兼容性上
HKEY_LOCAL_MACHINESOFTWARE
这个键列出了所有已安装的32位软件和程序的.ini文件。它包括了变化,依靠软件安
装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在MicrosoftWindowsCurrentVersion下发现了一些有意思的设置,它有如下子
键:
hs:你曾经安装过的所有32位软件的位置。
s,Compression,ControlsFolder:包括下控制面板象显示属性那样属性条的
附件。
,explorer:很多有意思的子键如NamespacekeysofDesktop和My
Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己
的提示。
ions:一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适
合的目标类型。
,fontsize,FSTemplates:系统属性条中所选择文件系统模板,服务器,桌面
计算机或者笔记本电脑信息。
-DOSEmulation:包括一个应用程序兼容子键为大量过时的程序二进制键所
设。
-DOSOptions:在dos模式下的设置,如,cd-roms等。
k:网络驱动的配置。
,Policies:系统管理员认为你不应该去做的事。
eList:所有可以登陆你计算机的用户名列表。
11.在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹
中。它们在HKEY_LOCAL_MACHINEMicrosoftWindowsCurrentVersion下的子键中被
执行。
Run:程序在启动时运行
RunOnce:windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之
后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices:它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较
重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce:它只运行一次,但是是“系统自身”的安装(大量的windows安装
参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动
目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得
木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去
掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
DLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等
级。
xtensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
crap:这个包含了一个PriorityCacheformats的子键,它包括了一个空的有
限值,它更象过去SmartDrive命令行参数的派生。
nes:主键值是你现在的时区;子键定义了所以可能的时区。
all:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装
程序的路径。和安装向导相似.......)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于windowsnt,win95只包括
限制驱动的控制设置信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改
变在很多地方,一个丢失的项会使这个系统变的不稳定
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键
包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesArbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括
了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesClass
class键包括了所有win95支持的设备class控制,这些和你在添加新硬件出现的硬
件组很类似,还包括了这些设备如何安装的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesinetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更
高版本才出现。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者
的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNWNP32
nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证
过程和证明者的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认证参数,主机信息,和为
了建立一个拨号连接工作的协议信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它包括了允许的管理,配置
陷阱,和有效的团体。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesVxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95自动管理它们,所以不必
要用注册表编辑器编辑它们,所以的静态vxds用子键列出。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebPost
webpost键包括了所有装载的internet邮局的设置,如果你连接一个isp,并且它列出
载这里,你应该给自己选则一个服务器。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinsock
这个键列出了当连接到internet上winnsock文件的信息,如果列出了不正确的文件,
你将不会连接上internet。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinTrust
wintrust功能是检查从Internet上下载来的文件是否有病毒,它可以确保你得到干净
安全的文件。
注册表(Registry)是微软公司从Windows95系统开始(至目前最新
Win2000系统依然使用的是它),引入用于代替原先Win32系统里.ini
文件,管理配置系统运行参数的一个全新的核心数据库。在这个数据
库里整合集成了全部系统和应用程序的初始化信息;其中包含了硬件
设备的说明、相互关联的应用程序与文档文件、窗口显示方式、网络
连接参数、甚至有关系到计算机安全的网络享设置。它与老的win32
系统里的ini文件相比,具有方便管理,安全性较高、适于网络操作
等特点。
在形式上,注册表与INI文件有两个显着的特点:
1.注册表采用的是二进制形式登录数据,INI文件采用的则是简
单的文本形式登录数据
2.注册表支持子关键字,各级子关键字都有自己的“键值”,INI文
件中则支持节以及节中的参数。
在功能上,注册表与.INI文件相比,主要有以下三个特点:
1.注册表允许对硬件、某些操作系统参数、应用程序和设备驱动
程序进行跟踪配置,这使得某些配置的改变可以在不重新启动系统的
情况下立即生效。
2.注册表中登录的硬件部分数据可以用来支持Win95的即插即
用特性。当Win95检测到机器上的各种设备时,就把有关数据保存
到注册表中。通常是在安装时进行这种检测的,但Win95启动或原
有配置改变时,也要进行检测。如安装一个新的硬件时,Win95将检
查注册表,以便确定哪些资源已被占用,这样就可以避免新设备与原
有设备之间的资源冲突。
3.通过注册表,管理人员和用户可以在网络上检查系统的配置和
设置,使得远程管理得以实现。
预定义关键字
注册表采用“关键字”及其“键值”来描述登录项及其数据。所有的
关键字都是以“HKEY”作为前缀开头。实际上,关键字是一个句柄。
这种约定使得应用程序开发人员可以在使用注册表API时把它用于
程序之中。为此,Win95提供了若干API函数,以便在开发Win95
应用程序时添加、修改、查询和删除注册表的登录项。关键字可以分
为两类:一类是由系统定义的,通常称为“预定义关键字”;另一类是
由应用程序定义的,安装的应用软件不同,其登录项也就不同。
由于注册表保存的信息中,含有许多系统启动时必要的参数,一
旦出现问题将导致系统崩溃等严重后果,此外由于注册表里含有许多
的无法通过操作系统本身进行操作的系统参数,因此了解并学会使用
注册表,对每一个老鸟来讲都是一件不可缺少。
HKEY_LOCAL_MACHINE
目录
概念
描述
编辑本段概念
HKEY_LOCAL_MACHINE保存了注册表里的所有与这台计
算机有关的配置信息,只是一个公共配置信息单元,对于读者来
说,只需做一个大致的了解即可。
HKEY_LOCAL_MACHINE根键包含5个子键,分别为
Hardware子键、Sam子键、Security子键、Software子键和
System子键。
编辑本段描述
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处
理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上
所有的软件设置。(比如文件的位置,注册和未注册的状态,版
本号等等)这些设置和用户无关,因为这些设置是针对使用这个
系统的所有用户的。
HKEY_LOCAL_MACHINEAppEvents
为了以后在客户机上运行客户机/服务器这样的应用程序,在
Win95/98中AppEvents键是空的。应用程序实际上都驻留网络
服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINEConfig
这个键保存着你计算机上所有不同的硬件设置(这些从控制
面板的系统属性中硬件配置文件中可以创建)。这些配置在启动
时通常被复制到HKCC。每个配置会被用一个键(比如0001或
者0002等等)来保存,每个都是一个独立的配置。如果你只有
一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINEConfig0001Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置
和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致
Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全
模式,运行,在这个键的Resolution键值中把数据
值修改为640,480或者800,600这样的低分辨率,然后重新启动
计算机即可。
HKEY_LOCAL_MACHINEConfig0001System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINEConfig0001SystemCurrentControl
SetControlPrintPrinters
在这个键下面,有一个键是为系统上每一个打印机设置的,
通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINEEnum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信
息。Win95使用总线列举在启动时通过不同的.ini文件来检测硬
件信息。那些在启动时被安装的和被检测到的硬件会显示在这
里。子键包括BIOS,ESDI,FLOP,HTREE,ISAPNP,Monitor,
Network,Root,SCSI,和VIRTUAL。子键名表示它们各自的硬
件设备信息。
HKEY_LOCAL_MACHINEEnumBIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一
套代码数列出,包括每一个键的详细说明,举例,*pnp0400是
并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会
别列入到Enum下的Root键中
HKEY_LOCAL_MACHINEEnumRoot
Root键包括所有非即插即用设备的信息。在这里,我们可以
迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,
这个设备必须符合Win95中一个键名为ForcedConfig的硬件设
置,这个不会改变。
HKEY_LOCAL_MACHINEEnumNetwork
win95的网络功能在这个键有详细说明,子键包括了每个已
经安装的主要的服务和协议。
HKEY_LOCAL_MACHINEHARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,
它包含了中央处理器和一个浮点处理器的信息。还有一个设备映
射键,它下面的串行键列出你所有的com端口。这个hardware
键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINENetwork
这个键仅保存网络登陆信息。所有网络服务细节都保存在
HKEY_LOCAL_MACHINEEnumNetwork这个键中。这个键有
一个子键,logon,包括了lmlogon(本地机器登陆?0=fal
1=true)的值,logonvalidated(必须登陆验证),策略处理,主
登陆方式(Windows登陆,微软网络客户方式等),用户名和用
户配置。
HKEY_LOCAL_MACHINESECURITY
curity有两个子键,第一个是存取(它最终致使一个远程
键列出网络安全资源,存取权限等)和提供(包括列出网络地址
和地址服务器),这个键被保留用在以后使用高级安全功能和NT
兼容性上
HKEY_LOCAL_MACHINESOFTWARE
这个键列出了所有已安装的32位软件和程序的.ini文件。它
包括了变化,依靠软件安装。那些程序的控制功能在这里的子键
中列出。多数子键简单的列出了安装软件的版本号。
我们在MicrosoftWindowsCurrentVersion下发现了一些
有意思的设置,它有如下子键:
hs:你曾经安装过的所有32位软件的位置。
s,Compression,ControlsFolder:包括下控制面
板象显示属性那样属性条的附件。
,explorer:很多有意思的子键如Namespacekeys
ofDesktop和MyComputer----它们指出了回收站和拨号网络的
CLSID行----和提示子键可以让你建立自己的提示。
ions:一个扩展联系的列表,当前相关联的扩展名
和比特定的执行文件更适合的目标类型。
,fontsize,FSTemplates:系统属性条中所选择文件
系统模板,服务器,桌面计算机或者笔记本电脑信息。
-DOSEmulation:包括一个应用程序兼容子键为大量
过时的程序二进制键所设。
-DOSOptions:在dos模式下的设置,如,
cd-roms等。
k:网络驱动的配置。
,Policies:系统管理员认为你不应该去做的事。
eList:所有可以登陆你计算机的用户名列表。
11.在Windows启动时运行的程序的神秘之处是它们并不在
开始菜单的启动文件夹中。它们在
HKEY_LOCAL_MACHINEMicrosoftWindowsCurrentVersion
下的子键中被执行。
Run:程序在启动时运行
RunOnce:windows初始化时程序在启动时只运行一次,这
个经常用在当安装软件之后需要重新启动系统的时候,所以这个
键一般都是空的。
RunServices:它就象Run一样,但是包含了“服务”,它不
象一般的程序它们是比较重要的或者是“系统”程序。但是它们不
是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce:它只运行一次,但是是“系统自身”的安
装(大量的windows安装参数:通常键值包括了系统目录位置,
和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般
是在Run中),这样使得木马软件可以随着windows启动而启动
并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行
程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去
掉它)。
DLLs:共享DLL的列表,每一个都给出了在一个
不可知系统的一个数字等级。
xtensions:列出了“被认可的”OLE注册条,和相应
的CLSID连接。
crap:这个包含了一个PriorityCacheformats的子
键,它包括了一个空的有限值,它更象过去SmartDrive命令行
参数的派生。
nes:主键值是你现在的时区;子键定义了所以
可能的时区。
all:这个保存了程序在添加/删除程序对话框的显
示;子键包含了指向反安装程序的路径。和安装向导相似.......)
winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于
windowsnt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
这个子键包括了win95控制面板中的信息。不要编辑这些信
息,因为一些小程序的改变在很多地方,一个丢失的项会使这个
系统变的不稳定
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
s
这个键包括了所有win95的标准服务。所有被添加的服务和
设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sArbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解
决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲
突和IRQ冲突。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sClass
class键包括了所有win95支持的设备class控制,这些
和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何
安装的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sinetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在
你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sMSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它
包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sNWNP32
nenp32键描述了windows客户如何在netware网络中工作
功能,它包括了关于认证过程和证明者的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sRemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认
证参数,主机信息,和为了建立一个拨号连接工作的协议信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sSNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它
包括了允许的管理,配置陷阱,和有效的团体。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sVxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95
自动管理它们,所以不必要用注册表编辑器编辑它们,所以的静
态vxds用子键列出。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sWebPost
webpost键包括了所有装载的internet邮局的设置,如果你
连接一个isp,并且它列出载这里,你应该给自己选则一个服务
器。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sWinsock
这个键列出了当连接到internet上winnsock文件的信息,
如果列出了不正确的文件,你将不会连接上internet。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
sWinTrust
wintrust功能是检查从Internet上下载来的文件是否有病
毒,它可以确保你得到干净安全的文件。
什么是注册表?
注册表因为它复杂的结构和没有任何联系的CLSID键使得
它可能看上去很神秘。不幸的是,微软并没有完全公开讲述
关于注册表正确设置的支持信息,这样使得注册表看上去更
不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系
统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这
样,因为用户对这方面的缺乏了解使得注册表更多的出现故
障。
Windows注册表是帮助Windows控制硬件、软件、用户环
境和Windows界面的一套数据文件,注册表包含在Windows
目录下两个文件和里,还有它们的备份
0和0。通过Windows目录下的
程序可以存取注册表数据库。在以前,在windows
的更早版本(在win95以前),这些功能是靠,
和其他和应用程序有关联的.ini文件来实现的.
在windows操作系统家族中,和这两个文
件包含了操作系统所有的控制功能和应用程序的信息,
管理计算机硬件而管理桌面和应用程序。
所有驱动、字体、设置和参数会保存在.ini文件中,任何新程
序都会被记录在.ini文件中。这些记录会在程序代码中被引
用。因为受和文件大小的限制,程序员添
加辅助的.INI文件以用来控制更多的应用程序。举例来说,
微软的Excel有一个文件,它包含着选项、设置、
缺省参数和其他关系到Excel运行正常的信息。在
和中只需要指出的路径和文件名即可。
最开始,和控制着所有windows和应用程
序的特征和存取方法,它在少数的用户和少数应用程序的环
境中工作的很好。随着应用程序的数量和复杂性越来越大,
则需要在.ini文件中添加更多的参数项。这样下来,在一个变
化的环境中,在应用程序安装到系统中后,每个人都会更
改.ini文件。然而,没有一个人在删除应用程序后删除.ini文
件中的相关设置,所以和这个两个文件会
变的越来越大。每增加的内容会导致系统性能越来越慢。而
且每次应用程序的升级都出现这样的难题:升级会增加更多
的参数项但是从来不去掉旧的设置。而且还有一个明显的问
题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,
软件商自己开始支持自己的.ini文件,然后指向特定的ini文
件如和文件。这样下来多个.ini文件影响
了系统正常的存取级别设置。如果一个应用程序的.ini文件和
文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文
件,最后扩展成对于32位操作系统和应用程序包括了所有功
能下的东东.注册表是一套控制操作系统外表和如何响应外
来事件工作的文件。这些“事件”的范围从直接存取一个硬件
设备到接口如何响应特定用户到应用程序如何运行等等。注
册表因为它的目的和性质变的很复杂,它被设计为专门为32
位应用程序工作,文件的大小被限制在大约40MB。
注册表都做些什么?
注册表是为WindowsNT和Windows95中所有32位硬件/
驱动和32位应用程序设计的数据文件。16位驱动在Winnt
下无法工作,所以所有设备都通过注册表来控制,一般这些
是通过BIOS来控制的。在Win95下,16位驱动会继续以实
模式方式设备工作,它们使用来控制。16位应用
程序会工作在NT或者Win95下,它们的程序仍然会参考
和文件获得信息和控制。
在没有注册表的情况下,操作系统不会获得必须的信息来运
行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据
库。当操作系统需要存取硬件设备,它使用驱动程序,甚至
设备是一个BIOS支持的设备。无BIOS支持设备安装时必
须需要驱动,这个驱动是独立于操作系统的,但是操作系统
需要知道从哪里找到它们,文件名、版本号、其他设置和信
息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信
息给操作系统,这样应用程序可以被找到,正确数据文件的
位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按
钮条、窗口状态和其他可选项。它同样也保存了安装信息(比
如说日期),安装软件的用户,软件版本号和日期,序列号等。
根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控
制的方法是基于用户和计算机的,而不依赖于应用程序或驱
动,每个注册表的参数项控制了一个用户的功能或者计算机
功能。用户功能可能包括了桌面外观和用户目录。所以,计
算机功能和安装的硬件和软件有关,对所以用户来说项都是
公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为
个人设置的,同样的,驱动可能是用户指定的,但在很多时
候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类
型的例子是安装一个应用程序,不管是哪个用户,程序的可
用性和存取是不变的,然而,运行程序图标依赖于网络上登
陆的用户。网络协议可用性和优先权基于计算机,但是当前
连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
没有了注册表,Win95和Winnt就不太可能存在。它们实在
太复杂了,以致于用过去的.ini文件无法控制,它们的扩展能
力需要几乎无限制的安装和使用应用程序,注册表实现了它。
然而,注册表比.ini文件更复杂,理解它如何工作,它做什么
和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多
个应用程序的交互,比如复制和粘贴,它也控制所有的硬件
和驱动程序。虽然多数可以通过控制面板来安装和设置,理
解注册表仍是做Winnt和Win95系统管理基本常识。
二、注册表的结构
注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它
是多层次式的。在不同系统上注册表的基本结构相同。其中
的复杂数据会在不同方式上结合,从而产生出一个绝对唯一
的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存
在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,
。
Win95中所有系统注册信息保存在windows目录下的
文件里。所有硬件设置和软件信息也保存在这
个文件。它要比NT注册表文件简单的多,因为这里并不需
要更多的控制。Win95被设计为一个网络的客户或者单独工
作的系统,所以用户控制或者安全级别和NT不一样。这使
得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的
里。如果你在控制面板|密码|用户配置文件中创建并
使用多于一个用户的配置文件,每个用户就会有在
下它自己的
文件。在启动时,系统将记录你的登陆,从你目录
中的配置文件(信息)将被装入,以用来保持你
自己的桌面和图标。
控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。
控制键使得找到和编辑信息项组更容易。因此,注册表使用
这些条目。下面是六个控制键
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注册表并不兼容。从Win95向Winnt升级
需要你重新安装32位应用程序,重新在桌面上创建图标,并
重新建立用户环境。
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑
好象独立的键,其实HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG是HKEY_LOCAL_MACHINE
的一部分。HKEY_CURRENT_USER是HKEY_USERS的一
部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT
和HKEY_CURRENT_CONFIG的所有内容。每次计算机启
动时,HKEY_CURRENT_CONFIG和
HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。
HKEY_CLASSES_ROOT其实就是
HKEY_LOCAL_MACHINESOFTWAREClass,但是在
HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条
理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。
当一个域成员计算机启动并且一个用户登陆,域控制器自动
将信息发送到HKEY_CURRENT_USER里,而且
HKEY_CURRENT_USER信息被映射到系统内存中。其他用
户的信息并不发送到系统,而是记录在域控制器里。
键和子键
数据被分割成多层次的键和子键,建立分层次(就象Exploer
一样)结构更易于编辑。每个键有成组的信息而且根据在其
中的数据类型被命名。每个键在它的文件夹图标上都有一个
加号(+)标志子键说明在它下面还有更多内容的东西。当点
开它的时候,文件夹的加号标志被替换成一个减号(-)标志,
然后显示出下一级的子键。
所有软件,硬件,windows工作的设置都存放在
HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享
信息也包括在这个键中。用户权限,安全策略,共享信息可
以通过WindowsNT域用户管理器,Explorer和Win95中控
制面板来设置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的
信息:
在文件和应用程序之间所有的扩展名和关联;
所有的驱动程序名称;
类的ID数字(所要存取项的名字用数字来代替);
DDE和OLE的信息;
用于应用程序和文件的图标;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE
中当前硬件配置信息的映射。如果系统只有一个配置文件,
也就是原始配置,数据将一直在同样的地方。在控制面板|
系统|硬件配置文件|创建一个额外的配置使额外配置信息放
入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文
件时,当每次计算机启动时将给出一个提示让你选择一个配
置文件。在Winnt中,在启动时你可以按空格键来选择上次
正常启动时硬件配置文件。根据硬件配置文件选择的不同,
特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上
它并不被写入硬盘驱动器中。Win95的一个优点是,在系统
启动时HKEY_DYN_DATA这个控制键储存收集到的即插即
用信息并配置它们。它保存在内存中,Win95用它来控制硬
件。因为是在内存中,所以它不从硬盘中读取,每次当你启
动计算机时,配置都有可能会不一样。在启动时Win95必须
计算超过1600种可能的配置。所以,如果系统改变既定的
设置而没有报告给Win95那么潜在的问题就可能发生。系统
大多数时间工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。
虽然它包含了所有独立用户的设置,但在用户未登陆网络时
用户的设置是不可用的。这些设置告诉系统哪些图标会被使
用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,
和控制面板上什么选项和设置可用。
HKEY_CURRENT_USER
用来保存当前用户和缺省用户的信息,
HKEY_CURRENT_USER仅映射当前登陆用户的信息。
各主键的简单介绍
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处
理键。HKLM键保存着计算机的系统信息。它包括网络和硬
件上所有的软件设置。(比如文件的位置,注册和未注册的状
态,版本号等等)这些设置和用户无关,因为这些设置是针
对使用这个系统的所有用户的。
HKEY_LOCAL_MACHINEAppEvents
为了以后在瘦客户机上运行客户机/服务器这样的应用程
序,在Win95/98中AppEvents键是空的。应用程序实际上
都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINEConfig
这个键保存着你计算机上所有不同的硬件设置(这些从控制
面板的系统属性中硬件配置文件中可以创建)。这些配置在启
动时通常被复制到HKCC。每个配置会被用一个键(比如
0001或者0002等等)来保存,每个都是一个独立的配置。
如果你只有一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINEConfig0001Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置
和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致
Windows不能启动时(黑屏),可以修改分辨率来解决。进入
安全模式,运行,在这个键的Resolution键值中
把数据值修改为640,480或者800,600这样的低分辨率,然
后重新启动计算机即可。
HKEY_LOCAL_MACHINEConfig0001System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINEConfig0001SystemCurrentCon
trolSetControlPrintPrinters
在这个键下面,有一个键是为系统上每一个打印机设置的,
通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINEEnum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信
息。Win95使用总线列举在启动时通过不同的.ini文件来检
测硬件信息。那些在启动时被安装的和被检测到的硬件会显
示在这里。子键包括BIOS,ESDI,FLOP,HTREE,ISAPNP,
Monitor,Network,Root,SCSI,和VIRTUAL。子键名表示
它们各自的硬件设备信息。
HKEY_LOCAL_MACHINEEnumBIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套
代码数列出,包括每一个键的详细说明,举例,*pnp0400是
并行口LPT1的键。如果LPT1并不具备即插即用功能,它
就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINEEnumRoot
Root键包括所有非即插即用设备的信息。在这里,我们可以
迅速断定哪些设备是即插即用,那些不是。比如SCSI适配
器,这个设备必须符合Win95中一个键名为ForcedConfig
的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINEEnumNetwork
win95的网络功能在这个键有详细说明,子键包括了每个已
经安装的主要的服务和协议。
HKEY_LOCAL_MACHINEHARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,
它包含了中央处理器和一个浮点处理器的信息。还有一个设
备映射键,它下面的串行键列出你所有的com端口。这个
hardware键仅保存超级终端程序的信息,及数学处理器和串
行口。
HKEY_LOCAL_MACHINENetwork
这个键仅保存网络登陆信息。所有网络服务细节都保存在
HKEY_LOCAL_MACHINEEnumNetwork这个键中。这个键
有一个子键,logon,包括了lmlogon(本地机器登陆?0=fal
1=true)的值,logonvalidated(必须登陆验证),策略处理,
主登陆方式(Windows登陆,微软网络客户方式等),用户
名和用户配置。
HKEY_LOCAL_MACHINESECURITY
curity有两个子键,第一个是存取(它最终致使一个远程
键列出网络安全资源,存取权限等)和提供(包括列出网络
地址和地址服务器),这个键被保留用在以后使用高级安全功
能和NT兼容性上
HKEY_LOCAL_MACHINESOFTWARE
这个键列出了所有已安装的32位软件和程序的.ini文件。它
包括了变化,依靠软件安装。那些程序的控制功能在这里的
子键中列出。多数子键简单的列出了安装软件的版本号。
我们在MicrosoftWindowsCurrentVersion下发现了一些
有意思的设置,它有如下子键:
hs:你曾经安装过的所有32位软件的位置。
s,Compression,ControlsFolder:包括下控制面
板象显示属性那样属性条的附件。
,explorer:很多有意思的子键如Namespacekeys
ofDesktop和MyComputer----它们指出了回收站和拨号网
络的CLSID行----和提示子键可以让你建立自己的提示。
ions:一个扩展联系的列表,当前相关联的扩展名
和比特定的执行文件更适合的目标类型。
,fontsize,FSTemplates:系统属性条中所选择文件
系统模板,服务器,桌面计算机或者笔记本电脑信息。
-DOSEmulation:包括一个应用程序兼容子键为大量
过时的程序二进制键所设。
-DOSOptions:在dos模式下的设置,如,
cd-roms等。
k:网络驱动的配置。
,Policies:系统管理员认为你不应该去做的事。
eList:所有可以登陆你计算机的用户名列表。
11.在Windows启动时运行的程序的神秘之处是它们并不在
开始菜单的启动文件夹中。它们在
HKEY_LOCAL_MACHINEMicrosoftWindowsCurrentVersi
on下的子键中被执行。
Run:程序在启动时运行
RunOnce:windows初始化时程序在启动时只运行一次,这
个经常用在当安装软件之后需要重新启动系统的时候,所以
这个键一般都是空的。
RunServices:它就象Run一样,但是包含了“服务”,它不
象一般的程序它们是比较重要的或者是“系统”程序。但是它
们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce:它只运行一次,但是是“系统自身”的安
装(大量的windows安装参数:通常键值包括了系统目录位
置,和win95更新,可选项安装组件,和windows启动目录
的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般
是在Run中),这样使得木马软件可以随着windows启动而
启动并且很隐秘。在这里可以查看不正常的启动项和去掉无
用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,
在这里可以去掉它)。
DLLs:共享DLL的列表,每一个都给出了在一个
不可知系统的一个数字等级。
xtensions:列出了“被认可的”OLE注册条,和相应
的CLSID连接。
crap:这个包含了一个PriorityCacheformats的子
键,它包括了一个空的有限值,它更象过去SmartDrive命令
行参数的派生。
nes:主键值是你现在的时区;子键定义了所以
可能的时区。
all:这个保存了程序在添加/删除程序对话框的显
示;子键包含了指向反安装程序的路径。和安装向导相
似.......)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于
windowsnt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetCon
trol
这个子键包括了win95控制面板中的信息。不要编辑这些信
息,因为一些小程序的改变在很多地方,一个丢失的项会使
这个系统变的不稳定
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vices
这个键包括了所有win95的标准服务。所有被添加的服务和
设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesArbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解
决的信息。四个子键包括了内存地址,冲突,DMA,I/O端
口冲突和IRQ冲突。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesClass
class键包括了所有win95支持的设备class控制,这些和
你在添加新硬件出现的硬件组很类似,还包括了这些设备如
何安装的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesinetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在
你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesMSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它
包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesNWNP32
nenp32键描述了windows客户如何在netware网络中工作
功能,它包括了关于认证过程和证明者的信息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesRemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认
证参数,主机信息,和为了建立一个拨号连接工作的协议信
息。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesSNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它
包括了允许的管理,配置陷阱,和有效的团体。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesVxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95
自动管理它们,所以不必要用注册表编辑器编辑它们,所以
的静态vxds用子键列出。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesWebPost
webpost键包括了所有装载的internet邮局的设置,如果你
连接一个isp,并且它列出载这里,你应该给自己选则一个服
务器。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesWinsock
这个键列出了当连接到internet上winnsock文件的信息,如
果列出了不正确的文件,你将不会连接上internet。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSer
vicesWinTrust
wintrust功能是检查从Internet上下载来的文件是否有病
毒,它可以确保你得到干净安全的文件。
HKEY_CLASSES_ROOT
在注册表中HKEY_CLASSES_ROOT是系统中控制所有数
据文件的项。这个在Win95和Winnt中是相通的。
HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有
和执行文件相关的文件。它同样也决定了当一个文件被双击
时起反应的相关应用程序。
HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的
发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT
和HKEY_LOCAL_MACHINESoftwareClass是相同的。
程序员在运行他们的启动程序时不需要担忧实际的位置,相
反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就
可以了。
在Windows用户图形界面下,每件事----每个文件,每个目
录,每个小程序,每个连接,每个驱动---都被看做一个对象;
每个对象都有确定的属性和它联系。HKCR包含着对象类型
和它们属性的列表。HKCR主要的功能被设置为:
一个对象类型和一个文件扩展名关联
一个对象类型和一种图标关联
一个对象类型和一个命令行动作的关联
定义对象类型相关菜单选项和定义每一个对象类型属性选
项
在Win95中,相关菜单就是当你鼠标右击一个对象时所弹出
的菜单;属性就是当你选择属性项后一个展开的对话框。用
简单术语来说就是在改变HKCR中的设置可以改变一个给定
文件扩展名缺省的关联。改变一个文件类型的缺省图标,和
添加或者删除给定对象类型的弹出菜单内容(或者所有的对
象类型)
HKCR包括了三种基本类型的子键
???或者文件扩展名子键
文件扩展名子键在弹出菜单上连接文件扩展名到对象类型和
相关操作,属性项,和相关操作。
object类型子键
对象类型子键定义了一个对象类型在它缺省图标的项,它的
弹出菜单和属性项,它的相关操作和它的CLSID连接。
CLSID子键
在Windows下每件事都被用一个数字取代它的名字来对
待。就象人往往是用名字来处理事情一样。CLSID是标识所
有列出的图标,应用程序,目录,文件类型等等对象的数字。
是微软为制造商分配的,每一个都必须是唯一的。制造商将
CLSID放入安装程序文件这样就可以在安装时更新注册表。
注册表是应用程序进行时它们需要关于做什么的指示的数据
库。比如说,假定你有一个微软Excel7电子数据表的Word
7文档,当你在Word中双击这个电子数据表,应用程序菜
单就会变成Excel的菜单而且电子数据表进入编辑状态,就
好象你在Excel中一样。它是如何知道该做什么呢?每个
Excel7创建的文件都有Excel的CLSID连接。Word读这个
CLSID后,到注册表中寻找指示,依赖CLSID下的数据运
行.DLL文件或者应用程序。
CLSID子键为对象类型提供了OLE和DDE信息和图标。相
关菜单,或者包含在它子键中的属性项信息。这个可能是多
数让人看到后觉得“恐怖”的键。每个CLSID数必须是唯一的,
实际上,为了这个目的微软已经出产了CLSID-产生程序--这
个结果导致你往往得到32位16进制的数字串,除非你是程
序员,否则多数部分键看起来是很枯燥的。它们包括内存管
理模式,客户机/服务器配置,和OLE处理的.dll连接。
关于子键的一点注解
1)shell:Shell键有个一”action“子键,如同”open“一样,这里
有一个command子键;command子键有一个缺省句值,它
包含了运行程序的命令行。将一个”open“子键放在一个对象
类型的shell子键中会在这个对象类型的弹出菜单上多出一
个”open“选项,给这个open子键一个command(缺省命令
行"C:%1")子键会使得打开这个对
象类型时使用笔记本做为缺省应用程序。其他操作选项包括
View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex键有一个子键。它们包含的每一个子键指
向一个为对象类型执行OLE和DDE功能的CLSID项(比如
说快速查看,一个菜单处理子键下指向一个有句值的CLSID
键列出了包含了文件浏览功能的.dll文件)
3)shellnew:ShellNew包含了一个“command”句,它包含了一
个打开对象类型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子键包含了一个“default”句,?/td>
即插即用简单介绍
如果您编写的VxD需要运行于Win95下,您必须提供设备信息文件
(.INF),这个文件可以告诉Win95如何安装VxD,如何配置设备。
如果您需要INF文件的详细内容可以在Win95DDK中找到。如果您
在Win95下的VxD是为PCI,PCMCIA或PNPISA设备编写的,
您应该让它支持即插即用,也就是PNP,PNP的作用就是您编写的
VxD应该可以使用配置管理器(也是一个VxD)服务找到供这个设
备使用的系统资源,请注意,是从一个服务中获得信息,而不是从一
个INI文件,也是硬件编码中。
如果需要PNP功能,您的VxD必须可以处理由配置管理器发送来的
PNP_New_DevNode消息,程序还应该可以通过调用
CM_RegisterDeviceDriver注册自己为此设备的驱动程序。在调用这
个函数时,您传送给CM一个回叫函数,CM会在资源被指定后通知
您,并返回函数码。当您的回叫函数通过CONFIG_START调用时,
调用函数CM_GetAllocLogConf找出提供给设备使用的系统资源。这
个调用会自动填充CM_CONFIG结构,这个结构中有相应的数据域
说明设备使用的I/O地址,IRQ等等信息。
对于某些类型的VxD,包括SCSIMiniPort驱动程序,网络驱动程序
和VCOMN端口驱动程序,可以使用另一种方法来获得配置信息。
这几个类型是不同的,因为每种情况下会有不同的VxD充当驱动程
序装载程序,而实际上,也正在驱动程序装载程序和CM打交道,而
不是驱动程序VxD。这些驱动程序可能需要使用由驱动程序装载程序
提供的配置服务,而不是和CM直接打交道。
在没有得到正确的注册表入口前之前,配置管理器是不会向用户程序
发送PNP_New_DevNode消息的。而取得注册表入口的最好办法不
是手工进行,而是使用INF文件。Win95将在看到设备时向用户提
示它需要INF文件,对于PCI,PCMCIA和ISAPNP设备,当用户
物理上连接这个设备时这一切会自动发生;对于其它设备,用户必须
运行设备管理器中的“添加新硬件”来达到同样的效果。Win95会使用
提供好的INF文件设置注册表入口。
Windows注册表是帮助Windows控制硬件、软件、用户环境和
Windows界面的一套数据文件,注册表包含在Windows目录下两个
文件和里,还有它们的备份0和
0。通过Windows目录下的程序可以存取注册表
数据库。在以前,在windows的更早版本(在Win95以前),这些
功能是靠,和其他和应用程序有关联的.ini文件来
实现的.
在windows操作系统家族中,和这两个文件
包含了操作系统所有的控制功能和应用程序的信息,管理
计算机硬件而管理桌面和应用程序。所有驱动、字体、设置
和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这
些记录会在程序代码中被引用。因为受和文件大
小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。
举例来说,微软的Excel有一个文件,它包含着选项、
设置、缺省参数和其他关系到Excel运行正常的信息。在
和中只需要指出的路径和文件名即可。
早在Dos和Win3.x的时代,大部分的应用程序都是采用了ini
文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。
和控制着所有windows和应用程序的特征和存取
方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应
用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参
数项。
这样下来,在一个变化的环境中,在应用程序安装到系统中后,
每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删
除.ini文件中的相关设置,所以和这个两个文件会
变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应
用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来
不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺
寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文
件,然后指向特定的ini文件如和文件。这样下来
多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序
的.ini文件和文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最
后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。
注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这
些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户
到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,
它被设计为专门为32位应用程序工作,文件的大小被限制在大约
40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬
件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。
最直观的一个实例就是,为什么windows下的不同用户可以拥有各
自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来
实现的。
由此可见,注册表(Registry)是Windows9x/Me/NT/2000操作
系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心
“数据库”;是一个巨大的树状分层的数据库。它记录了用户安装在机
器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配
置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属
性以及各种状态信息和数据等。
一、注册表都做些什么?
注册表是为WindowsNT和Windows95中所有32位硬件/驱动
和32位应用程序设计的数据文件。16位驱动在WindowsNT下无法
工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来
控制的。在Win9x下,16位驱动会继续以实模式方式设备工作,它
们使用来控制。16位应用程序会工作在NT或者Win9x
下,它们的程序仍然会参考和文件获得信息和控
制。
在没有注册表的情况下,操作系统不会获得必须的信息来运行和
控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。
当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个
BIOS支持的设备。无BIOS支持的设备安装时必须需要驱动,这个
驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,
文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们
就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给
操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,
其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、
窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),
安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不
同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制
的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注
册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能
包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件
有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人
设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计
算机中是通用的。
二、注册表的结构划分及相互关系
WINDOWS的注册表有六大根键,相当于一个硬盘被分成了六
个分区。
在“运行”对话框中输入RegEdit,然后单击“确定”按钮,则可以运
行注册表编辑器。
Windows98中文版的注册表Registry(、、
)的数据组织结构。
注册表的根键共六个。这些根键都是大写的,并以HKEY_为前缀;
这种命令约定是以Win32API的Registry函数的关键字的符号变量
为基础的。
虽然在注册表中,六个根键看上去处于一种并列的地位,彼此毫
无关系。但事实上,HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG中存放的信息都是
HKEY_LOCAL_MACHINE中存放的信息的一部分,而
HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的
信息的一部分。
HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和
HKEY_CURRENT_USER中所有的信息。在每次系统启动后,系统
就映射出HKEY_CURRENT_USER中的信息,使得用户可以查看和
编辑其中的信息。
实际上,HKEY_LOCAL_MACHINESOFTWAREClass就是
HKEY_CLASSES_ROOT,为了用户便于查看和编辑,系统专门把
它作为一个根键。同理,
HKEY_CURRENT_CONFIGSY-STEMCurrentControl就是
HKEY_LOCAL_MACHINESYSTEMCurrentControl。
HKEY_USERS中保存了默认用户和当前登录用户的用户信息。
HKEY_CURRENT_USER中保存了当前登录用户的用户信息。
HKEY_DYN_DATA保存了系统运行时的动态数据,它反映出系
统的当前状态,在每次运行时都是不一样的,即便是在同一台机器上。
根据上面的分析,注册表中的信息可以分为
HKEY_LOCAL_MACHINE和HKEY_USERS两大类,这两大类的详
细内容请看后面的介绍。
三、六大根键的作用
在注册表中,所有的数据都是通过一种树状结构以键和子键的方
式组织起来,十分类似于目录结构。每个键都包含了一组特定的信息,
每个键的键名都是和它所包含的信息相关的。如果这个键包含子键,
则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,
以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开
了,那么这个“+”就会变成“-”。
_USERS
该根键保存了存放在本地计算机口令列表中的用户标识和密码
列表。每个用户的预配置信息都存储在HKEY_USERS根键中。
HKEY_USERS是远程计算机中访问的根键之一。
_CURRENT_USER
该根键包含本地工作站中存放的当前登录的用户信息,包括用户
登录用户名和暂存的密码(注:此密码在输入时是隐藏的)。用户登录
Windows98时,其信息从HKEY_USERS中相应的项拷贝到
HKEY_CURRENT_USER中。
_CURRENT_CONFIG
该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后
使用的文档列表(MRU)和其他有关当前用户的Windows98中文
版的安装的信息。
_CLASSES_ROOT
根据在Windows98中文版中安装的应用程序的扩展名,该根键
指明其文件类型的名称。
在第一次安装Windows98中文版时,RTF(RichTextformat)文
件与写字板(WordPad)&127;联系起来,但在以后安装了中文Word
6.0后,双击一个RTF文件时,将自动激活Word。存放在
中的HKEY_CLASSES_ROOT,将替代文件
中的[Extensions]&127;小节中的设置项,它把应用程序与文件扩展名
联系起来,它也替代了Windows3.x中的文件中的相似的设
置项。
_LOCAL_MACHINE
该根键存放本地计算机硬件数据,此根键下的子关键字包括在
中,用来提供HKEY_LOCAL_MACHINE所需的信息,
或者在远程计算机中可访问的一组键中。
该根键中的许多子键与文件中设置项类似。
_DYN_DATA
该根键存放了系统在运行时动态数据,此数据在每次显示时都是
变化的,因此,此根键下的信息没有放在注册表中。
四、注册表部分重要内容
注册表是一个大型数据库Registry。要详细地分析该数据库,不
是一两页就能介绍完。我曾经用了半年多时间分析此数据库结构。下
面只介绍部分重要内容。
(一)HKEY_CLASS_ROOT
_CLASS_ROOT/re/DefaultIcon双击窗口右
侧的默认字符串,在打开的对话框中删除原来的“键值”,输入%1。重
新启动后,在“我的电脑”中打开Windows目录,选择“大图标”,然后
你看到的Bmp文件的图标再也不是千篇一律的MSPAINT图标了,
而是每个Bmp文件的略图(前提是未安装ACDSee等看图软件)。
(二)HKEY_CURRENT_USER
_CURRENT_USERControlPanelDesktop中新建串
值名MenuShowDelay=0可使“开始”菜单中子菜单的弹出速度提高。
2.在HKEY_CURRENT_USERControl
PanelDeskt-opWindowsMeterics中新建串值名MinAnimate,值为
1启动动画效果开关窗口,值为0取消动画效果。
(三)HKEY_LOCAL_MACHINE
_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentVe
rsionexplorerurshellfolders保存个人文件夹、收藏夹的路径。
_LOCAL_MACHINEsystemcurrentControl-Setcontrolkey
boardLayouts保存键盘使用的语言以及各种中文输入法。
_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentVe
rsionuninstall保存已安装的Windows应用程序卸载信息。
_LOCAL_MACHINEsystemCurrentControl-Setrvicescl
ass保存控制面板-增添硬件设备-设备类型目录。
_LOCAL_MACHINEsystemCurrent-ControlSetcontrolup
date设置刷新方式。值为00设置为自动刷新,01设置为手工刷新[在
资源管理器中按F5]。
_LOCAL_MACHINEsoftwaremicrosoftwin-dowscurrentV
ersionrun保存由控制面板设定的计算机启动时运行程序的名称,其
图标显示在任务条右边。在“启动”文件夹程序运行时图标也在任务条
右边。
_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentVe
rsionPoliciesRatings保存IE4.0中文版“安全”“分级审查”中设置的
口令(数据加密),若遗忘了口令,删除Ratings中的数据即可解决问
题。
_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentVe
rsionexplorerdesktopnameSpace保存桌面中特殊的图标,如回收
站、收件箱、MSNetwork等。
(四)HKEY_USERS
_tsoftwaremicrosoftinternet
explorertypeURLs保存IE4.0浏览器地址栏中输入的URL地址列表
信息。清除文档菜单时将被清空。
_tso..mi..wi..current-Versionex..menuO
rderstartMenu保留程序菜单排序信息。
_tso..microsoftwindowscurrent-Versione
xplorerRunMRU保存“开始运行...”中运行的程序列表信息。清除
文档菜单时将被清空。
_tso..microsoftwindowscurrent-Versione
xplorerRecentDocs保存最近使用的十五个文档的快捷方式(删除掉
可解决文档名称重复的毛病),清除文档菜单时将被清空。
_tsoftwaremicrosoftwindowscurrentVersi
onapplets保存Windows应用程序的记录数据。
_tsoftwaremicrosoftwindowscurrentVersi
onrun保存由用户设定的计算机启动时运行程序的名称,其图标显示
在任务条右侧。
五、与注册表有关的术语:
①、注册表:是一个树状分层的数据库。从物理上讲,它是
和两个文件;从逻辑上讲,它是用户在注册表
编辑器中看到的配置数据。
②、HKEY:“根键”或“主键”,它的图标与资源管理器中文件夹
的图标有点儿相像。Windows98将注册表分为六个部分,并称之为
HKEY_name,它意味着某一键的句柄。
③、key(键):它包含了附加的文件夹和一个或多个值。
④、subkey(子键):在某一个键(父键)下面出现的键(子
键)。
⑤、branch(分支):代表一个特定的子键及其所包含的一切。
一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其
所有内容。
⑥、valueentry(值项):带有一个名称和一个值的有序值。每
个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数
据类型,数据。
★名称:不包括反斜杠的字符、数字、代表符、空格的任意组
合。同一键中不可有相同的名称。
★数据类型:包括字符串、二进制、双字三种。
字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello
World”,是一串文字或词组。在注册表中,字符串值一般用来表示文
件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在
引号内显示字符串。
二进制(REG_BINARY):如F03D990000BC,是没有长度限
制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式
显示出来。
双字(REG_DWORD):从字面上理解应该是DoubleWord,
双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进
制的方式来编辑。如D1234567。
★数据:值项的具体值,它可以占用到64KB。
⑦、Default(缺省值):每一个键至少包括一个值项,称为缺
省值(Default),它总是一个字串
s注册表详解
作者:骆诚
在Windows文件夹中有和这样两个隐
藏文件,其中保存了至关重要的注册表信息。我们可以通过运行
来修改windows的设置,达到其他方法不能达到的效果,
使Windows更如你意。本说明书的内容以Win98第一版为准,但多
数也是适用于Win95、Win95osr2、Win98甚至Win2000的。
一、注册表根键说明
hkey_class_root包含注册的所有OLE信息和文档类型,是
从hkey_local_machinesoftwareclass复制的。
hkey_current_ur包含登录的用户配置信息,是从hkey_urs
当前用户子树复制的。
hkey_local_machine包含本机的配置信息。其中config子树是
显示器打印机信息;enum子树是即插即用设备信息;system子树
是设备驱动程序和服务参数的控制集合;software子树是应用程序专
用设置。
hkey_urs所有登录用户信息。
hkey_current_config包含常被用户改变的部分硬件软件配置,如字
体设置、显示器类型、打印机设置等。是从hkey_local_machineconfig
复制的。
hkey_dyn_data包含现在计算机内存中保存的系统信息。
二、注册表详细内容
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersione
xplorerurshellfolders保存个人文件夹、收藏夹的路径
Hkey_local_machinesystemcurrentControlSetcontrolkeyboard
Layouts保存键盘使用的语言以及各种中文输入法
Hkey_tsoftwaremicrosoftinternetexplorertypeURLs
保存IE浏览器地址栏中输入的URL地址列表信息。清除文档菜单时
将被清空。
Hkey_tso..mi..wi..currentVersionex..menuOrderst
artMenu保留程序菜单排序信息
Hkey_tso..microsoftwindowscurrentVersionexplore
rRunMRU保存“开始*运行...“中运行的程序列表信息。清除文档菜
单时将被清空。
Hkey_tso..microsoftwindowscurrentVersionexplore
recentDocs保存最近使用的十五个文档的快捷方式(删除掉可解决
文档名称重复的毛病),清除文档菜单时将被清空。
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionu
ninstall保存已安装的Windows应用程序卸载信息。
hkey_tsoftwaremicrosoftwindowscurrentVersionap
plets保存Windows应用程序的纪录数据。
Hkey_local_machinesystemCurrentControlSetrvicesclass保
存控制面板-增添硬件设备-设备类型目录。
Hkey_local_machinesystemCurrentControlSetcontrolupdate
立即刷新设置。值为00设置为自动刷新,01设置为手工刷新[在资
源管理器中按F5刷新]。
HKEY_CURRENT_USERControlPanelDesktop新建串值名
MenuShowDelay=0可使“开始”菜单中子菜单的弹出速度提高。新建
串值名MinAnimate,值为1启动动画效果开关窗口,值为0取消动
画效果。
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionru
n保存由控制面板设定的计算机启动时运行程序的名称,其图标显示
在任务条右边。[启动文件夹程序运行时图标也在任务条右边]
hkey_tsoftwaremicrosoftwindowscurrentVersionrun
保存由用户设定的计算机启动时运行程序的名称,其图标显示在任务
条右侧。
HKEY_CLASS_ROOT/re/DefaultIcon默认图片的图
标。双击窗口右侧的字符串,在打开的对话框中删除原来的键值,输
入%1。重新启动后,在“我的电脑”中打开Windows目录,选择“大图
标“,然后你看到的Bmp文件的图标再也不是千篇一律的画板图标了,
而是每个Bmp文件的略图。
Hkey-local-machinesoftwaremicrosoftwindows
currentVersionPoliciesRatings保存IE4.0中文版“安全”*“分级审
查”中设置的口令(数据加密)。
Hkey-local-machinesoftwaremicrosoftwindows
currentVersionexplorerdesktopnameSpace保存桌面中特殊的图
标,如回收站、收件箱、MSNetwork等。
三、怎样存取注册表信息
可以通过VB5.0提供的两个语句和两个函数在程序中读写注册
表。
1、SaveSetting语句
语法.SaveSettingappname,ction,key,tting
2、GetAllSettings函数
语法.GetAllSettings(appname,ction)
3、GetSetting函数
语法.GetSetting(appname,scetion,key[,default])
4、DeleteSetting语句
语法.DeleteSettingappname,ction,[key]
参数含义.
appname.字符串表达式,应用程序名
ction.字符串表达式,小节名
key.字符串表达式,关键字名
tting.表达式,关键字设定值
下面通过实例来说明它们的用法.应用程序名为jld_app,小节
名为startup,关键字为left。
在注册表中建立应用程序的注册项.
SaveSetting“jld_app”,“startup”,“left”,100
从应用程序注册表项中读取所有关键字及其对应的值.
Dimmyttings(10,10)AsVariant
DimttingindexAsInteger
GetAllSettings“jld_app”,“startup”
Forttingindex=LBound(myttings,1)ToUBound(myttins,1)
yttings(ttingindex,0);
“=”;myttings(ttingindex,1)
Nextttingindex
EndSub
从应用程序注册表项中读取关键字“left“的设置.
etSetting(“jld_app”,“startup”,“left”,“notok”)
从WIN98注册表中删除小节“startup”
DeleteSetting“jld_app”,“startup”
四、注册表的备份
Windows每次启动都会自动对注册表进行备份。放在
windowssysbckup里的文件里,出注册表出现问题,在
DOS下用extract/e展开,拷贝回去就可以了
Windows95启动过程中可以分为以下步骤:
只读存储器(ROM)的基本输入输出(BIOS)引导过程
主启动记录(MBR)和启动扇区
文件
实模式配置
文件和$Windows95环境
回到顶端
步骤1-的ROMBIOS启动进程
当您启动您的计算机时,ROMBIOS引导加载从FFFF0h内存地
址。在引导ROMBIOS的过程中进行下列步骤:
1.开机自检(POST)时发生。
2.在A驱动器存在的启动磁盘检查。
3.如果在A驱动器中找不到启动磁盘,ROMBIOS引导检查的
硬盘。如果找到一个硬盘,则ROM加载程序将控制转移到操
作系统加载程序中。
4.主启动记录和分区表是只读的。
Microsoft和几个原始设备制造商(oem)定义了一个插即用
BIOS的规范。此规范中定义了在设备和BIOS、插即用设备
和选项及之间的交互。如果您的计算机有一个即插即用和
BIOS,请执行下列附加步骤:
5.即插即用和BIOS将非易失性的随机存取内存(RAM)检查
输入/输出(I/O)端口地址中断请求(irq)线路、直接内存访问
(DMA)通道和其他设置所需在计算机上配置的即插即用设备。
6.通过即插即用和BIOS找到的所有插即用设备被都禁用。
7.创建地图的使用和未使用的资源。
8.配置并重新启用,一次,即插即用设备。
windows95配置管理器为设备信息中查询插BIOS,然后查询其配
置为每个即插即用设备。
如果您的计算机没有一个即插即用和BIOS,使用其默认设置,当您
启动计算机时初始化的即插即用设备。Windows95启动时,可能
会将这些设备重新配置动态。
回到顶端
步骤2-的主引导记录和启动扇区
主引导记录决定通过读取分区表来启动分区的位置位于母版的端引
导记录。一旦确定的位置启动分区的主引导记录将控制传递在该分
区引导扇区。引导扇区包含磁盘引导程序和磁盘特征的表。引导扇
区检查BIOS参数块(BPB),以查找根目录的位置,然后将
文件根区目录中复制到内存。
回到顶端
步骤3-的文件
文件加载到内存时,将执行以下步骤:
1.加载一个最小的文件分配表(FAT)文件系统。
文件中读取。
3.
Windows95"消息。将显示消息的时间量由该BootDelay=
4.如果您在Windows95中有多个硬件配置文件,您会收到以下
消息,并且必须选择要使用的硬件配置:
Windows不能确定您的计算机处于何种配置。
文件被加载,并显示在屏幕上的启动图像。
6.如果或文件或
文件加载到内存中。
文件检查系统的注册表文件(和
)的有效数据。
文件打开的文件。如果没有找到
文件,则使用0文件进行启动。如果
成功地启动Windows95,0文件被复制到该
文件。
9.如果加载文件在"DoubleBuffer=1"是在
文件中,或者如果在以下注册表项下启用双缓冲:
HKLMSystemCurrentControlSetControlWinBootDoubleBu
ffer
Windows95安装将自动启用双缓冲,如果它检测到这是必需。
10.如果您在Windows95中有多个硬件配置文件,从注册表加
载在您选择的硬件配置文件。
文件处理冲突文件。
回到顶端
步骤4-伊模式配置
某些硬件设备和程序都需要驱动程序或文件被加载在实模式中以便
将它们正常工作。如果存在,请确保向后与这些类型的硬件设备或
$程序兼容性,Windows95处理冲突和文件。
1.冲突文件加载到内存的驱动程序。如果不存在冲突文件,
文件加载下列所需的驱动程序:
文件获得的两个文件的位置在"WinBootDir
="文件的行。这些文件必须驻留在硬盘上。
s95保留所有全局上端内存块(UMBs)的Windows
95操作系统使用或扩展内存支持(EMS)。
文件加载文件,并终止并保持到内存的驻留
(TSR)程序。
回到顶端
步骤5-的文件和Windows95环境
1.在处理文件之后,文件运行。
2.该文件访问文件。如果有足够的可用
内存,文件将加载到内存,否则,从硬盘访问它。
这可能会导致较慢的启动时间。类似于Windows的早期版本
中使用的文件文件。
3.实模式虚拟设备驱动程序加载程序将检查重复的虚拟设备驱动
程序(vxd)在WindowsSystemVmm32文件夹和
$文件中。如果这两个在
WindowsSystemVmm32中存在一个VxD文件夹和
$文件重复VxD被标识为"已"文件
中未加载。
4.实模式vxd可以加载到内存中通过以下方法之一:
1.实模式设备驱动程序或tsr,以响应在Windows95
INT2F广播加载其嵌入的vxd,Windows95启动时。
2.从下面的注册表项加载到文件内部的驱动
程序将不会"标记":
HKEY_LOCAL_MACHINESystemCurrentControlSetS
ervicesVxD
实模式虚拟设备驱动程序加载程序查找"标记"驱动程序,
如果它从VxD更改其注册表项(驱动程序前面带有一
个asterix"*")到带有.vxd扩展名的文件,以便在
WindowsSystemVmm32文件夹中找到外部驱动程序。
当找到外部驱动程序时,它被加载到内存中。
3.不通过文件已加载的vxd从[386增强]
加载文件的节。
4.某些vxd是所必需的Windows95正常运行。这些要求
的vxd会自动加载,而不需要一个注册表项。下面的
vxd所需的Windows95:
5.*BIOSXLAT*CONFIGMG
*DYNAPAGE
6.*DOSMGR*EBIOS*IFSMGR
7.*INT13*IOS*PAGESWAP
8.*SHELL*V86MMGR*VCD
9.*VCACHE*VCOMM*VCOND
10.*VDD*VDMAD*VFAT
11.*VKD*VMCPD*VPICD
12.*VTD*VTDAPI*VWIN32
*VXDLDR
5.实模式虚拟设备驱动程序加载程序将检查所有所需的vxd加
载成功。如果没有,则它将尝试重新加载的驱动程序。
6.一旦记录实模式虚拟设备驱动程序加载,驱动程序初始化时发
生。如果需要实模式初始化任何vxd开始实模式在其过程。
32切换实模式中以保护模式的计算机的处理器。
8.三个阶段VxD初始化过程发生的顺序在其中它们被加载到内
存而不是其InitDevice根据要加载该设备驱动程序。在vxd
被执行下面的顺序:
_CRITICAL_INIT(SYSCRITINIT):
在此阶段,中断将被禁用。这样,vxd时间来准备设备
初始化不由系统被中断的情况下。文件I/O不被允许
SYSCRITINIT,期间,因此所有SYSCRITINITs不会都
写入文件,直到后SYSCRITINIT已经完成
了所有的vxd。
_DEVICE_INIT(DEVICEINIT)
在此阶段中发生的VxD初始化大容量。文件I/O允许
在DEVICEINIT,因此每个VxD的过程中发生时记录
DEVICEINIT。一个例外是Ifsmgr的期间
DEVICEINIT。Ifsmgr实模式通过文件系统,而且磁盘
I/O不允许直到Ifsmgr的DEVICEINIT成功。由于这
个原因Ifsmgr未出现在DEVICEINIT阶段中。
在调用DevLoaderVxD时它会加载它负责,而不考虑
其InitDevice顺序的其他驱动程序。在DevLoader检
查注册表,并发现驱动程序(例如对于portdrivers[这
样文件])和任何相关支持驱动程序。然后,
它将初始化设备与这些驱动程序相关联。此阶段如果
VxD未能初始化,它不能正确地与硬件或该驱动器的服
务进行通信。通常,这是由于不正确的硬件设置或不安装
该服务。
剩余的静态vxd继续执行初始化阶段。此外,动态vxd
可能开始在此阶段中初始化。它们不具有SYSCRITINIT
阶段。但是,动态VxD可能还加载随时启动Windows
95后。
_INIT_COMPLETE(INITCOMPLETE)
成功地通过InitComplete阶段的vxd应正常工作。如
果VxD已列在上一阶段之一,但没有成功在此阶段中,
该VxD是从内存中卸载。
GUI组件:
所有加载静态vxd、在、、
和之后(默认Windows95外壳)加载
文件。
网络环境和多用户配置文件:
在启动过程中的下一步是加载在网络环境。一旦出现这种情况被提
示用户登录到已安装的网络上。
windows95允许多个用户保存他们的自定义桌面设置。Windows
95到在用户登录时都将从注册表加载其桌面设置。如果用户不能登
录,桌面配置将使用默认桌面。
启动组和RunOnce程序:
在启动组和RunOnce注册表项中的程序运行在启动过程的最后一
个阶段。RunOnce注册表项中的每个程序启动后,从键中删除该程
序。
回到顶端
这篇文章中的信息适用于:
回到顶端
关键字:kbmtkbinfoKB174018KbMtzh
回到顶端
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完
成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章,
以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文
章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一
个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器
翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不
对由于内容的误译或者客户对它的错误使用所引起的任何直接的,
或间接的可能的问题负责。
点击这里察看该文章的英文版:174018
回到顶端
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文
件及有关图形所含信息的适用性,不作任何声明。所有该等文件及
有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其
各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责
任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵
权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务
器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft
和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、
间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或
利润不负任何责任。
本文发布于:2023-03-08 06:52:51,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167822957117973.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:注册表恢复.doc
本文 PDF 下载地址:注册表恢复.pdf
| 留言与评论(共有 0 条评论) |