提示
前面系统相关模块我们提到可以借助 Dism++
、NTLite
等工具,对 Windows 系统进行一些默认项的设置优化,但是设置相对来说比较麻烦,而且不能重复使用,这种情形下我们可以通过修改注册表来实现,而且注册表修改会更加灵活一点,从一定程度上弥补了工具可调整项的缺失,特别是对于多台设备需要优化的,通过修改注册表往往可以事半功倍。
本文是对注册表结构及语法的说明,常用 Windows 注册表优化项可移步:常用注册表优化整理
概述
Windows 注册表(Windows Registry)是微软 Windows 操作系统中的一个重要的系统数据库。它包含了操作系统、应用程序、硬件设备和用户的配置信息。注册表用于存储各种系统设置和选项,包括硬件驱动程序、操作系统设置、用户偏好和应用程序配置等。
基础知识
Windows 注册表是一个层次结构的数据库,它由多个逻辑树状组织的键(Key
)和值(Value
)组成。主要包含五个顶级根键(Root Key
),每个根键都有自己的子键和值,用于组织和存储不同类别的信息,具体如下:
名称 | 简写 | 作用 |
---|---|---|
HKEY_CLASSES_ROOT | HKCR | 存储 Windows 可识别的文档类型的详细列表,以及相关联的程序 |
HKEY_CURRENT_USER | HKCU | 存储当前用户设置的信息 |
HKEY_LOCAL_MACHINE | HKLM | 包括安装在计算机上的硬件和软件的信息 |
HKEY_USERS | HKU | 包含使用计算机的用户的信息 |
HKEY_CURRENT_CONFIG | - | 这个分支包含计算机当前的硬件配置信息 |
REG 文件编写
修改注册表有多种方式,我们可以通过 注册表编辑器
、组策略
、系统策略
、注册表(.reg)文件
、运行 VisualBasic 脚本文件
或 控制台命令
等来方式修改注册表,为了便于系统镜像的离线设置项优化,推荐使用注册表文件的方式来进行调整。
基础语法
创建 .reg
后缀的注册表项文件,然后按照语法进行编写,基本语法示例及说明如下:
; 注册表编辑器版本声明,固定值:Windows Registry Editor Version 5.00
; 上古版本操作系统,如 Windows 95 / 98 / NT 4.0 则固定为:REGEDIT4
RegistryEditorVersion
; 空行,用于分隔多个键路径,每个键路径下可以有多个子键和值项。
空行
; 子键路径,包含在方括号[ ]中,并以反斜杠分隔每个层次结构
; 键路径声明会递归创建新键(子键),即中间路径不存在时,会自动创建
[RegistryPath1]
; 值项=值类型:值数据,如果该值项在注册表中不存在,则创建,如果该值项存在,则覆盖值数据。
"DataItemName1"="DataType1:DataValue1"
"DataItemName2"="DataType2:DataValue2"
空行
[RegistryPath2]
"DataItemName3"="DataType3:DataValue3"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService]
"dword"=dword:00000000
"expand_sz"=hex(2):73,00,79,00,73,00,74,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService\parent\child]
"sz"="hello"
注意事项
REG_SZ
类型:即文本字符串类型的值,无需声明 DataType,只需要将 DataValue 用双引号(" ")引起来即可,如:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService\parent\child]
; sz 类型
"key"="value"
其他类型:REG_DWORD
、REG_MULTI_SZ
、REG_EXPAND_SZ
等,需要显式声明 DataType,如:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService\parent\child]
; DWORD 类型
"dwordkey"=dword:00000001
; EXPAND_SZ 类型
"expandSz"=hex(2):73,00,79,00,73,00,74,00
; MULTI_SZ 类型
"multiSz"=hex(7):5c,00,44,00,65,00,76,00
值数据类型
常用数据类型及说明如下:
名称 | 数据类型 | 说明 |
---|---|---|
二进制值 | REG_BINARY | 二进制值,以十六进制显示 |
DWORD值 | REG_DWORD | 一个 32 位的二进制值,显示为 8 位的十六进制值,也可显示为 10 位十进制值 |
QWORD 值 | REG_QWORD | 由 64 位整数的数字表示的数据 |
字符串值 | REG_SZ | 固定长度的文本字符串 |
可扩充字符串值 | REG_EXPAND_SZ | 可变长度的数据字符串 |
多字符串值 | REG_MULTI_SZ | 含有多个文本值的字符串 |
删除语法说明
删除一个(子)键,只需要在键声明开始处添加字符 "-" 即可,下级目录及所有值项也会一并删除。
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService\parent\child]
删除值项,只需将值项等号右边等号后添加字符 "-" 即可。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\customService\parent\child]
"valueItem"=-
其他补充说明
若要重命名(子)键或值项,请先将其删除,然使用新的名称创建一个新的(子)键或项值。