中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » [ZT]dos下用GhRegEdt处理Windows系统注册表
作者:
标题: [ZT]dos下用GhRegEdt处理Windows系统注册表 上一主题 | 下一主题
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『楼 主』:  [ZT]dos下用GhRegEdt处理Windows系统注册表

这里举个例大家就明白了,HKEY_LOCAL_MACHINE\SYSTEM\WPA这个 键下的值,能编辑吗?这里微软记录了你的系统曾经用过的序列号,当然不允许你随便更改,也就无法抹除自己的盗版史;还有那个流氓中文上网官方游,在发现低版本的第三方软件试图删除它时,也会锁定注册表让你无法清理它。好在有DOS这样优秀的系统,Ther e is no locked file in the Disk Operation System.经过一个下午的折腾,终于把这款在DOS下完美处理注册数据的软件GhRegEdt搞明白了。下面就把我使用这款软件的心得体会跟大家分享交流。 字串4

  提问:我的系统是NTFS格式的,在DOS下能处理注册表吗? 字串9

  回答:NTFS格式分区已经出来差不多8年了,现在新出来的DOS软件基本上都支持NTFS格式分区的数据处理了,我介绍的这款软件GhRegEdt当然支持在NTFS格式分区的系统。

字串4


  提问:它是哪里来的?

字串9


  回答:它来自于Symantec Ghost Solution Suite 2.0 字串4

  提问:它能处理64位Windows系统吗? 字串6

  回答:在DOS下无法编辑处理64位Windows系统的注册表

字串4

  提问:如何使用?

字串1

  回答:直接输入GhRegEdt,就会出现帮助信息,但是有那么一点晦涩难懂,所以这里我会对注册表的每种操作都举实例,这样就方便大家依葫芦画瓢了。 字串3

  1、定位需要处理哪个windows系统的注册表(只有一个windows系统的可以略过此条)。 字串9

  输入: 字串2

  GhRegEdt Windows 字串5

  就会列举出它识别到你硬盘的所有windows系统,例如1.1:\windows表明第一个硬盘的第一个分区,由于我的分区都是NTFS格式的,所以在DOS下就不会显示为C盘。如果你的windows系统安装在第二个硬盘的第一个分区,当然定位就是2 .1:\windows,如果你对你的硬盘分区结构很了解,不需要运行这个命令也能自己推算出windows系统的定位。如果在运行命令时没有加入windows定位参数,它就对默认的windows系统进行注册表操作,当然,最前的硬盘的最前的分区上的 系统就是默认的。 字串6

  2、最简单的注册表操作,当然就是增删注册表项(Addkey/Delkey)

字串6


  1)增加注册表项(Addkey)

字串8

  例如我们要在HKEY_LOCAL_MACHINE\SOFTWARE这项里面加一个项test,那么应该执行命令:

字串3

  GhRegEdt addkey 1.1:\windows HKEY_LOCAL_MACHINE\SOFTWARE\test 字串9

  由于第一个硬盘的第一个分区上的Windows系统必然是默认系统,所以1.1:\windows这个系统定位是可以省略的,那么命令可以简写成 字串8

  GhRegEdt addkey HKEY_LOCAL_MACHINE\SOFTWARE\test 字串9

  2)删除注册表项(Delkey)

字串3

  删除刚才建立的test项

字串8


  GhRegEdt delkey HKEY_LOCAL_MACHINE\SOFTWARE\test 字串3

  是不是很简单啊?! 字串6

  3、增删注册表键值(Addvalue/Delvalue) 字串3

  注册表值的类型有五种,包括: 字串5

  i)字符串值(REG_SZ); 字串2

  ii)二进制值(REG_BINARY);

字串2


  iii)DWORD 值(REG_DWORD); 字串1

  iv)多字符串值(REG_MULTI_SZ); 字串6

  v)可扩充字符串值(REG_EXPAND_SZ) 字串4

  GhRegEdt能支持所有windows里有的注册表值! 字串1

  例如我们要在刚才那个添加的注册表项里增加一个字符串值a b c d,并且将其值设为1234,就可以执行如下命令:

字串8

  GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_SZ 1234 字串2

  这里可以看到我加了引号,因为字符串值里有空格,在DOS下操作,空格意味着参数的改变,所以必须加入引号以防止DOS误判,那么我要加入一个字符串值a,并将其值设为1234,就可以不加引号,命令如下:

字串9

  GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test a REG_SZ 1234 字串9

  如果不指定字符串值,则是修改默认字符串值。 字串8

  删除它就很简单啦!把addvalue换成delvalue就OK!

字串1


  什么?你问我更改键值用什么参数!很简单啦,直接以创建的形式就OK,会覆盖原值的,不用专门的参数!

字串7


  增删多字符串值要稍稍复杂一些,也举例说明,例如我们要在test键下增加多字符串值a b c d,并将其值设为1和2和3和My Dear,那么应该执行如下命令: 字串1

  GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_MULTI_SZ :: "1"::"2"::"3"::"My Dear"::

