跳转至

注册表操作命令

概述

Windows注册表是存储系统配置信息的层次数据库,包含硬件、软件、用户偏好等设置。

reg命令

reg - 注册表控制台工具

reg命令

用于在命令行中操作注册表的命令行工具。

查询注册表

Text Only
reg query keyname [/v valuename | /ve] [/s] [/se separator] [/f data] [/k] [/d] [/c] [/z]

示例:

Text Only
# 查询键下的所有值
reg query HKLM\Software\Microsoft\Windows\CurrentVersion

# 查询特定值
reg query HKLM\Software\Microsoft\Windows\CurrentVersion /v ProductName

# 查询默认值
reg query HKLM\Software\Microsoft\Windows\CurrentVersion /ve

# 递归查询子键
reg query HKLM\Software\Microsoft /s

# 搜索包含特定数据的键
reg query HKLM\Software /f "Microsoft" /s

# 搜索键名
reg query HKLM\Software /f "Windows" /k /s

# 搜索数据
reg query HKLM\Software /f "3.11" /d /s

添加注册表项

Text Only
reg add keyname [/v valuename | /ve] [/t type] [/s separator] [/d data] [/f]

数据类型: - REG_SZ:字符串 - REG_MULTI_SZ:多字符串 - REG_EXPAND_SZ:可扩展字符串 - REG_DWORD:32位整数 - REG_QWORD:64位整数 - REG_BINARY:二进制数据 - REG_NONE:无类型

示例:

Text Only
# 添加字符串值
reg add HKCU\Software\MyApp /v Version /t REG_SZ /d "1.0" /f

# 添加DWORD值
reg add HKCU\Software\MyApp /v Enabled /t REG_DWORD /d 1 /f

# 添加二进制值
reg add HKCU\Software\MyApp /v Data /t REG_BINARY /d fe340ead /f

# 添加默认值
reg add HKCU\Software\MyApp /ve /d "Default" /f

# 强制覆盖(不提示确认)
reg add HKCU\Software\MyApp /v Name /t REG_SZ /d "Test" /f

删除注册表项

Text Only
reg delete keyname [/v valuename | /ve | /va] [/f]

示例:

Text Only
# 删除特定值
reg delete HKCU\Software\MyApp /v Version /f

# 删除默认值
reg delete HKCU\Software\MyApp /ve /f

# 删除键下所有值
reg delete HKCU\Software\MyApp /va /f

# 删除整个键(包括子键)
reg delete HKCU\Software\MyApp /f

复制注册表项

Text Only
reg copy keyname1 keyname2 [/s] [/f]

示例:

Text Only
# 复制键
reg copy HKCU\Software\MyApp HKCU\Software\MyAppBackup /s /f

比较注册表项

Text Only
reg compare keyname1 keyname2 [/v valuename | /ve] [/s] [/oa | /od | /os | /on]

示例:

Text Only
reg compare HKCU\Software\MyApp HKCU\Software\MyAppBackup
reg compare HKCU\Software\MyApp HKCU\Software\MyAppBackup /s

导出注册表

Text Only
reg export keyname filename [/y]

示例:

Text Only
1
2
3
4
5
6
7
8
# 导出整个键
reg export HKCU\Software\MyApp myapp.reg

# 导出HKLM
reg export HKLM\Software\Microsoft\Windows\CurrentVersion version.reg

# 覆盖已有文件
reg export HKCU\Software\MyApp myapp.reg /y

导入注册表

Text Only
reg import filename

示例:

Text Only
reg import myapp.reg

保存注册表配置单元

Text Only
reg save keyname filename [/y]

示例:

Text Only
reg save HKLM\Software software.hiv

还原注册表配置单元

Text Only
reg restore keyname filename

示例:

Text Only
reg restore HKLM\Software software.hiv

加载注册表配置单元

Text Only
reg load keyname filename

示例:

Text Only
reg load HKLM\TempHive c:\temp\hive.hiv

卸载注册表配置单元

Text Only
reg unload keyname

示例:

Text Only
reg unload HKLM\TempHive

注册表根键

