简介
注册表是Windows系统的管理机制,集中存储管理系统和应用软件的配置。 甚至对于Linux的兼容环境Wine的使用而言,甚至有人说用好注册表比懂Linux更有效。
结构
数据类型
注册表的数据类型主要有以下五种:
| 显示类型 | 数据类型 | 说明 |
|---|---|---|
| REG_SZ | 字符串 | 文本字串 |
| REG_BINARY | 二进制数 | 不定长度的二进制值,以十六进制显示 |
| REG_DWORD | 双字 | 一个 32 位的二进制值,显示为 8 位的十六进制值 |
| REG_MULTI_SZ | 多字符串 | 含有多个文本值的字符串,此名来源于字符串间用 nul 分隔、结尾两个 nul |
| REG_EXPAND_SZ | 可擴充字符串 | 含有环境变量的字符串 |
注册表还有其他的数据类型,但是均不常用:
- REG_DWORD_BIG_ENDIAN - DWORD 的大头版本
- REG_DWORD_LITTLE_ENDIAN
- REG_FULL_RESOURCE_DESCRIPTOR
- REG_QWORD - DWORD 的四字(64 位)版本
- REG_FILE_NAME
分支
注册表有五个一级分支:
- HKEY_CLASSES_ROOT 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
- HKEY_CURRENT_USER 存储当前用户设置的信息。
- HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息。
- HKEY_USERS 包含使用计算机的用户的信息。
- HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息。
存储
XP及以后注册表配置文件存放在 C:\WINDOWS\SYSTEM32\CONFIG
| 名称 | 注册表分支 | 作用 |
|---|---|---|
| DEFAULT | HKEY_USERS.DEFAULT | 缺省启动用户的信息 |
| NTUSER.DAT | HKEY_CURRENT_USER | 存储用户参数选择的信息(此文件放置于用户个人目录,和其他注册表文件是分开的) |
| SAM | HKEY_LOCAL_MACHINE\SAM | 用户及密码的数据库 |
| SECURITY | HKEY_LOCAL_MACHINE\SECURITY | 安全性设置信息 |
| SOFTWARE | HKEY_LOCAL_MACHINE\SOFTWARE | 安装的软件信息 |
| SYSTEM | HKEY_LOCAL_MACHINE\SYSTEM | 存储计算机硬件和系统的信息 |
| USERDIFF | HKEY_USERS | 管理员对用户强行进行的设置 |
操作
通常由系统自带的注册表编辑器操作注册表。
.reg文件编辑
注册表可以通过.reg的文件来实现批量导入修改。
.reg文件通常为如下格式,首先声明版本并空一行,其中@可指定默认值," \需要转义。
|
|
不同数据类型的书写格式
| Value type | Format |
|---|---|
| REG_SZ | “my string” |
| REG_DWORD | dword: NNNNN (hex number) |
| REG_MULTI_SZ | multi_sz: “my string”, “my string” |
| REG_BINARY | hex: xx,xx,xx,xx … |
| HEX | hex(xxxxxxxx): xx,xx,xx,xx The hex(xx) types should correspond to the remaining Microsoft® Win32® registry types. |
甚至还可以使用条件语句
|
|
可以用分号;为reg文件做注释,减号-表示删除操作。
|
|
常用配置reg文件参考
|
|
技巧
在其他系统中直接进入目标系统盘运行注册表编辑器修改的仍然是运行的系统的注册表,应该运行当前系统的注册表编辑器,然后任意选择一项,然后点击文件-加载配置单元-浏览目标盘C:\Windows\System32\Config选择SYSTEM文件用别名挂载然后修改其中的内容。完成后再卸载配置单元。