字串9

  都坚持看到这里了,想必也会删除此值了,的确简单,不累述!

字串1

  4、查看注册表(enumkey/enumvalue) 字串9

  1)展开子键(enumkey)

字串4

  非常不推荐在DOS下查看,因为子键往往很多,在DOS下要翻屏,看不到前面的了,如果实在要看,建议加入|more(前提是你的DOS系统有这个外部命令)来停屏滚! 字串4

  举例,要查看HKEY_LOCAL_MACHINE\SOFTWARE的子键

字串8


  GhRegEdt enumkey HKEY_LOCAL_MACHINE\SOFTWARE|more 字串1

  2)查看某键的值(enumvalue)

字串8


  举例,要查看开头我们建立的test键的值

字串1

  GhRegEdt enumvalue HKEY_LOCAL_MACHINE\SOFTWARE\test

字串4

  5、导入导出注册表(export/import)

字串6

  这个主要用于注册表的备份与恢复,特别提醒的是,GhRegEdt默认只支持英文,如果要想它支持中文,必须加入中国地区代码,也就是加入参数-cp=936! 字串7

  中文windows系统的注册表,必然含有中文,所以在导入导出时,就要加入上述参数,在添加键值时,如果有中文,也必须加入上述参数! 字串1

  1)导出注册表 字串4

  举例,导出HKEY_LOCAL_MACHINE\SOFTWARE\test到第一个硬盘第一个分区根目录成注册表文件a.reg

字串3

  GhRegEdt -cp=936 export 1.1:\a.reg HKEY_LOCAL_MACHINE\SOFTWARE\test 字串5

  2)导入注册表

字串1


  把刚才导出的注册表文件重新导入,这个就简单了,不用在命令行加入路径

字串1


  GhRegEdt -cp=936 import 1.1:\a.reg











===================================================================


引言:首先要说明一个问题,就是为什么不在windows下直接编辑注册表,而要拐弯抹角到DOS下去处理?先看这个帖子https://www.dream4ever.org/showthread.php?t=150488

引用:
作者: href
装过p2p终结者后,注册表中会有这个项,怎么也删除不掉,用icesword也不管用,安全模式也试过了
有什么其它强力点的删注册表的工具吗?

引用:
HKEY_USERS\S-1-5-21-1346847712-1829140141-2094013067-500\Software\YourCompanyName  


回帖者提出的意见也就是更改注册表权限,那是因为他们没法试,试了就知道不行!这里举个例大家就明白了,HKEY_LOCAL_MACHINE\SYSTEM\WPA这个键下的值,能编辑吗?这里微软记录了你的系统曾经用过的序列号,当然不允许你随便更改,也就无法抹除自己的盗版史;还有那个流氓中文上网官方游,在发现低版本的第三方软件试图删除它时,也会锁定注册表让你无法清理它。好在有DOS这样优秀的系统,There is no locked file in the Disk Operation System.经过一个下午的折腾,终于把这款在DOS下完美处理注册数据的软件GhRegEdt搞明白了。下面就把我使用这款软件的心得体会跟大家分享交流。

提问:我的系统是NTFS格式的,在DOS下能处理注册表吗?
回答:NTFS格式分区已经出来差不多8年了,现在新出来的DOS软件基本上都支持NTFS格式分区的数据处理了,我介绍的这款软件GhRegEdt当然支持在NTFS格式分区的系统。

提问:它是哪里来的?
回答:它来自于Symantec Ghost Solution Suite 2.0

提问:它能处理64位Windows系统吗?
回答:在DOS下无法编辑处理64位Windows系统的注册表

提问:如何使用?
回答:直接输入GhRegEdt,就会出现帮助信息,但是有那么一点晦涩难懂,所以这里我会对注册表的每种操作都举实例,这样就方便大家依葫芦画瓢了。

1、定位需要处理哪个windows系统的注册表(只有一个windows系统的可以略过此条)。
输入:

引用:
GhRegEdt Windows  

就会列举出它识别到你硬盘的所有windows系统,例如1.1:\windows表明第一个硬盘的第一个分区,由于我的分区都是NTFS格式的,所以在DOS下就不会显示为C盘。如果你的windows系统安装在第二个硬盘的第一个分区,当然定位就是2.1:\windows,如果你对你的硬盘分区结构很了解,不需要运行这个命令也能自己推算出windows系统的定位。如果在运行命令时没有加入windows定位参数,它就对默认的windows系统进行注册表操作,当然,最前的硬盘的最前的分区上的系统就是默认的。

2、最简单的注册表操作,当然就是增删注册表项(Addkey/Delkey)
1)增加注册表项(Addkey)
例如我们要在HKEY_LOCAL_MACHINE\SOFTWARE这项里面加一个项test,那么应该执行命令:

引用:
GhRegEdt addkey 1.1:\windows HKEY_LOCAL_MACHINE\SOFTWARE\test  

由于第一个硬盘的第一个分区上的Windows系统必然是默认系统,所以1.1:\windows这个系统定位是可以省略的,那么命令可以简写成

