熟悉Windows操作系统的朋友可能都知道,Windows操作系统下的注册表相当于系统的数据库 ,部分软件将自己的配置信息都放在注册表里面,而注册表的破坏可以直接导致系统的崩溃。

而熟悉注册表的朋友对"注册表编辑器(regedit.exe)"一点也不陌生,它提供了一个图形化管理注册表的操作界面,本文要介绍的是另一种管理注册表的方法"控制台注册表编辑器(reg.exe)",它可以使用纯命令行的模式对注册表进行添加、删除、查看等操作;适用于在批处理中对注册表进行操作。

  • 控制台注册表编辑器在系统中的位置

如果我们的系统装在"C盘",那么控制台注册表编辑器reg.exe就在"C:\Windows\System32\reg.exe"(一些精简版的系统将这些程序都删除了,这样的情况你可以从其他系统中拷贝一个放置这个目录下)。

要调用"控制台注册表编辑器"只需要打开一个CMD命令行,输入"reg /?"就能看到帮助文件了,如下图所示(注意,Win7以后的系统中必须用管理员身份运行CMD才能对注册表的一些项进行操作,否则会因为权限不足而报错)

  • 注册表类型结构

首先可以使用管理员权限打开cmd,在其中输入"regedit"回车,就能打开图形界面的注册表编辑器,下面用一张图说明注册表中的三个关键术语:"键"、"值"、"值类型";

实际上图形界面的注册表编辑器已经可以完成所有注册表编辑操作,但有时并没有图形界面,比如只有一个shell,这时想修改注册表的值,就可以用到命令行的注册表编辑器了。

  • reg常用命令详解

本节将实例演示如何对注册表进行添加、删除、查看、备份、还原操作,对于其他不常用的功能大家可以自己去摸索。

实例一:使用CMD在根键"HKEY_CURRENT_USER"下创建一个子键"qingsword",在这个子键中,添加一个值名称为"hello",类型为"REG_ZS",数据为"welcome to my website";

1 C:\>reg add hkcu\qingsword /v hello /t REG_SZ /d "welcome to my website"
2 操作成功完成。

在上面的命令中,"reg add" 是添加的意思,HKCU是根键"HKEY_CURRENT_USER"的缩写,另外几个根键的缩写分别为"HKCR"、"HKLM"、"HKU"、"HKCC",取根键的第一个单词的前两个字母和后面两个单词的前一个字母。

hkcu\qingsword就是在根键"HKEY_CURRENT_USER"下添加一个叫做qingsword的子键,如果这个子键存在,则不作任何操作。

/v 后面跟需要创建的值的名称。/t 后面是值的类型,/d 后面是这个值的数据。

命令成功后,在图形化注册表编辑器中可以查看到改动,显示结果如下图所示,如果没有出现变化请按"F5"刷新

reg命令是WindowsXP提供的,它可以添加、更改和显示注册表项中的注册表子项信息和值。

  1,reg add 将新的子项或项添加到注册表中 
  语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f] 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。远程机器上只有 HKLM 和 HKU。 
  值 说明 
  HKCR: HKEY_CLASSES_ROOT 
  HKCU: HKEY_CURRENT_USER 
  HKLM: HKEY_LOCAL_MACHINE 
  HKU: HKEY_USERS 
  HKCC: HKEY_CURRENT_CONFIG

  /v EntryName 
  指定要添加到指定子项下的项名称。 
  /ve 
  指定添加到注册表中的项为空值。 
  /t DataType 
  指定项值的数据类型。DataType可以是以下几种类型: 
  REG_SZ 
  REG_MULTI_SZ 
  REG_DWORD_BIG_ENDIAN 
  REG_DWORD 
  REG_BINARY 
  REG_DWORD_LITTLE_ENDIAN 
  REG_LINK 
  REG_FULL_RESOURCE_DESCRIPTOR 
  REG_EXPAND_SZ

  /s separator 
  指定用于分隔多个数据实例的字符。当REG_MULTI_SZ指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为"\0"。 
  /d value 
  指定新注册表项的值。 
  /f 
  不用询问信息而直接添加子项或项。 
  /? 
  在命令提示符显示帮助。

  注释 
  该操作不能添加子树。该版本的Reg在添加子项时无需请求确认。 
  下表列出了reg add操作的返回值。值说明 
  0成功 
  1失败

