在上一篇,我们介绍了登录档的结构和物理位置,现在你意识到他的存在,那今天就是接续前一篇最後的预告,我们要来研究几个重要登录档分支的意义,这样才会对他熟悉一些,大概可以猜测要找的登录值会在哪里,你才会有点略懂略懂的sense,那麽以下就开始罗!
上篇提到,我们所看到的五个根键(偶尔也称子树),实际上是HKEY_LOCAL_MACHINE和HKEY_USERS所构成,接下的内容根据英文名称你仔细想一下可以猜出他安排的合理性,我们知道这些分支中一笔笔的登录值才是最後实际影响系统的资料,键的主要功能是协助分类,现在我们就Win+R,输入regedit,开启登录编辑程序来对看看!
是登录档的核心主键,所有软件、硬体及Windows的工作设定都存放在这里,包括系统安全设定原则、使用者许可权和共用资讯、BIOS、硬体周边、作业系统资讯、软件设定资料及位置和版本号等等,这些设定通常跟使用者无关,是公共配置资讯,针对使用此系统的所有使用者。HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的资讯会在电脑启动时跟这里做比对检查。
下面对一一解释这些子键:
HKLM\BCD00000000:BCD是Boot Configuration Data,启动配置数据,取代了以往的boot.ini,网路上有人示范把他给删了然後Windows就无法启动了。
HKLM\HARDWARE:在每次系统启动和执行硬件检测时创建,如之前提到,他的资讯会储存在RAM中,子键的层次结构储存电脑所有的硬体元件资讯,包括了系统使用的浮点处理器、串列埠等资讯。
HKLM\SAM:安全帐户管理器(SAM)的资料库,包括帐户密码和使用者访问资料夹,档案以及外设的许可权等,通常显示为空。
HKLM\SECURITY:安全性设定资讯,储存安全策略和使用者组策略的配置资讯,通常显示为空。
HKLM\SOFTWARE:安装的软件资讯和设定,包括配置生效的设定、版本号等,各个软件的控制资讯分别安装在相应的子键中,主要由应用程序和系统安装程序修改,这里你会发现一个叫Wow6432Node,他牵涉到我们64和32位元的大乱斗中,笔者之後讲资料夹意义的时候再补充说明。
HKLM\SYSTEM:控制作业系统启动和修复的资讯,包含有关Windows系统的设置资料,底下有许多子键操控各种系统配置,其中CurrentControlSet是在系统启动时动态链接到本机的ControlSet001复制过来的。
这个根键记录的是Windows作业系统中所有资料档案的资讯内容,主要记录了不同档案的副档名和与之相对应的应用程序,也就是决定什麽类型的档案预设要用什麽程序开启这回事,内容包括启动应用程序所需的全部资讯,像是副档名,应用程序与文件之间的关系,驱动程序名,DDE和OLE资讯,类ID编号和应用程序跟文件的图示等等,所以当你展开後会看到很多子键,他主要分成已注册的各类档案副档名和各类档案型别的资讯。
然後这个键等於HKLM\Software\Classes,但在HKEY_CURRENT_USER\Software\Classes也有一样功能,你可以从名称轻易了解,他是当前使用者的设置跟本机设置的关系,两个设置可能有冲突的设定,这时候使用者自定义的设置的优先级当然比较高,所以我们说,HKCU\Software\Classes会优先於HKLM\Software\Classes,而通常的我们要改写设定也是改写HKCU下的。
我们举个例子,例如我们想找关於系统遇到.txt档案时的情况,就转到HKCR\txtfile目录,你会看到预设值告诉系统这是一份文字文件,其他属性笔者其实看不太懂,留下官方说明给大家参考:
https://docs.microsoft.com/zh-tw/windows/win32/shell/fa-progids
然後像是HKRT\txtfile\shell\open\command的预设值你就可以看出,有个open txtflie的线索,然後资料栏指NOTEPAD.EXE(记事本)这支程序的绝对路径,实际上这串登录值的意义就是,在.txt档双击直接开启的程序使用的是记事本,後面的%1代表启用这项登录值的意思。
表示电脑目前的硬体配置资讯,实际上是个快捷指标,他等於 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current。
他储存所有使用者配置,包括预设使用者(DEFAULT)也就是新建立使用者的预设配置,和当前登入使用者的配置,配置的内容包括桌布,字体,控制台选项,音效,网路连线,开始功能表等,如果打开一看你可能会看到多个安全标识符(SID)表示不同用户,通常当前使用者会是S-1-5-18,其他用户代表各位可以转到官方的doc瞧瞧。
https://docs.microsoft.com/en-US/troubleshoot/windows-server/identity/security-identifiers-in-windows
就是当前用户的设定资讯,他等於”HKU\当前用户的SID”,修改这里的登录值可以做一些个人化配置,但建议大家还是用Windows提供的各种设定介面去更改才是比较安全的做法。下面介绍一些子键的内容:
以上是我们登录档的意义,也带了几个简单的例子,笔者希望可以先从理解意义,从几个关键字自己推出他的意思,这样的学习应该比较启发式,至於下一篇我们来谈谈登录值的格式还有.reg档的意义,以及登录档的备份,这些都谈完,我想差不多就可以来来尝试危险的事了呵呵(这里是指改机码的部分)
参考资料:
https://tphcc.ebook.hyread.com.tw/bookDetail.jsp?id=11615 (电子书)
https://iter01.com/515763.html
https://www.itread01.com/content/1546069686.html
https://en.wikipedia.org/wiki/Windows_Registry
https://zh.wikipedia.org/wiki/%E6%B3%A8%E5%86%8C%E8%A1%A8
https://docs.microsoft.com/en-us/windows/win32/sysinfo/predefined-keys
https://www.itread01.com/content/1546837203.html
https://www.itread01.com/content/1549298535.html
<<: 2021-Day8. 第一印象很重要!!从使用者加好友时,就建立良好关系:Line加好友欢迎讯息实作(一)
>>: Day 11-制作购物车系统之安装及资料夹结构(一)
第一部分(建立档案以及设定资料库) composer create-project laravel/...
常有客户问到 EIP (OA)内建的 workflow 与所谓的BPM 有何不同?? 为何两者价格差...
用List实现多层容器 何谓 多层容器 ?我们前面说过List可以存放 『任意型别』 ,其中也包...
Hello大家, 真的把今年的国定假日都过完了... 有点哀伤! 下次的连续假期是跨年了, 让我们一...
MVVM 最近刚开始接触kotlin,而我想要用kotlin去建构一个MVVM的架构,首先要先了解甚...