引用:
GhRegEdt addkey HKEY_LOCAL_MACHINE\SOFTWARE\test  

2)删除注册表项(Delkey)
删除刚才建立的test项

引用:
GhRegEdt delkey HKEY_LOCAL_MACHINE\SOFTWARE\test  

是不是很简单啊?!

3、增删注册表键值(Addvalue/Delvalue)
注册表值的类型有五种,包括:
i)字符串值(REG_SZ);
ii)二进制值(REG_BINARY);
iii)DWORD 值(REG_DWORD);
iv)多字符串值(REG_MULTI_SZ);
v)可扩充字符串值(REG_EXPAND_SZ)
GhRegEdt能支持所有windows里有的注册表值!
例如我们要在刚才那个添加的注册表项里增加一个字符串值a b c d,并且将其值设为1234,就可以执行如下命令:

引用:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_SZ 1234  

这里可以看到我加了引号,因为字符串值里有空格,在DOS下操作,空格意味着参数的改变,所以必须加入引号以防止DOS误判,那么我要加入一个字符串值a,并将其值设为1234,就可以不加引号,命令如下:

引用:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test a REG_SZ 1234  

如果不指定字符串值,则是修改默认字符串值。
删除它就很简单啦!把addvalue换成delvalue就OK!
什么?你问我更改键值用什么参数!很简单啦,直接以创建的形式就OK,会覆盖原值的,不用专门的参数!
增删多字符串值要稍稍复杂一些,也举例说明,例如我们要在test键下增加多字符串值a b c d,并将其值设为1和2和3和My Dear,那么应该执行如下命令:

引用:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_MULTI_SZ :: "1"::"2"::"3"::"My Dear"::  

都坚持看到这里了,想必也会删除此值了,的确简单,不累述!

4、查看注册表(enumkey/enumvalue)
1)展开子键(enumkey)
非常不推荐在DOS下查看,因为子键往往很多,在DOS下要翻屏,看不到前面的了,如果实在要看,建议加入|more(前提是你的DOS系统有这个外部命令)来停屏滚!
举例,要查看HKEY_LOCAL_MACHINE\SOFTWARE的子键

引用:
GhRegEdt enumkey HKEY_LOCAL_MACHINE\SOFTWARE|more  

2)查看某键的值(enumvalue)
举例,要查看开头我们建立的test键的值

引用:
GhRegEdt enumvalue HKEY_LOCAL_MACHINE\SOFTWARE\test  

5、导入导出注册表(export/import)
这个主要用于注册表的备份与恢复,特别提醒的是,GhRegEdt默认只支持英文,如果要想它支持中文,必须加入中国地区代码,也就是加入参数-cp=936!
中文windows系统的注册表,必然含有中文,所以在导入导出时,就要加入上述参数,在添加键值时,如果有中文,也必须加入上述参数!
1)导出注册表
举例,导出HKEY_LOCAL_MACHINE\SOFTWARE\test到第一个硬盘第一个分区根目录成注册表文件a.reg

引用:
GhRegEdt -cp=936 export 1.1:\a.reg HKEY_LOCAL_MACHINE\SOFTWARE\test  

2)导入注册表
把刚才导出的注册表文件重新导入,这个就简单了,不用在命令行加入路径

引用:
GhRegEdt -cp=936 import 1.1:\a.reg  

家庭作业:

引用:
折腾了这么久,写了这么多,目的是希望对大家有用,现出一道家庭作业,考考大家,看大家掌握了多少!
问题:有个注册表项死活删不掉,怎么办

[ Last edited by wang6610 on 2008-12-7 at 13:36 ]



2008-12-7 13:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 2 楼』:  

GhRegEdt在处理如HKEY_LOCAL_MACHINE的注册表项时,不能用缩写HKLM。



2008-12-7 13:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Jneny
高级用户

中國DOS聯盟常任參議员


积分 686
发帖 318
注册 2005-11-4
状态 离线
『第 3 楼』:  

黑黑。怎么没有贴个下载地址呀,



. 繽紛色彩閃出的美麗是因為它沒有分開每種色彩...>/

    我的百度空间: BEYOND超越        为什么用DOS  
2008-12-13 18:04
查看资料  发送邮件  发短消息 网志  OICQ (290256061)  编辑帖子  回复  引用回复
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 4 楼』:  

版权软件不便贴出。



2008-12-14 12:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ceo5566
新手上路





积分 6
发帖 3
注册 2009-7-8
状态 离线
『第 5 楼』:  

不知楼主测试过没有,偶按照你的方法弄了好久都不行,老提示错误!!!
这位仁兄也有这样的问题:
http://www.cn-dos.net/forum/view ... ;highlight=ghregedt

2010-4-20 20:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yingzi0633
新手上路





积分 4
发帖 2
注册 2010-4-25
状态 离线
『第 6 楼』:  

请问,可以msdos下操作吗?
呵呵

2010-4-26 19:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mini2324
初级用户





积分 106
发帖 55
注册 2010-8-4
状态 离线
『第 7 楼』:  

LZ很强大!高手

2010-8-25 04:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: