reg commands | Microsoft Learn
Windows CMD 终端执行 reg /? 输出的注册表命令行工具帮助首页,展示了 REG.exe 支持的全部子操作、返回码规则、细分帮助查看方式。
1. 支持的所有操作子命令
子命令
功能说明
QUERY
查询注册表项 / 键值
ADD
新增注册表项或键值
DELETE
删除注册表项或键值
COPY
复制注册表项到另一个路径
SAVE
导出指定注册表分支为 hive 配置文件
LOAD
加载离线注册表 hive 文件
UNLOAD
卸载已加载的离线注册表 hive
RESTORE
用 hive 文件还原覆盖注册表对应分支
COMPARE
对比两个注册表项差异
EXPORT
导出注册表为 .reg 文本导入导出文件
IMPORT
导入 .reg 注册表文件
FLAGS
管理注册表项的权限标志
2. 返回代码规则(除 REG COMPARE)
0:命令执行成功
1:命令执行失败
3. 细分帮助查看语法
语法格式:
cmd
REG 子命令 /?
示例:
cmd
REG QUERY /?
REG ADD /?
输入后可查看对应子命令完整参数、用法、示例。
二、REG.exe 工具核心介绍 💡
基础定位
REG.exe 是 Windows 原生内置的注册表命令行管理工具,无需额外安装,支持批处理脚本、远程运维、自动化修改注册表,图形界面注册表编辑器(regedit.exe)能实现的绝大多数操作,它都可以在终端无交互执行。
核心使用场景
批量自动化:写 bat 脚本批量增删改注册表,批量部署系统配置;
远程运维:域环境批量修改多台终端注册表;
离线系统修复:LOAD/UNLOAD 挂载硬盘离线注册表 hive,修复无法启动的系统;
日志审计:EXPORT/QUERY 导出配置做备份、配置比对。
三、高频常用示例(可直接复制运行)
1. 查询注册表项
cmd
REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion"
2. 新增字符串键值
cmd
REG ADD "HKCU\Software\TestConfig" /v AppPath /t REG_SZ /d "D:\test.exe" /f
3. 导出整个注册表分支为 reg 文件
cmd
REG EXPORT HKCU\Software\TestConfig D:\config.reg /y
4. 导入 reg 配置文件
cmd
REG IMPORT D:\config.reg
5. 删除指定键值(无弹窗确认)
cmd
REG DELETE "HKCU\Software\TestConfig" /v AppPath /f
四、重要安全提醒 ⚠️
修改系统关键注册表项(HKLM 分支)必须以管理员身份运行 CMD/PowerShell,普通权限会操作拒绝;
错误删除 / 修改系统注册表核心项会直接导致系统崩溃、无法开机,操作前务必先用 EXPORT 备份对应分支;
恶意程序常利用 REG ADD/IMPORT 写入启动项、劫持系统配置,运维时需监控该命令异常调用。
Windows reg 命令的详细说明:
1. 是什么?
reg 是 Windows 系统自带的命令行工具,用于直接操作注册表(Registry)。注册表是 Windows 的核心数据库,存储了系统配置、程序设置和用户信息。通过 reg 命令,可以无需打开注册表编辑器(regedit.exe),直接在命令行或脚本中增删改查注册表项。
2. 怎么用?
语法格式
cmdCopy
reg <操作类型> [参数]
常用操作类型
命令
作用
示例(简化版)
reg query
查询注册表键值
reg query "HKLM\Software\Microsoft"
reg add
添加/修改注册表项或值
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "C:\wall.jpg"
reg delete
删除注册表项或值
reg delete "HKLM\Software\Test" /f
reg copy
复制注册表项
reg copy "HKLM\Software\App1" "HKLM\Software\App2" /s
reg export
导出注册表项到文件
reg export "HKCU\Software\App" backup.reg
reg import
从文件导入注册表项
reg import settings.reg
reg save
保存注册表项为二进制文件
reg save "HKLM\Software\App" app.hiv
reg restore
从二进制文件恢复注册表项
reg restore "HKLM\Software\App" app.hiv
详细示例
查询注册表
cmdCopy
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir
输出结果示例:ProgramFilesDir REG_SZ C:\Program Files
添加注册表值
cmdCopy
reg add "HKCU\Software\MyApp" /v "Language" /t REG_SZ /d "Chinese" /f
/v:值名称
/t:数据类型(如 REG_SZ 字符串、REG_DWORD 数值)
/d:数据内容
/f:强制覆盖(无需确认)
删除整个注册表项
cmdCopy
reg delete "HKLM\Software\ObsoleteApp" /f
导出注册表备份
cmdCopy
reg export "HKCU\Software\ImportantApp" backup.reg
3. 为什么用?
核心优势
自动化操作:可通过脚本批量修改注册表(如部署系统时配置策略)。
精准控制:避免手动操作注册表编辑器的误触风险。
远程管理:支持操作远程计算机的注册表(需权限):
cmdCopy
reg add "\\192.168.1.100\HKLM\Software\App" /v Setting /t REG_DWORD /d 1
故障修复:快速还原注册表配置(如导入备份文件)。
典型场景
禁用/启用系统功能(如关闭自动更新)。
修改程序默认配置(如调整软件安装路径)。
修复系统错误(如重置网络设置)。
部署企业策略(如统一设置 IE 主页)。
4. 注意事项
权限要求:操作 HKLM(系统级键)需以管理员身份运行命令提示符。
路径格式:注册表路径需用双引号包裹(含空格时必需)。
数据安全:修改前建议先导出备份:
cmdCopy
reg export "HKLM\Software\App" backup.reg
风险警告:错误修改注册表可能导致系统崩溃或程序异常!
5. 帮助信息
查看完整参数说明:
cmdCopy
reg /?
reg query /?
reg add /?
Windows reg 命令基本原理与工作原理 的深度解析:
一、注册表架构基础
树形结构
根键:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER 等预定义根节点
子键:类似文件系统的目录结构(如 HKLM\SOFTWARE\Microsoft)
键值:存储实际数据的名称-数据类型-值三元组(如 REG_SZ, REG_DWORD)
物理存储
Hive文件:注册表内容存储在 %SystemRoot%\System32\config 的二进制文件中
SYSTEM → HKLM\SYSTEM
SOFTWARE → HKLM\SOFTWARE
NTUSER.DAT → 用户配置(每个用户独立)
二、reg命令工作原理
1. 命令解析层
参数解析:解析用户输入的路径、操作类型和数据格式
cmdCopy
reg add "HKLM\SOFTWARE\App" /v Version /t REG_DWORD /d 1
路径转换:将 HKLM 转换为 HKEY_LOCAL_MACHINE 句柄
数据类型验证:检查 /t 参数是否符合注册表支持的类型
2. API调用层
核心依赖:通过 Advapi32.dll 调用 Windows 注册表 API
RegCreateKeyEx():创建/打开注册表项
RegSetValueEx():写入键值数据
RegQueryValueEx():读取键值数据
RegDeleteKeyEx():删除注册表项
3. 权限验证流程
访问控制检查:
mermaidCopy
graph TD
A[reg.exe进程] --> B{检查ACL}
B -->|允许| C[执行操作]
B -->|拒绝| D[返回错误5(拒绝访问)]
UAC影响:普通用户操作 HKLM 时会触发虚拟化重定向
特权要求:修改受保护项(如 HKLM\SAM)需 SYSTEM 权限
4. 数据持久化机制
延迟写入:默认情况下修改操作会先写入内存缓存,由 RegIdleBackup 线程定期刷盘
强制立即写入:使用 reg flush 命令或调用 RegFlushKey() API
三、关键技术细节
1. 注册表事务(Windows 8+)
原子操作:通过 RegCreateKeyTransacted() 实现 ACID 特性
回滚机制:事务失败时自动撤销所有修改
2. 跨进程同步
通知机制:
cppCopy
RegNotifyChangeKeyValue(hKey, TRUE, REG_NOTIFY_CHANGE_LAST_SET, NULL, FALSE);
应用程序可监听注册表变更事件
3. 注册表虚拟化
重定向路径:非管理员用户写入 HKLM 时实际修改 HKCU\Software\Classes\VirtualStore
兼容性设计:解决旧程序权限不足问题
四、底层交互流程
mermaidCopy
sequenceDiagram
participant User
participant reg.exe
participant Kernel
participant HiveFile
User->>reg.exe: reg add HKLM\... /v Data
reg.exe->>Kernel: NtCreateKey (ObReferenceObjectByName)
Kernel->>HiveFile: 加载Hive到内存
reg.exe->>Kernel: NtSetValueKey
Kernel->>HiveFile: 写入CM_HIVE内存结构
HiveFile-->>Kernel: 确认写入
Kernel-->>reg.exe: 返回STATUS_SUCCESS
reg.exe-->>User: 显示操作成功
五、安全机制
内核保护:
CmRegisterCallback():驱动可注册注册表操作回调
PatchGuard:防止直接修改内核注册表结构
审计日志:
启用 Audit Object Access 策略后记录操作事件到安全日志
加密存储:
使用 RtlEncryptMemory() 保护敏感数据(如 LSA 密钥)
六、性能优化
缓存机制:
稳定键:标记不常修改的项以跳过重复查询
延迟加载:Hive 文件按需加载到内存
内存管理:
池分配:注册表操作使用内核非分页池内存
锁优化:采用读写锁(CMHIVE->Lock)提升并发性能
掌握这些原理后,可通过 WinDbg 分析注册表操作的内核调用栈,或使用 Process Monitor 监控实时注册表活动。
Windows reg 命令的典型应用场景 及对应操作示例:
1. 系统配置优化
禁用自动更新
cmdCopy
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f
调整虚拟内存
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "C:\pagefile.sys 4096 8192" /f
2. 软件部署与配置
静默安装时禁用用户协议
cmdCopy
reg add "HKLM\SOFTWARE\MyApp" /v EULA /t REG_DWORD /d 1 /f
设置默认文件关联
cmdCopy
reg add "HKCR\.myext" /ve /t REG_SZ /d "MyApp.File" /f
reg add "HKCR\MyApp.File\shell\open\command" /ve /t REG_SZ /d "\"C:\Program Files\MyApp\app.exe\" \"%1\"" /f
3. 安全策略强化
禁用USB存储设备
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /t REG_DWORD /d 4 /f
关闭远程桌面
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
4. 用户环境定制
强制显示文件扩展名
cmdCopy
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f
禁用任务栏新闻和兴趣
cmdCopy
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Feeds" /v ShellFeedsTaskbarViewMode /t REG_DWORD /d 2 /f
5. 故障排除与修复
重置网络配置
cmdCopy
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\DHCP\Parameters" /f
修复系统文件关联
cmdCopy
reg add "HKCR\txtfile\shell\open\command" /ve /t REG_SZ /d "\"notepad.exe\" \"%1\"" /f
6. 企业环境管理
批量部署打印机
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\OfficePrinter" /v Port /t REG_SZ /d "IP_192.168.1.100" /f
禁用开始菜单广告
cmdCopy
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v DisableSearchBoxSuggestions /t REG_DWORD /d 1 /f
7. 开发者场景
禁用驱动程序签名验证
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy" /v SkuCiPolicy /t REG_DWORD /d 0 /f
调整环境变量
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_EXPAND_SZ /d "C:\Java\jdk-17" /f
8. 性能调优
禁用系统动画效果
cmdCopy
reg add "HKCU\Control Panel\Desktop\WindowMetrics" /v MinAnimate /t REG_SZ /d 0 /f
优化固态硬盘写入
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v NtfsDisableLastAccessUpdate /t REG_DWORD /d 1 /f
最佳实践提醒
操作前备份:
cmdCopy
reg export "要修改的路径" backup.reg
测试环境验证:所有操作先在虚拟机或测试机验证
权限控制:修改系统级键值需管理员权限
版本兼容性:注意不同Windows版本的注册表差异
掌握这些场景后,可通过批处理脚本或组策略(GPO)实现自动化管理。建议结合reg query命令验证修改结果。
PS C:\Users\Administrator> reg /?
REG Operation [Parameter List]
Operation [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMPARE | EXPORT | IMPORT | FLAGS ]
返回代码: (除了 REG COMPARE)
0 - 成功 1 - 失败
要得到有关某个操作的帮助,请键入:
REG Operation /?
例如:
REG QUERY /?
PS C:\Users\Administrator> REG QUERY /?
REG QUERY KeyName [/v [ValueName] | /ve] [/s] [/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator] [/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey Machine - 远程机器名称,省略当前机器的默认值。在远程机器上 只有 HKLM 和 HKU 可用。 FullKey - 以 ROOTKEY\SubKey 名称形式 ROOTKEY - [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey - 在选择的 ROOTKEY 下的注册表项的全名
/v 具体的注册表项值的查询。 如果省略,会查询该项的所有值。
只有与 /f 开关一起指定的情况下,此开关的参数才是可选的。它指定 只在值名称中搜索。
/ve 查询默认值或空值名称(默认)。
/s 循环查询所有子项和值(如 dir /s)。
/se 为 REG_MULTI_SZ 在数据字符串中指定分隔符(长度只为 1 个字符)。 默认分隔符为 "\0"。
/f 指定搜索的数据或模式。 如果字符串包含空格,请使用双引号。默认为 "*"。
/k 指定只在项名称中搜索。
/d 指定只在数据中搜索。
/c 指定搜索时区分大小写。 默认搜索为不区分大小写。
/e 指定只返回完全匹配。 默认是返回所有匹配。
/t 指定注册表值数据类型。 有效的类型是: REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE 默认为所有类型。
/z 详细: 显示值名称类型的数字等值。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
示例:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version 显示注册表值 Version 的值
REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s 显示远程机器 ABC 上的、在注册表项设置下的所有子项和值
REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se # 用 "#" 作为分隔符,显示类型为 REG_MULTI_SZ 的所有值名称的所有 子项和值。
REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e 以区分大小写的形式显示项、值和数据和数据类型 REG_SZ 的、在 HKLM 更目录下的、"SYSTEM" 出现的精确次数
REG QUERY HKCU /f 0F /d /t REG_BINARY 显示在 HKCU 根目录下、数据类型为 REG_BINARY 的数据的项、值和 数据的 "0F" 出现的次数。
REG QUERY HKLM\SOFTWARE /ve 显示在 HKLM\SOFTWARE 下的项、值和数据(默认)
REG ADD /?
PS C:\Users\Administrator> REG ADD /?
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f] [/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey Machine 远程机器名 - 忽略默认到当前机器。远程机器上 只有 HKLM 和 HKU 可用。 FullKey ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下注册表项的完整名称。
/v 所选项之下要添加的值名称。
/ve 为注册表项添加空白值名称(默认)。
/t RegKey 数据类型 [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ] 如果忽略,则采用 REG_SZ。
/s 指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符 如果忽略,则将 "\0" 用作分隔符。
/d 要分配给添加的注册表 ValueName 的数据。
/f 不用提示就强行覆盖现有注册表项。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG ADD \\ABC\HKLM\Software\MyCo 添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead 添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail 添加一个值(名称: MRU,类型: REG_MULTI_SZ,数据: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% 添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%) 注意: 在扩充字符串中使用插入符号 ( ^ )
REG DELETE /?
PS C:\Users\Administrator> REG DELETE /?
REG DELETE KeyName [/v ValueName | /ve | /va] [/f] [/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey 远程机器名 - 如果省略,默认情况下将使用当前机器。 远程机器上只有 HKLM 和 HKU 可用。 FullKey ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下面的注册表项的全名。
ValueName 所选项下面的要删除的值名称。 如果省略,则删除该项下面的所有子项和值。
/ve 删除空值名称的值(默认)。
/va 删除该项下面的所有值。
/f 不用提示,强制删除。
/reg:32 指定应使用 32 位注册表视图访问 注册表项。
/reg:64 指定应使用 64 位注册表视图访问 注册表项。
示例:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout 删除注册表项 Timeout 及其所有子项和值
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU 删除 ZODIAC 上的 MyCo 下面的注册表值 MTU
REG COPY /?
PS C:\Users\Administrator> REG COPY /?
REG COPY KeyName1 KeyName2 [/s] [/f] [/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey Machine 远程机器名 - 如果省略,默认情况下将使用当前机器。 远程机器上只有 HKLM 和 HKU 可用。 FullKey ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下的注册表项的全名。
/s 复制所有子项和值。
/f 不用提示,强制复制。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s 将注册表项 MyApp 下的所有子项和值复制到注册表项 SaveMyApp
REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1 将 ZODIAC 上注册表项 MyCo 下的所有值复制到当前机器上的 注册表项 MyCo1
REG SAVE /?
PS C:\Users\Administrator> REG SAVE /?
REG SAVE KeyName FileName [/y] [/reg:32 | /reg:64]
KeyName ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下的注册表项的全名。
FileName 要保存的磁盘文件名。如果没有指定路径,文件会在调用进程的 当前文件夹中得到创建。
/y 不用提示就强行覆盖现有文件。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv 将配置单元 MyApp 保存到当前文件夹中的文件 AppBkUp.hiv
REG RESTORE /?
PS C:\Users\Administrator> REG RESTORE /?
REG RESTORE KeyName FileName [/reg:32 | /reg:64]
KeyName ROOTKEY\SubKey (只是本地机器) ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 要将配置单元文件还原到的注册表项全名。 覆盖现有项的值和子项。
FileName 要还原的配置单元文件名。 你必须使用 REG SAVE 来创建这个文件。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv 还原文件 NTRKBkUp.hiv,覆盖注册表项 ResKit
REG LOAD /?
PS C:\Users\Administrator> REG LOAD /?
REG LOAD KeyName FileName [/reg:32 | /reg:64]
KeyName ROOTKEY\SubKey (只是本地机器) ROOTKEY [ HKLM | HKU ] SubKey 要将配置单元文件加载进的注册表项名称。创建一个新的注册表项。
FileName 要加载的配置单元文件名。 你必须使用 REG SAVE 来创建这个文件。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG LOAD HKLM\TempHive TempHive.hiv 将文件 TempHive.hiv 加载到注册表项 HKLM\TempHive
REG UNLOAD /?
PS C:\Users\Administrator> REG UNLOAD /?
REG UNLOAD KeyName
KeyName ROOTKEY\SubKey (只是本地机器) ROOTKEY [ HKLM | HKU ] SubKey 要卸载的配置单元的注册表项名称。
例如:
REG UNLOAD HKLM\TempHive 卸载 HKLM 中的配置单元 TempHive
REG COMPARE /?
PS C:\Users\Administrator> REG COMPARE /?
REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s] [/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey Machine 远程机器名 - 如果省略,默认情况下将使用当前机器。 远程机器上只有 HKLM 和 HKU 可用。 FullKey ROOTKEY\SubKey 如果没有指定 FullKey2,FullKey2 则跟 FullKey1 相同。 ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下的注册表项的全名。
ValueName 所选注册表项下的要比较的值的名称。 省略时,该项下的所有值都会得到比较。
/ve 比较空白值名称的值(默认)。
/s 比较所有子项和值。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
Output [/oa | /od | /os | /on] 省略时,只显示不同的结果。 /oa 显示所有不同和匹配结果。 /od 只显示不同的结果。 /os 只显示匹配结果。 /on 不显示结果。
返回代码:
0 - 成功,比较的结果相同 1 - 失败 2 - 成功,比较的结果不同
注意: 每个输出行前面显示的符号定义为: = 表示 FullKey1 等于 FullKey2 数据 < 指的是 FullKey1 数据,与 FullKey2 数据不同 > 指的是 FullKey2 数据,与 Fullkey1 数据不同
例如:
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp 将注册表项 MyApp 下的所有值跟 SaveMyApp 比较
REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version 比较注册表项 MyCo 和 MyCo1 下的值 Version
REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s 将 ZODIAC 上 HKLM\Software\MyCo 下的所有子项和值和当前机器上 的相同项比较
REG EXPORT /?
PS C:\Users\Administrator> REG EXPORT /?
REG EXPORT KeyName FileName [/y] [/reg:32 | /reg:64]
Keyname ROOTKEY[\SubKey] (只是本地机器)。 ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下的注册表项的全名。
FileName 要导出的磁盘文件名。
/y 不用提示就强行覆盖现有文件。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg 将注册表项 MyApp 的所有子项和值导出到文件 AppBkUp.reg
REG IMPORT /?
PS C:\Users\Administrator> REG IMPORT /?
REG IMPORT FileName[/reg:32 | /reg:64]
FileName 要导入的磁盘文件名(只是本地机器)。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
例如:
REG IMPORT AppBkUp.reg 从文件 AppBkUp.reg 导入注册表项
REG FLAGS /?
PS C:\Users\Administrator> REG FLAGS /?
REG FLAGS KeyName [QUERY | SET [DONT_VIRTUALIZE] [DONT_SILENT_FAIL] [RECURSE_FLAG]] [/reg:32 | /reg:64]
Keyname "HKLM\Software"[\SubKey] (仅限本地计算机上的这些密钥)。 SubKey HKLM\Software 下注册表项的全名。 DONT_VIRTUALIZE DONT_SILENT_FAIL RECURSE_FLAG 与 SET 一起使用;将设置在命令行上指定的标志,同时将清除没有指定的标志。
/reg:32 指定应该使用 32 位注册表视图访问的注册表项。
/reg:64 指定应该使用 64 位注册表视图访问的注册表项。
示例:
REG FLAGS HKLM\Software\MyCo\MyApp QUERY 显示密钥 MyApp 的当前标志。
REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s 设置 MyApp 及其所有子密钥上的 DONT_VIRTUALIZE 标志 (并清除 DONT_SILENT_FAIL 和 RECURSE_FLAG)
Windows reg 命令初级示例大纲,适合刚接触注册表操作的用户快速上手:
1. 基本语法
cmdCopy
reg [操作类型] [注册表路径] [参数]
示例:reg query "HKCU\Software"
2. 常用命令及示例
① 查询注册表项
cmdCopy
reg query "HKCU\Control Panel\Desktop"
作用:查看当前用户的桌面相关配置
输出示例:
cmdCopy
Wallpaper REG_SZ C:\Windows\web\wallpaper\windows\img0.jpg
② 添加/修改注册表值
cmdCopy
reg add "HKCU\Software\MyApp" /v "Theme" /t REG_SZ /d "Dark" /f
参数解释:
/v:值名称(Theme)
/t:数据类型(字符串 REG_SZ)
/d:数据内容(Dark)
/f:强制覆盖不提示确认
③ 删除注册表值
cmdCopy
reg delete "HKCU\Software\MyApp" /v "TempSetting" /f
注意:删除前建议先备份!
④ 导出注册表备份
cmdCopy
reg export "HKCU\Software\ImportantApp" backup.reg
作用:将注册表项导出为可编辑的 .reg 文件。
⑤ 导入注册表文件
cmdCopy
reg import settings.reg
用途:快速恢复注册表配置(双击 .reg 文件也可导入)。
**3. 关键参数速查表
参数
说明
示例
/v
指定值名称(Value Name)
/v "StartMenu"
/t
数据类型(Type)
/t REG_DWORD
/d
数据内容(Data)
/d "1"
/f
强制操作(无需确认)
删除或覆盖时使用
4. 注册表路径缩写
缩写
全称
用途
HKCU
HKEY_CURRENT_USER
当前用户配置
HKLM
HKEY_LOCAL_MACHINE
系统全局配置
HKCR
HKEY_CLASSES_ROOT
文件关联和COM组件
5. 新手注意事项
管理员权限:操作 HKLM 需右键以管理员身份运行命令提示符。
路径引号:路径含空格时必须加双引号,如 "HKCU\My App"。
备份习惯:修改前先导出备份:
cmdCopy
reg export "HKCU\Software\MyApp" myapp_backup.reg
危险操作:
❌ 不要随意删除 HKLM\SYSTEM 或 HKLM\SOFTWARE 下的系统关键项
❌ 避免修改未知注册表项
6. 快速获取帮助
cmdCopy
reg /? # 查看所有操作类型
reg add /? # 查看 add 命令详细帮助
7. 实战练习
任务:禁用任务栏右键菜单中的“新闻和兴趣”
cmdCopy
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Feeds" /v "ShellFeedsTaskbarViewMode" /t REG_DWORD /d 2 /f
效果:重启资源管理器后生效(无需重启系统)。
掌握这些基础操作后,可尝试通过 .bat 脚本批量处理注册表任务!
Windows reg 命令中级示例大纲,适合已掌握基础操作的用户提升注册表管理能力:
1. 高级操作类型
① 注册表权限管理
cmdCopy
regini.exe permissions.txt
示例文件 permissions.txt:
Copy
HKEY_LOCAL_MACHINE\SOFTWARE\MyApp [1 5 7 17]
权限代码:1 (Administrators 完全控制)5 (Users 读取)7 (System 完全控制)17 (继承父项权限)
② 获取注册表项所有权
cmdCopy
reg takeown /hklm\software\MyApp /s
参数:/hklm 指定根键/s 递归操作子项
2. 远程注册表操作
cmdCopy
reg add "\\192.168.1.100\HKLM\Software\App" /v "LogLevel" /t REG_DWORD /d 3 /f
要求:
远程计算机启用 Remote Registry 服务
使用管理员凭据连接
3. 二进制数据处理
保存注册表为二进制文件
cmdCopy
reg save HKLM\SYSTEM\CurrentControlSet system_backup.hiv
从二进制文件恢复
cmdCopy
reg restore HKLM\SYSTEM\CurrentControlSet system_backup.hiv
4. 注册表对比工具
cmdCopy
reg compare "HKCU\Software\App" "HKCU\Software\App_Backup" /s /oa
参数:/s 递归比较子项/oa 输出所有差异项(格式:添加/修改/删除)
5. 复杂数据类型操作
扩展字符串(REG_EXPAND_SZ)
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "Temp" /t REG_EXPAND_SZ /d "%%SystemRoot%%\Temp" /f
多字符串(REG_MULTI_SZ)
cmdCopy
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v "BlockedExtensions" /t REG_MULTI_SZ /d "exe\nbat\nmsi" /f
6. 注册表监控与审计
导出当前状态快照
cmdCopy
reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion Policies.reg /y
使用 PowerShell 监控变化
powershellCopy
$before = reg export HKCU\Software\App app_before.reg
# 进行注册表操作...
$after = reg export HKCU\Software\App app_after.reg
Compare-Object (Get-Content app_before.reg) (Get-Content app_after.reg)
7. 注册表虚拟化操作
加载其他用户的注册表配置
cmdCopy
reg load HKU\TempUser C:\Users\John\NTUSER.DAT
操作后卸载
cmdCopy
reg unload HKU\TempUser
8. 高级脚本技巧
批量修改策略设置
cmdCopy
@echo off
for /f "tokens=*" %%i in (computers.txt) do (
reg add "\\%%i\HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableWindowsUpdateAccess" /t REG_DWORD /d 1 /f
)
computers.txt 内容:
Copy
PC01
PC02
PC03
9. 注册表备份策略
全自动备份脚本
cmdCopy
@echo off
set date=%DATE:/=-%
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" System_%date%.reg /y
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer" User_%date%.reg /y
7z a Backup_%date%.7z *.reg
del /q *.reg
10. 故障排除技巧
检测无效注册表项
cmdCopy
reg query "HKLM\SOFTWARE" /s | findstr /i "error"
重置注册表权限
cmdCopy
reg restore HKLM\SOFTWARE\App security_backup.hiv
11. 注册表与其他工具集成
结合 WMIC 查询
cmdCopy
wmic /namespace:\\root\default path StdRegProv call EnumKey ^&h80000002,"SOFTWARE\Microsoft",""
通过 PowerShell 操作
powershellCopy
New-ItemProperty -Path "HKLM:\SOFTWARE\App" -Name "DebugMode" -Value 1 -PropertyType DWORD -Force
12. 安全注意事项
ACL 审计:定期检查敏感注册表项的访问权限
cmdCopy
regedt32.exe
虚拟化保护:对关键项启用写保护
cmdCopy
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v "DisableRegistryTools" /t REG_DWORD /d 0 /f
日志监控:启用注册表操作审计策略(需组策略配置)
掌握这些中级技巧后,可结合自动化工具(如 Ansible、Puppet)实现企业级注册表管理。建议在测试环境中充分验证后再应用于生产环境!
Windows reg 命令高级示例大纲,涵盖企业级管理、自动化及深度定制场景:
1. 注册表事务性操作(Windows 10+)
cmdCopy
reg transaction add /ru "HKLM\SOFTWARE\App" /v "Config" /t REG_BINARY /d "A0B1C2"
reg transaction commit
特性:
支持原子性操作(全部成功或回滚)
需管理员权限
适用场景:关键配置的批量更新
2. 注册表性能优化
禁用注册表延迟写入
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v "NtfsDisableLastAccessUpdate" /t REG_DWORD /d 1 /f
调整注册表缓存
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "RegistrySystemCache" /t REG_DWORD /d 1 /f
3. 注册表虚拟化深度控制
禁用特定应用的虚拟化
cmdCopy
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\App.exe" /v "DisableRegistryVirtualization" /t REG_DWORD /d 1 /f
全局关闭虚拟化
cmdCopy
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v "GlobalFlag" /t REG_DWORD /d 512 /f
4. 注册表符号链接操作
cmdCopy
reg create "HKLM\SOFTWARE\LinkedKey" /t REG_LINK /d "\Registry\User\S-1-5-21-123456789-1234567890-123456789-500" /f
用途:跨注册表根键创建软链接
限制:需 SeCreateSymbolicLinkPrivilege 权限
5. 注册表热修补(Hot Patching)
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache" /v "AppCompatCache" /t REG_BINARY /d "..." /f
场景:动态修改运行中系统的兼容性设置
风险:可能导致系统不稳定
6. 注册表与 WMI 深度集成
cmdCopy
wmic /namespace:\\root\default path StdRegProv call SetDWORDValue ^&h80000002,"SOFTWARE\App","DebugLevel",2
优势:支持远程操作和脚本化
扩展:结合 PowerShell 实现条件注册表操作
powershellCopy
Get-WmiObject -Namespace root\default -Class StdRegProv | ForEach-Object {
$_.SetDWORDValue(2147483650, "SOFTWARE\App", "LogLevel", 3)
}
7. 注册表版本控制
Git 集成
cmdCopy
reg export "HKLM\SOFTWARE\App" AppConfig.reg
git add AppConfig.reg
git commit -m "Registry snapshot $(date)"
差异回滚
bashCopy
diff -u old.reg new.reg | reg patch /apply
8. 注册表安全加固
启用审核策略
cmdCopy
reg add "HKLM\SECURITY\Policy\PolAdtEv" /v "AuditObjectAccess" /t REG_DWORD /d 3 /f
监控敏感项访问
cmdCopy
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableAuditPrivilege" /t REG_DWORD /d 1 /f
9. 注册表与容器化技术
Docker Windows 容器注册表隔离
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Docker\Parameters" /v "RegistryFilter" /t REG_MULTI_SZ /d "HKLM\SOFTWARE\App\Container*" /f
Hyper-V 隔离配置
cmdCopy
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\Storage" /v "VhdRoot" /t REG_EXPAND_SZ /d "C:\ContainerVHDs" /f
10. 注册表灾难恢复
紧急恢复控制台操作
cmdCopy
reg restore HKLM\SYSTEM C:\backups\system.hiv
离线注册表编辑
cmdCopy
reg load HKLM\TempSys C:\Windows\System32\config\SYSTEM
reg add HKLM\TempSys\ControlSet001\Services\VSS /v Start /t REG_DWORD /d 4 /f
reg unload HKLM\TempSys
11. 注册表与内核调试
启用调试注册表
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" /v "DEFAULT" /t REG_DWORD /d 0xffffffff /f
内核内存调优
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "PagedPoolSize" /t REG_DWORD /d 0xFFFFFFFF /f
12. 注册表元数据分析
查询键值存储结构
cmdCopy
reg query "HKLM\SOFTWARE" /v "SymbolicLinkValue" /t REG_LINK
二进制数据解析
powershellCopy
$data = reg query "HKLM\SAM\Domains\Account" /v F /t REG_BINARY
[System.BitConverter]::ToString($data).Replace("-","")
最佳实践
变更管理:所有操作纳入 ITIL 流程管理
灰度发布:通过组策略分阶段推送注册表变更
熔断机制:自动化脚本需包含回滚逻辑
合规审计:定期检查注册表项完整性(如使用 reg compare + 哈希校验)
掌握这些高级技巧后,可结合 CI/CD 流水线实现注册表即代码(Registry-as-Code)管理模式。建议在受控环境中充分验证!
Windows reg 命令专家级示例大纲,涵盖内核级操作、逆向工程与极端场景解决方案:
1. 注册表内存镜像操作
直接映射注册表Hive到内存
cmdCopy
reg save HKLM\SYSTEM \??\PhysicalMemory
原理:利用\??\PhysicalMemory路径绕过文件系统(需关闭PatchGuard)
风险:可能导致BSOD,仅用于取证分析
解析Hive二进制结构
powershellCopy
$hive = [IO.File]::ReadAllBytes("C:\config\SYSTEM")
$baseBlock = [BitConverter]::ToInt32($hive, 0x1000)
Write-Host "Hive Root Block at 0x$($baseBlock.ToString('X8'))"
2. 注册表回调机制利用
拦截注册表操作(需驱动开发)
cCopy
// 内核驱动代码片段
NTSTATUS RegCallback(PVOID CallbackContext, PVOID Argument1, PVOID Argument2) {
REG_NOTIFY_CLASS op = (REG_NOTIFY_CLASS)(ULONG_PTR)Argument1;
if (op == RegNtPreSetValueKey) {
// 拦截值修改操作
}
return STATUS_SUCCESS;
}
CmRegisterCallback(RegCallback, NULL, &g_Cookie);
应用:实时监控/阻止勒索软件加密文档扩展名注册表项
3. 注册表碎片化修复
强制重建SAM Hive
cmdCopy
reg save HKLM\SAM sam.hiv
reg restore HKLM\SAM sam.hiv /f /c
参数:/c 强制重建Hive结构
场景:修复因长期运行导致的注册表性能下降
4. 跨用户会话注册表注入
劫持COM组件注册
cmdCopy
reg add "HKU\S-1-5-21-*\Software\Classes\CLSID\{CLSID}" /v AppID /t REG_SZ /d "{APPID}" /f
技巧:使用通配符*匹配所有用户SID
防御:启用UAC虚拟化和CLSID隔离
5. 注册表与Hypervisor联动
HVCI兼容性强制注册
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 1 /f
底层机制:修改HVCI策略不重启生效
验证:
powershellCopy
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
6. 注册表时间线追溯
提取注册表修改历史
powershellCopy
$hive = Get-WmiObject -Namespace root\default -Class StdRegProv
$hive.EnumKey(2147483650, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") |
ForEach-Object {
$key = $_.sNames
$hive.GetDWORDValue(2147483650, "SOFTWARE\...$key", "InstallDate")
}
结合:USN Journal分析实现精准时间戳追踪
7. 注册表熵值混淆
反逆向工程保护
cmdCopy
reg add "HKLM\SOFTWARE\ProtectedApp" /v Config /t REG_BINARY /d (Get-Random -Count 64 -AsByteStream) /f
原理:通过随机填充数据增加静态分析难度
增强:结合CryptProtectMemory加密内存中的键值
8. 注册表与EFI联动
UEFI变量同步
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot" /v UEFISettings /t REG_BINARY /d (Get-SecureBootUEFI -AsByteArray) /f
要求:
启用Secure Boot
加载UEFI驱动
9. 注册表热迁移技术
实时同步集群节点注册表
powershellCopy
# 主节点
reg export HKLM\Cluster /live | Out-File cluster.reg -Encoding Byte
# 从节点
while($true) {
reg import \\Master\cluster.reg /live
Start-Sleep -Seconds 5
}
参数:虚构的/live参数示意持续同步概念
实际方案:需结合WSFC或SMB3持续可用性
10. 注册表极限恢复技术
从分页文件提取注册表碎片
cmdCopy
dd if=\\.\Pagefile.sys of=registry_fragments.bin bs=4096
strings registry_fragments.bin | findstr "HKLM\\"
原理:注册表修改残留可能存在于分页文件
工具:需配合WinDbg分析内存转储
专家级防御策略
注册表指纹校验:
powershellCopy
Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet |
Get-FileHash -Algorithm SHA256
RPC注册表防火墙:
cmdCopy
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\RPC" /v RestrictRemoteClients /t REG_DWORD /d 1 /f
量子安全注册表(概念):
cmdCopy
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v QuantumCrypto /t REG_DWORD /d 1 /f
逆向工程工具箱
Hive解析工具:
RegDumpView(解析Hive bin结构)
yarp + WinHex(手工分析)
实时监控工具:
ProcMon过滤RegSetValue
内核模式RegFilter驱动
模糊测试框架:
pythonCopy
import winreg
while True:
rand_key = ''.join(random.choices(string.ascii_letters, k=8))
winreg.CreateKey(winreg.HKEY_CURRENT_USER, rand_key)
掌握这些技术需配合:
Windows内核原理手册
ACPI/EFI规范文档
硬件级调试工具(如Intel VTune)建议在隔离的硬件实验室环境中操作!