/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 不用提示就强行覆盖现有注册表项。

  范例 
  (补充,cmd /k 为在运行中使用reg命令) 
  下列范例说明了如何使用reg add命令: 
  cmd /k reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL" /v Checkedvalue /t reg_dword /d 1 /f(显示隐藏的文件和文件夹) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v systray /t REG_SZ /d "%SystemRoot%\system32\systray.exe" /f(开机启动音量控制) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%SystemRoot%\explorer.exe" /f(开机启动explorer外壳程序) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SoundMan /t REG_SZ /d "%SystemRoot%\SOUNDMAN.exe" /f(开机启动AC97音效管理员程序) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /ve /d "%ProgramFiles%\Internet Explorer\IEXPLORE.EXE" /t REG_SZ /f 
  (UC房间打不开广播) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSCONFIG.EXE" /ve /d "%SystemRoot%\PCHealth\HelpCtr\Binaries\MSConfig.exe" /t REG_SZ /f 
  (运行MSConfig提示找不到文件) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe" /ve /d "%ProgramFiles%\Windows Media Player\wmplayer.exe" /t REG_SZ /f 
  (不能正常调用WMP播放器的修复) 
  cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE" /ve /d "%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /t REG_SZ /f 
  (不能正常调用写字板的修复) 
  cmd /k reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v ctfmon.exe /t REG_SZ /d "%SystemRoot%\system32\ctfmon.exe" /f(开机启动输入法程序CTFMON) 
  cmd /k reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f(加速关闭应用程序)

 例如:

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_MUTLI_SZ,数据: fax\0mail\0\0)

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用插入符号 ( ^ )

reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
reg add HKLM\SYSTEM\CurrentControlSet\services\NlaSvc\Parameters\Internet /v EnableActiveProbing /t REG_DWORD /d 1

  2,reg delete 从注册表删除项或子项 
  语法:reg delete KeyName [{/v EntryName|/ve|/va}] [/f] 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。 
  /v EntryName 
  删除子项下的特定项。如果未指定项,则将删除子项下的所有项和子项。 
  /ve 
  指定只可以删除为空值的项。 
  /va 
  删除指定子项下的所有项。使用本参数不能删除指定子项下的子项。 
  /f 
  无需请求确认而删除现有的注册表子项或项。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了reg delete操作的返回值。值说明 
  0成功 
  1失败

  范例 
  下面的范例说明了如何使用reg delete命令: 
  cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f(任务栏里的任务管理器为灰色) 
  cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg" /f(删除MSConfig启动里的未勾选项目) 
  cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ctfmon.exe" /f(删除CTFMON的镜像劫持) 
  cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v IconStreams /f 
  cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v PastIconsStream /f(删除通知区域的历史记录)

  3,reg compare 比较指定的注册表子项或项 
  语法:reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s] 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。如果指定远程计算机,则只可使用HKLM和HKU子目录树。 
  /v EntryName 
  比较子项下的特定项。 
  /ve 
  指定只可以比较没有值的项。 
  {[/oa]|[/od]|[/os]|[on]} 
  指定不同点和匹配点的显示方式。默认设置是/od。值说明 
  /oa指定显示所有不同点和匹配点。默认情况下,仅列出不同点。 
  /od指定仅显示不同点。这是默认操作。 
  /os指定仅显示匹配点。默认情况下,仅列出不同点。 
  /on指定不显示任何内容。默认情况下,仅列出不同点。 
  /s Separator 
  比较所有子项和项。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了reg compare操作的返回值。值说明 
  0比较成功且结果相同。 
  1比较失败。 
  2比较成功并找到不同点。

  范例 
  下面的范例说明了如何使用reg compare命令: 
  reg compare "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winmine" /od /s

  4,reg copy 将一个注册表项复制到本地或远程计算机的指定位置 
  语法:reg copy KeyName1 KeyName2 [/s] [/f] 
  参数 
  KeyName1 
  指定要复制子项的完整路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。如果指定远程计算机,则只可使用HKLM和HKU子目录树。 
  KeyName2 
  指定子项目的地的完整路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。如果指定远程计算机,则只可使用HKLM和HKU子目录树。 
  /s 
  复制指定子项下的所有子项和项。 
  /f 
  无需请求确认而直接复制子项。 
  /? 
  在命令提示符显示帮助。

  注释 
  该版本的Reg在复制子项时无须请求确认。 
  下表列出了reg copy操作的返回值。值说明 
  0成功 
  1失败

  范例 
  下列范例说明了如何使用reg copy命令: 
  reg copy "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winminebk" /s /f 
  reg copy "hkcu\software\microsoft\winminebk" "hkcu\software\microsoft\winmine" /s

  5,reg export 将指定子项、项和值的副本创建到文件中,以便将其传输到其它服务器 
  语法:reg export KeyName FileName 
  参数 
  KeyName 
  指定子项的完全路径。Export操作仅可在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。 
  FileName 
  指定要导出文件的名称和路径。该文件必须具有.reg扩展名。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了reg export操作的返回值。值说明 
  0成功 
  1失败

  范例 
  下面的范例说明了如何使用reg export命令: 
  reg export "hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg

  6,reg import 将包含导出的注册表子项、项和值的文件复制到本地计算机的注册表中 
  语法:reg import FileName 
  参数 
  FileName 
  指定将复制到本地计算机注册表中的文件的名称和路径。必须预先使用reg export命令创建该文件。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了reg import操作的返回值。值说明 
  0成功 
  1失败

  范例 
  下面的范例说明了如何使用reg import命令: 
  reg import hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg

  7,reg load 将保存的子项和项写回到注册表的不同子项中 
  其目的是保存到一个临时文件中,而该文件可用于注册表项的疑难解答或编辑注册表项。 
  语法:reg load KeyName FileName 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM

  8,reg query 返回注册表的子项下的项和下一层子项的列表 
  语法:reg query KeyName [{/v EntryName|/ve}] [/s] 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。 
  /v EntryName 
  返回特定的项及其值。该参数只返回直接位于指定子项的下一层中的项。将会找不到当前子项下的子项中的项。如果省略 EntryName,则将返回子项下的所有项。 
  /ve 
  指定仅返回为空值的项。 
  /s 
  将返回各个层中的所有子项和项。如果不使用该参数,将只返回下一层的子项和项。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了 reg query 操作的返回值。 值 说明 
  0 成功 
  1 失败

  范例 
  下面的范例说明了如何使用 reg query 命令: 
  reg query "hklm\system\currentcontrolset\control\session manager" /v maxstacktracedepth 
  reg query "hkcu\software\microsoft\winmine" /s

  9,reg restore将保存的子项和项写回到注册表 
  语法:reg restore KeyName FileName 
  参数 
  KeyName 
  指定子项的完全路径。Restore 操作仅在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 
  FileName 
  指定将写回到注册表中的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作预先创建该文件。 
  /? 
  在命令提示符显示帮助。

  注释 
  该操作用于覆盖已编辑的注册表项。编辑注册表项之前,请使用 reg save 操作保存父亲子项。如果编辑失败,则可以使用本操作恢复子项。 
  下表列出了 reg restore 操作的返回值。 值 说明 
  0 成功 
  1 失败

  范例 
  下面的范例说明了如何使用 reg restore 命令: 
  reg restore "hkcu\software\microsoft\winmine" wmbkup.hiv

  10,reg save将指定的子项、项和注册表值的副本保存到指定文件中。 
  语法 
  reg save KeyName FileName 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 
  FileName 
  指定所创建的文件的名称和路径。如果未指定路径,则使用当前路径。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了 reg save 操作的返回值。 值 说明 
  0 成功 
  1 失败

  范例 
  下面的范例说明了如何使用 reg save 命令: 
  reg save "hkcu\software\microsoft\winmine" wmbkup.hiv

  11,reg unload 使用 reg load 操作删除已加载的部分注册表 
  语法:reg unload KeyName 
  参数 
  KeyName 
  指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 
  /? 
  在命令提示符显示帮助。

  注释 
  下表列出了 reg unload 操作的返回值。 值 说明 
  0 成功 
  1 失败

  范例 
  下面的范例说明了如何使用 reg unload 命令: 
  reg unload "hkcu\software\microsoft\winminebk2"