缩写 完整名称 说明
HKCR HKEY_CLASSES_ROOT 文件关联和COM信息
HKCU HKEY_CURRENT_USER 当前用户设置
HKLM HKEY_LOCAL_MACHINE 本地机器设置
HKU HKEY_USERS 所有用户配置文件
HKCC HKEY_CURRENT_CONFIG 当前硬件配置

常用注册表路径

系统启动

Text Only
1
2
3
4
5
6
# 开机启动程序
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run

# 服务
HKLM\System\CurrentControlSet\Services

Windows设置

Text Only
1
2
3
4
5
6
7
8
# Windows版本
HKLM\Software\Microsoft\Windows NT\CurrentVersion

# 系统策略
HKLM\Software\Policies\Microsoft\Windows

# 用户策略
HKCU\Software\Policies\Microsoft\Windows

网络设置

Text Only
1
2
3
4
5
# TCP/IP设置
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters

# 网络适配器
HKLM\System\CurrentControlSet\Control\Network

安全设置

Text Only
1
2
3
4
5
# 安全策略
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies

# Windows Defender
HKLM\Software\Policies\Microsoft\Windows Defender

PowerShell注册表操作

查看注册表

PowerShell
# 列出注册表驱动器
Get-PSDrive -PSProvider Registry

# 查看键
Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion

# 查看值
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion

# 获取特定值
(Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion).ProductName

# 递归搜索
Get-ChildItem HKLM:\Software -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*Windows*"}

创建注册表项

PowerShell
1
2
3
4
5
6
7
# 创建键
New-Item -Path HKCU:\Software\MyApp -Force

# 创建值
New-ItemProperty -Path HKCU:\Software\MyApp -Name "Version" -Value "1.0" -PropertyType String -Force
New-ItemProperty -Path HKCU:\Software\MyApp -Name "Enabled" -Value 1 -PropertyType DWord -Force
New-ItemProperty -Path HKCU:\Software\MyApp -Name "Data" -Value ([byte[]]@(0xfe,0x34,0x0e,0xad)) -PropertyType Binary -Force

修改注册表值

PowerShell
Set-ItemProperty -Path HKCU:\Software\MyApp -Name "Version" -Value "2.0"

删除注册表项

PowerShell
1
2
3
4
5
# 删除值
Remove-ItemProperty -Path HKCU:\Software\MyApp -Name "Version"

# 删除键
Remove-Item -Path HKCU:\Software\MyApp -Recurse -Force

检查注册表项是否存在

PowerShell
1
2
3
if (Test-Path HKCU:\Software\MyApp) {
    Write-Host "Registry key exists"
}

导出注册表

PowerShell
reg export HKCU\Software\MyApp myapp.reg /y

导入注册表

PowerShell
reg import myapp.reg

实用脚本

禁用Windows Update自动重启

Text Only
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f

显示文件扩展名

Text Only
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f

显示隐藏文件

Text Only
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f

禁用防火墙

Text Only
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v EnableFirewall /t REG_DWORD /d 0 /f

添加开机启动项

Text Only
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v MyApp /t REG_SZ /d "C:\MyApp\app.exe" /f

备份重要注册表项

Text Only
1
2
3
4
5
6
7
@echo off
set backup_dir=C:\RegBackup
mkdir %backup_dir%
reg export "HKLM\SOFTWARE" "%backup_dir%\HKLM_Software.reg" /y
reg export "HKLM\SYSTEM" "%backup_dir%\HKLM_System.reg" /y
reg export "HKCU\Software" "%backup_dir%\HKCU_Software.reg" /y
echo Backup completed

搜索注册表中的特定字符串

PowerShell
Search-Registry -Path HKLM:\SOFTWARE -SearchString "Microsoft" -Recurse

注意事项

注册表操作风险

  • 修改注册表可能导致系统不稳定
  • 操作前务必备份注册表
  • 不熟悉的键值不要随意修改
  • 建议创建系统还原点

备份注册表:

Text Only
reg export HKLM hklm_backup.reg /y
reg export HKCU hkcu_backup.reg /y

创建还原点:

PowerShell
Checkpoint-Computer -Description "Before registry changes"

参考资料