[TOC]

reg 命令

描述:reg命令是WindowsXP提供的,它可以添加、更改和显示注册表项中的注册表子项信息和值,以及导入导出注册表项.

基础语法:

REG Operation [Parameter List]
Operation [ QUERY|ADD|DELETE|COPY|SAVE|LOAD|UNLOAD|RESTORE|COMPARE|EXPORT|IMPORT|FLAGS ]
#要得到有关某个操作的帮助,请键入REG Operation /?

返回代码: (除了 REG COMPARE)

  • 0 - 成功
  • 1 - 失败

注意事项:

  • 如果忽略ComputerName会导致默认对本地计算机进行操作。

通用参数说明:

KeyName #指定子项的完全路径,对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。

以相应的子目录树开始路径.有效子目录树为HKCR、HKCU、HKLM、HKU以及HKCC

WeiyiGeek.KeyName

/v EntryName  #指定操作的指定子项下的项名称
/ve #指定操作的注册表中的项为空值(默认)
/d value #指定注册表项的值
/f #不用询问信息而直接添加子项或项
/? #在命令提示符显示帮助
/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 #可扩展字符串


reg query

描述:返回注册表的子项下的项和下一层子项的列表;

语法:REG QUERY KeyName [/v [ValueName] | /ve] [/s]
[/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator]
[/reg:32 | /reg:64]
参数:
/v EntryName #返回特定的项及其值。该参数只返回直接位于指定子项的下一层中的项,将会找不到当前子项下的子项中的项。
#如果省略 EntryName,则将返回子项下的所有项

/s #将返回各个层中的所有子项和项。
#如果不使用该参数,将只返回下一层的子项和项。(就与递归有相同的means)
/se 为 REG_MULTI_SZ 在数据字符串中指定分隔符(长度只为 1 个字符)。 默认分隔符为 "\0"
/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 位注册表视图访问的注册表项。

基础示例:

#查看 IEXPLORE.EXE 的路径(返回各个层中的所有子项和项)
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /s
#查看 IEXPLORE.EXE 的路径(返回特定的项及其值)
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /v path

#以区分大小写的形式显示项、值和数据和数据类型 REG_SZ的、在 HKLM 更目录下的、"SYSTEM" 出现的精确次数
REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
#显示在 HKCU 根目录下、数据类型为 REG_BINARY 的数据的项、值和数据的 "0F" 出现的次数。
REG QUERY HKCU /f 0F /d /t REG_BINARY

WeiyiGeek.


reg add

描述:将新的子项或项添加到注册表中

语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]

#参数
/s separator 设置分隔符号,指定用于分隔多个数据实例的字符当REG_MULTI_SZ指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为\

注释:该操作不能添加子树,该Windows7版本的Reg在添加子项时无需请求确认

基础示例:

#显示隐藏的文件和文件夹
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL" /v Checkedvalue /t reg_dword /d 1 /f

#开机启动指定程序
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v sysschtask /t REG_SZ /d "%SystemRoot%\system32\calc" #计算器程序
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v ctfmon.exe /t REG_SZ /d "%SystemRoot%\system32\ctfmon.exe" /f #开机启动输入法程序CTFMON
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%SystemRoot%\explorer.exe" /f #开机启动explorer外壳程序


#打开CMD.exe自动执行命令(我们再windows上建立别名的时候使用)
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d f:\ChangeLinuxCommand.bat /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d f:\ChangeLinuxCommand.bat /f


#不能正常运行MSConfig提示找不到文件
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSCONFIG.EXE" /ve /d "%SystemRoot%\PCHealth\HelpCtr\Binaries\MSConfig.exe" /t REG_SZ /f

#不能正常调用WMP播放器的修复
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe" /ve /d "%ProgramFiles%\Windows Media Player\wmplayer.exe" /t REG_SZ /f

#不能正常调用写字板的修复
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE" /ve /d "%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /t REG_SZ /f

#加速关闭应用程序
reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f

#强制显示Administrator帐户
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v Administrator /t reg_dword /d 1 /f

WeiyiGeek.


reg delete

描述:从注册表删除项或子项

语法:reg delete KeyName [{/v EntryName|/ve|/va}] [/f]

#参数
/va 删除指定子项下的所有项,使用本参数不能删除指定子项下的子项.

基础示例:

#删除正常调用写字板
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE" /ve /f

#任务栏里的任务管理器为灰色(不可点击)
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f

#删除MSConfig启动里的未勾选项目(WINDOWS 7)
reg delete "HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg" /f

#删除CTFMON的镜像劫持
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ctfmon.exe" /f

