一、打开注册表编辑器
1.1 在运行窗口中打开
首先用【win+r】打开运行窗口,然后执行【regedit】打开注册表编辑器。
1.2 在cmd窗口中打开
在cmd窗口中执行命令【regedit】也可打开。
二、注册表编辑命令
2.1 查询reg命令的帮助信息
执行【reg /?】,即可显示帮助信息。
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 /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
REG FLAGS /?
我们从这个大体的帮助信息也可知道,它有查询、添加、删除、复制、保存、重置、加载、卸载、对比、输出、导入、标志的选项。
那么如果想知道每一个选项怎么用,可以用类似【reg query /?】的命令来查看。
2.2 查询注册表信息——reg query xxx
打印注册表查询命令的帮助信息,执行命令【reg query /?】。
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 query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run】,注意这个启动项注册信息的路径可以在注册表编辑器中查看,而后将路径复制下来,删掉头部的【计算机\】即可作为路径。
2.3 添加注册表信息——reg add xxx
打印一下帮助信息,执行命令【reg add /?】。
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 add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v baidudrive /t REG_SZ /d D:\Users\admin\AppData\Roaming\baidu\BaiduNetdisk\baidunetdisk.exe】
成功后,在注册表编辑器中验证,发现已添加。
2.4 删除注册表信息——reg delete xxx
打印帮助信息,执行命令【reg delete /?】,帮助信息如下。
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
我们删除一下刚刚在2.3小节添加的百度网盘程序启动项, 执行命令【reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v baidudrive】
刷新一下注册表编辑器,果然baidudrive这一项没了。
2.5 导出注册表信息——reg export xxx
(1)为什么要导出注册表信息呢?
因为有时候,我们需要用户方便简单快捷地写入一些注册表信息。
当然不会让他们一个一个地去注册表编辑器添加了,太繁琐了!
而更好的方法就是直接将信息导出到一个reg文件,然后用户拿到这个文件在他的电脑中运行这个文件就可以导入注册表信息了。
(2)打印导出帮助信息,执行命令【reg export /?】
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
(3)尝试导出启动项注册表信息至start.reg文件中
执行命令【reg export HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\D-desktop\start.reg】
在桌面可以发现这个文件
2.6 导入注册表信息——reg import xxx
(1)有哪些方法可以批量导入注册表信息?
直接双击执行注册表项文件,或者在cmd命令窗口中执行【reg import reg_filepath】命令、【regedit /s reg_filepath】命令。
(2)打印导入注册表命令的帮助信息
执行命令【reg import /?】,如下
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 导入注册表项
(3) 导入在2.5小节得到的reg文件
为了让导入文件后有直观的效果,我手动删除了「manictime」这个启动项。
然后执行命令【reg import D:\D-desktop\start.reg】
刷新一下注册表信息,刚刚删的又回来了。
并且,重复的注册表项,会直接覆盖。
另外,regedit命令不仅可以用来打开注册表编辑器,也可以用来导入注册表文件中的注册项,也即和【reg import】功能一样。
先删除manictime的启动项。
执行【regedit /s "D:\D-desktop\start.reg"】。
可以发现,manictime启动项又回来了