使用Windows命令行reg控制注册表键值相关推荐

  1. 控制Open With菜单项的注册表键值

    当右键单击一个文件的时候, 你会发现有一个菜单项叫做Open With. 为了说明问题, 我们在这里使用.xyz文件类型, xyzfile作为.xyz文件的ProgID. 某种文件的Open With ...

  2. 求助:Windows Service 读取注册表键值

    最近项目需要程序监控记录用户使用和打开的文件,于是做了一个使用Windows Service监控Recent文件夹中文件增加和更改的程序, 但是需要在服务程序确定Recent文件夹的路径,使用Regi ...

  3. VC删除注册表键值项

    2019独角兽企业重金招聘Python工程师标准>>> VC删除注册表键值项. HKEY hkResult; HKEY hKey=NULL; TCHAR lpFilename[MAX ...

  4. Inno setup 访问注册表键值,获取软件安装路径

    ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其 ...

  5. 注册表键值明明存在OpenSubKey始终返回null,解决方案

    注册表键值明明存在OpenSubKey始终返回null,解决方案 参考文章: (1)注册表键值明明存在OpenSubKey始终返回null,解决方案 (2)https://www.cnblogs.co ...

  6. Explorer注册表键值归纳

    WinCE的Explorer的各种相关设置都保存在注册表中,以方便下次启动时恢复之前的各种设置.只是WinCE的Explorer的在WinCe设置的地方比较分散,不好查找,所以本文将这些有用的键值总结 ...

  7. 自制Windows 7 注册表键值修改服务(Service)

    首先说说为什么要写这么一个服务.由于电脑要在公司域中使用,所以不可避免的会继承域中的组策略配置.域中95% 的计算机是XP系统,部分组策略对于Windows 7 系统来说有些多余而且带来很多麻烦. 问 ...

  8. windows黑客编程系列(四):修改注册表键值对之自启动

    文章目录 自启动技术 注册表 WINAPI介绍 RegOpenKeyEx函数 参数说明 返回值 RegSetValueEx 参数说明 返回值 编码 运行效果 自启动技术 对于一个病毒木马来说,重要的不 ...

  9. bat添加修改注册表键值 批处理修改注册表项

    1. 创建REG文件 REG文件的创建过程非常简单,可以通过任何一个文本文件编辑工具来实现.创建前记得先去掉"文件夹选项"中的"隐藏已知文件类型的扩展名"子项, ...

  10. 注册表键值的导出与导入

    其实就是用了Delphi的TRegistry类中两个函数,一个是SaveKey,一个是LoadKey.这两个函数在使用之前要取得SE_BAKCUP_NAME权限,而就是因为LookupPrivileg ...

最新文章

  1. 从智能客服说起,看小i机器人如何用AI赋能产业升级改造|M-TECH AI助力中国智造产业论坛...
  2. 基于OHCI的USB主机 —— UFI数据结构1
  3. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸
  4. 16.看板方法——三类改进机会笔记
  5. (转)Elasticsearch NoNodeAvailableException None of the configured nodes are available
  6. 启动计算机时页面配置出现问题,开机提示“由于启动计算机时出现了页面配置问题…”...
  7. 最好的ppt转pdf软件
  8. oracle exp空数据表,Oracle11g中Exp空表的问题
  9. 学Python Web开发框架到什么程度可以找到开发的工作?
  10. php laravel设置创建目录的权限,在Laravel5中正确设置文件权限的方法
  11. 「2019冬令营提高组」不同的缩写
  12. python -- 连接 orclae cx_Oracle的使用
  13. WHENet: Real-time Fine-Grained Estimation for Wide Range Head Pose
  14. DayDream简单分析(一)
  15. 怎么把SEO和SEM配合起来
  16. 支持向量机 实战电信运营商 -客户流失预警
  17. 四、Vue项目去哪儿网首页推荐和周末游组件并使用Axios获取数据
  18. 一起来看看,除夕夜有哪些走心的文案?
  19. 【算法刷题日记之本手篇】井字棋与密码强度等级
  20. C++ Opencv 实现Canny算法

热门文章

  1. JS获取手机型号和系统类型
  2. 瑞数系列_商标局公告采集
  3. Android使用FFmpeg 解码H264并播放(三)
  4. 【SpringBoot实现企业微信会话内容存档】linux部署
  5. java pdf 替换文字_itext替换pdf中的中文
  6. 最新 iOS13 苹果登录
  7. 公交路线查询数据接口简单介绍
  8. 形而上认识进程间通信
  9. 2021-10-12 SpringMVC实现JSON数据转换,AJAX失效(解决)
  10. deepin linux连接不上网络,把Deepin升级到15.8桌面版后无线上不了网的解决方法