使用Windows命令行reg控制注册表键值

您所在的位置:网站首页 reg修改注册表键值例子 使用Windows命令行reg控制注册表键值

使用Windows命令行reg控制注册表键值

2024-07-08 06:38| 来源: 网络整理| 查看: 265

熟悉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";

1C:\>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"



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3