020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 软件应用 >> 行业软件 >> 正文
    Registry基本观念

    点击:   发布日期:2013-08-14

    本文来自 www.020fix.com

    网路上总有很多的教学文章,强调要控管到Windows内部都要编修到registry这个东东。registry也者,Windows系统内部的设定值也。而详细教registry的文章(就是它的构造、栏位名称等)满少的,正康也曾经到书店找找有关的书,结关翻到一本 registry的秘密,看了看就有低血压的感觉:p
    但也不是说它就没有什么捷径了解,这里摘录了一点 registry 几个简单的说明,让大家稍微有点概念

     
    □ Registry的组成元件
     
    a. Subtree
    所有的registry分类中最高的项目,最基本是粗分为HKEY_LOCAL_MACHINE及HKEY_USERS二种,这也是使用Poledit政策编辑器时一开呈现的主项目。
    但为了方便管理还是什么目的,Windows还是分成了五个较大的subtree,分别是
     
    . HKey_Local_Machine 所有这个机器的资讯,如应用软体、硬体驱动程式之类。差不多大部份要改Windows设定的registry都在这里发生。  
    . HKey_Users 所有有登入过这个Windows的相关data。  
    . HKey_Current_User 目前登入这个Windows的user相关data。  
    . Hkey_class_root 一些软体的设定。  
    . HKey_current_config 目前使用中的硬体设定。
     
    b. Keys
    Subtree的下层单位,专门做整理、分门别类的功能。有时会出现subkey这个名词,无非是key的下层单位,也是分层别类用的;总之就把它们当成folder就是了。
     
    c. Entries
    实际含有资料的单位,分别以Name,DataType,value来描述资料。     
    d. Hive
    完整描述一笔笔Registry资料的东东就叫Hive。事实上就是等同于Keys+subkeys+entries,然后这一堆东西就可存在sysroot\System32\Config。
     
    e. Data Types
    为了记载不同的资料,Registry准备了以下的资料型别来储存:
    REG_DWORD 1-8位的十六进位数字
    REG_SZ 单一字串
    REG_EXPAND_SZ 含有可置换变数的字串
    REG_BINARY 一连串的十六进位数字,但会以每一对解析成byte value
    REG_MULTI_SZ 多字串
    REG_FULL_RESOURCE_DESCRIPTOR 给硬体/驱动程式记录用的资源列表,不可由使用者更改。

     
    □ 重要的SubTree:HKEY_LOCAL_MACHINE
    Hkey_Local_Machine拥有相当多的registry设定,所以大部份的更改都在这里发生。它有五个重要的subkey这里稍稍提一下:
    Hardware 记录了目前系统上的週边装置及其状态。由于是开机时收集,故没有对应的档案。
    SAM 记载了帐号等资料,对应在Systemroot\System32\Config下的sam及sam.log二个档案。
    Security 一些安全上的资料,对应在Systemroot\System32\Config下的security及security.log二个档案。要更动SAM及Security二个地方的资料,程式必须使用特定的api才行。
    Software 记载了软体和使用者间的关係,比方说档案的关联等。对应在Systemroot\System32\Config下的Software/Software.log及Software.sav三个档案。
    System 记录有关系统的服务或是週边设备的设定。对应在Systemroot\System32\Config下的System/System.log/System.sav等三个档案。另外使用System.alt作为备份档。

     
    □ 会用到registry的东西有∼
    有很多东西会对registry作写入写出,除了骇客外,还有下列这些东西…
     
    . WindowsNT Kernel-
    要记载核心载入时要载入那些device及其设定、顺序。这些资料都放在registry里。
     
    . Device Driver-
    每个週边设备都记着它们配合系统所使用的值,如irq之类的;这些值也是写在registry里头。
     
    . User Profile/Hardware Profile/Temporary Hardware Profile-
    这些Profile记录档都放在registry里头。所谓的Temporary Hardware Profile是指NTDetect.com程式在开机时,动态的侦测系统的硬体设计而抓下来的设定,也是存在registry里头。
     
    . Setup program-
    安装软硬体时,要pnp的缘故吧,就会和registry里的设定做读取、更改,让新来的软硬体能融入。
     
    □ 编辑registry的工具:regedt32和regedit,有什么差别
    除了二者的界面不一样外,一般说来regedt32.exe是比较专业、呆板、正式。而regedit.exe就比较友善,但不完全支援所有机码的类型,如reg_multi_sz及reg_expand_sz,没有security mode等等;这也是最大的差异。
    其他的差异还有…举例来说,在友善度上面,如果要新增机码,regedit.exe可直接在画面的右方按右键新增即可。regedt32.exe得老实的回到文字工具列上按「编辑/新增机码」。 而且regedit.exe的画面比较好看,机码前面都有小图示,regedt32.exe就是「清一色」了。所以有此一说regedit.exe是给windows 9x系列用的。
    另外一个重要差异是搜寻。regedit.exe能搜寻机码、值、资料等三类。 regedt32.exe只能搜寻机码。
    regedt32也没有很好的汇出功能。不能很方便的将选定的机码汇出成 *.reg 档案,这目前由regedit.exe做会很方便。而且regedit.exe下方的状况列也会随着使用者选定registry时,随时秀出目前的路径。
    因此如果要选择绝对的正确设定或新增某类机码,用regedt32.exe比较好。如果想对既有的机码做搜寻、汇出、修改,用regedit.exe比较恰当。为什么Microsoft要做二个不同版本的registry编辑程式让大家困惑,我就不知道了。

     
    □ 小结:
    本笔记里有好些编修registry的例子,一般来说建议编修registry是由控制台或是Microsoft的工具 tweak UI来执行或poledit.exe政策编辑工具(会比较安全),当然也可直接使用regedit/regedt32这程式进行「直接的编修」。一旦要编修这里面的内容请你小心,你必须知道你在干什么,即便你知道你在做什么,也好做好备份或还原措施,否则很可能要你重灌 windows 啊!