#删除通知区域的历史记录
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v IconStreams /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v PastIconsStream /f


reg compare

比较指定的注册表子项或项

语法:
reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s]

参数 {[/oa]|[/od]|[/os]|[on]} 指定不同点和匹配点的显示方式默认设置是/od
/oa:指定显示所有不同点和匹配点,默认情况下,仅列出不同点
/od:指定仅显示不同点,这是默认操作
/os:指定仅显示匹配点,默认情况下,仅列出不同点
/on:指定不显示任何内容,默认情况下,仅列出不同点
/s :Separator 比较所有子项和项

reg compare操作的返回值

  • 0 比较成功且结果相同
  • 1 比较失败
  • 2 比较成功并找到不同点

基础案例:

#常用和远程主机中的注册表进行比较
reg compare "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winmine" /od /s


reg copy

将一个注册表项复制到本地或远程计算机的指定位置

语法:
reg copy KeyName1 KeyName2 [/s] [/f]

参数:
/s 复制指定子项下的所有子项和项

注释:该版本的Reg在复制子项时无须请求确认

基础示例:

#将注册中HKLM复制到HKCU之中
reg copy "HKLM\software\microsoft\TMM" "hkcu\software\microsoft\TMMbk" /s /f
reg copy "HKLM\software\microsoft\winminebk" "hkcu\software\microsoft\winmine" /s

WeiyiGeek.regcopy


reg export

将指定子项、项和值的副本创建到文件中,以便将其传输到其它服务器

语法:
reg export KeyName FileName
regedit /e FileName " KeyName\[表项]"

参数:
FileName:指定要导出文件的名称和路径。该文件必须具有.reg扩展名。

基础示例:

#方式1:导出注册表到tmm.reg中
reg export "HKLM\software\microsoft\TMM" c:\tmm.reg

#方式2:采用regedit /e导出
regedit /e tsp.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp"

WeiyiGeek.


reg import

将包含导出的注册表子项、项和值的文件复制到本地计算机的注册表中;

语法:
reg import FileName
参数:
FileName 指定将复制到本地计算机注册表中的文件的名称和路径,必须预先使用reg export命令创建该文件

基础案例:

#方式1导入
reg import "hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg #低版本
reg import c:\tmm.reg #Win7不用设置Keyname

WeiyiGeek.reg import


reg save

描述:将指定的子项、项和注册表值的副本保存到指定文件中

语法:
reg save KeyName FileName

参数:
FileName:指定所创建的文件的名称和路径导入名称xxx.hiv 。如果未指定路径,则使用当前路径。

基础示例:

#范例
reg save "hkcu\software\microsoft\winmine" wmbkup.hiv


reg load

将保存的子项和项写回到注册表的不同子项中其目的是保存到一个临时文件中,而该文件可用于注册表项的疑难解答或编辑注册表项。

语法:
reg load KeyName FileName

参数:
FileName:指定要加载的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作创建该文件。

基础示例:

#将文件 TempHive.hiv 加载到注册表项 HKLM\TempHive
reg load "hkcu\software\microsoft\winminebk2" wmbkup.hiv
REG LOAD HKLM\TempHive TempHive.hiv


reg unload

使用 reg unload 操作删除已加载的部分注册表

语法:
reg unload KeyName

基础示例:

reg unload "hkcu\software\microsoft\winminebk2"


reg restore

将保存的子项和项写回到注册表

语法:
reg restore KeyName FileName
 
参数:
指定将写回到注册表中的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作预先创建该文件。

注释:
该操作用于覆盖已编辑的注册表项。编辑注册表项之前请使用 reg save 操作保存父亲子项
如果编辑失败,则可以使用本操作恢复子项。

基础示例:

reg restore "hkcu\software\microsoft\winmine" wmbkup.hiv


reg flags

注册项标志

语法:
REG FLAGS KeyName [QUERY |SET [DONT_VIRTUALIZE] [DONT_SILENT_FAIL] [RECURSE_FLAG]]

参数:
DONT_VIRTUALIZE DONT_SILENT_FAIL RECURSE_FLAG与 SET 一起使用;将设置在命令行上指定的标志,同时将清除没有指定的标志

基础示例:

#范例:显示密钥 MyApp 的当前标志
REG FLAGS HKLM\Software\MyCo\MyApp QUERY
reg FLAGS "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" QUERY

#设置 MyApp 及其所有子密钥上的 DONT_VIRTUALIZE 标志(并清除 DONT_SILENT_FAIL 和 RECURSE_FLAG)
REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s

WeiyiGeek.