经常看到有朋友在问如何修改Windows的注册表,今天就大概讲一下。
在线查看和修改注册表
大部分情况下,对于正常Windows操作系统,对,我说的是正常的Windows操作系统,不是WindowsPE,修改注册表很简单也很方便,直接按 Win + R 组合键打开运行窗口,输入 regedit 回车,就可以直接打开注册表编辑器。
就是这个样子。
举一个简单的场景示例:我现在要查看当前用户的开机启动项。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
上面就是具体的注册表地址,在注册表编辑器左侧的树形结构里慢慢定位到指定的位置,当然如果你的操作系统是WIndows 10的话,可以直接在注册表编辑器上面的地址栏粘贴完整的地址,然后回车,就展开到指定位置了。
右侧就是开机启动项了,你可以直接右键删除名称,就可以删除这条启动项记录,当然,这里并不是说电脑上所有的开机启动项都在这里了,还有其他位置也能放开机启动项,比如:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
这里就是对所有用户生效的开机启动项了。
还有很多程序是以服务运行的,或者是直接放在了开始菜单的“启动”文件夹里,这里就不细说了。
注册表RootKey的简写
经常看到有人给出的注册表地址是HKCU\...开头,这里你可能会疑惑,HKCU我怎么在注册表里找不到,其实这只是HKEY_CURRENT_USER的简写,下面是注册表各RootKey对于的简写:
HKEY_CLASSES_ROOT或HKCR是HKEY_LOCAL_MACHINE\Software\Classes的别名(即引用)。主要添加了一个单独的根密钥,因此软件开发人员可以直接访问此数据,而无需使用HKLM。HKCR包含与应用程序、快捷方式和文件扩展名关联相关的数据。
HKEY_CURRENT_USER或HKCU是从%UserProfile%\ntuser.dat构建的。HKCU包含特定于每个用户的数据,并在PC上具有登录帐户。一般存放诸如应用程序事件、键盘布局、映射的网络驱动器、应用程序首选项和其他特定于用户的设置之类的数据。
HKEY_LOCAL_MACHINE或HKLM硬件和软件配置数据是“全局”的或与PC相关的,无论登录哪个用户。HKEY_LOCAL_MACHINE\SYSTEM包含与Windows启动相关的子项和设置。
HKEY_USERS或HKU是组策略设置的宿主。任何基于组策略的规则都存储在此根密钥下。登录时,这些设置将复制到HKCU。
展开HKU时,你会看到一个.DEFAULT文件夹以及每个用户/登录ID的条目。.DEFAULT文件夹包含新用户首次登录时的基本设置,S-1-5-21-文件夹包含用户ID的设置。
你可以使用HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\交叉引用这些ID,在其中您可以找到相同的SID列表。单击S-1-5-21-文件夹之一,然后查看ProfileImagePath键的数据值以查看配置文件的所有者。
HKEY_CURRENT_CONFIG或HKCC包含当前的硬件配置文件设置。像HKCR一样,HKCC是HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001的别名(注意:如果您的PC有多个硬件配置文件,则它们的编号为ControlSet002,ControlSet003等)。
离线修改注册表
对于有些特殊的键值,在线状态下我们无法修改(一般是提示权限不足),这时候就需要离线修改了。
当然,怎么离线呢,最方便的就是使用WindowsPE啦。启动WindowsPE,然后离线加载操作系统的注册表,就能随意修改啦。
我们再了解一下相关基础知识:
注册表的实际文件和RootKey对应关系
我只列出了最常用的注册表文件对应关系。
离线加载注册表配置单元
下面开始离线加载注册表单元,举例一个场景,我现在需要修改WindowsPE下某个键值。
打开注册表编辑器,先定位RootKey为HKEY_LOCAL_MACHINE
然后点击“文件”——“加载配置单元”
会自动打开一个文件选择框,按上面的表格去找你的注册表文件,比如Windows\system32\config\software
它会提示需要输入一个项目名称,这个名称你可以随便输入,比如“123”,点击“确定”
这个时候你展开HKEY_LOCAL_MACHINE,发现什么了?多了一个123的子目录
展开HKEY_LOCAL_MACHINE\123,里面就是你要的注册表内容了,跟正常系统下的HKEY_LOCAL_MACHINE\SOFTWARE结构一模一样
离线卸载注册表配置单元
刚刚你已经知道了加载注册表,那么你修改完内容后就准备卸载注册表配置单元了。
先定位到HKEY_LOCAL_MACHINE\123
然后依次“文件”——“卸载配置单元”
卸载完成后你会发现123已经消失了。
最后,我们需要清理一下临时文件。打开你刚刚修改的注册表文件目录,你会发现多了这么几个隐藏文件:
没错,这些系统隐藏文件就是你修改注册表时产生的临时文件,可以直接删除。
此处内容隐藏,登录后可见!立即登录 登录后请刷新页面!刷新
大佬 很有帮助
935254524 大佬 很有帮助
如果你们也有 有用的、好玩的 都可以在社区发出来让大家学习
这个没毛病。。。
这对后期修改系统设置很有帮助
caocaofff 如果你们也有 有用的、好玩的 都可以在社区发出来让大家学习
root是对应什么文件?
铭浩 root是对应什么文件?
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
学习。
很有帮助
学习了 谢谢教程
谢谢分享,学习中
刚好遇到这个的需求,学习一下
学习了!
学习一下
大佬,想问一下啊,PE里的注册表能否这样子离线修改呢?
haixing 大佬,想问一下啊,PE里的注册表能否这样子离线修改呢?
就是这样修改的
好的,有空试试
这样修改的