DOS环境下玩转Windows注册表
2020-10-31 15:50:31
供稿:网友
注册表编辑器不仅可以在Windows下运行使用,还可以在MS-DOS实模式下运行。有时注册表受到损坏而无法启动Windows时,我们就只有在DOS模式下修复或修改注册表了。注册表的实际物理文件为System.dat和User.dat,也就说注册表中的数据保存在这两个文件中。
导出注册表
此命令可以实现对注册表文件进行备份。
命令格式:Regedit /L:system /R:user /E filename.reg Regpath
参数含义:
/L:system指定System.dat文件所在的路径。
/R:user指定User.dat文件所在的路径。
/E:此参数指定注册表编辑器要进行导出注册表操作,在此参数后面空一格,输入导出注册表的文件名。
Regpath:用来指定要导出哪个注册表的分支,如果不指定,则将导出全部注册表分支。
如果打算将保存在C:\Windows\System.dat和保存在C:\Windows\Profiles\User.dat中所有HKEY_CLASSER_ROOT根键下的分支导出到file.reg中,可以执行如下命令:Regedit /L:C:\Windows\ /R:C:\Windows\Profiles\ /e file1.reg HKEY_CLASSER_ROOT
导入注册表
命令格式:Regedit /L:system /R:user file.reg
参数含义:
/L:system指定System.dat文件所在的路径。
/R:user指定User.dat文件所在的路径。
重建注册表
重建注册表,即重新建立System.dat和User.dat文件。
命令格式:Regedit /L:system /R:user /C file.reg
参数含义:
/L:system指定System.dat文件所在的路径。
/R:user指定User.dat文件所在的路径。
/C:此参数将告诉注册表编辑器,用所指定的.reg文件中的内容重新建立注册表。
如果要用file.reg文件中的内容重新建立整个注册表,并将其保存到C:\Windows\System.dat和C:\Windows\Profiles\User.dat中,可执行命令:Regedit /L:C:\Windows\ /R:C:\Windows\Profiles\ /C file1.reg
删除注册表分支
此命令可以将注册表中的一个子键分支删除。
命令格式为:Regedit /L:system /R:user /D Regpath
参数含义:
/L:system指定System.dat文件所在的路径。
/R:user指定User.dat文件所在的路径。
/C:此参数告诉注册表编辑器,将Regpath所指定的注册表子键分支删除。
恢复注册表
Scanreg.exe可以检查、备份、恢复、修复注册表,此命令存放在“Windows\Command”目录下。
命令格式:Scanreg [/< option >]
参数含义:
/backup参数是备份注册表和相关的配置文件,这些文件分别\windows目录下的System.dat、User.dat、Win.ini、System.ini四个文件,把这些文件压缩成rb――?.cab一个文件,存放在\windows\sysbckup目录下,多次使用此命令会产生多个CAB文件,一般从000开始,系统默认最大备份数为5个。可在\Windows\scanreg.ini文件中对最大备份数进行修改,通过修改“maxbackupcopies=?”的数值即可。
/restore参数是选择一个备份进行恢复注册表,此命令不能在Windows 98环境下执行,必须关机后,重新启动进入纯DOS方式下运行。
/fix参数是修复损坏的注册表,此命令也只能在DOS方式下运行。
/comment="< comment >"参数是在备份注册表时增加一些详细的注释到CAB文件中。
恢复遭到破坏的注册表文件,可以使用Scanreg命令进行修复,方法是,首先进入DOS系统操作环境,然后执行以下命令:Scanreg/Restore
此时系统会提示注册表备份情况,包括CAB文件名及备份时间等,用户可以选择要恢复的CAB文件进行恢复。
如果要查看所有的备份文件及同备份有关的部分,可以执行命令:Scanreg /restore /comment
如果注册表有问题,可以使用Scanreg来修复,命令为:Scanreg /fix。
补充:
//帮助信息,使用的时候删除前面的"//"符号就可以了,最好先本机测试通过.
//regedit.exe -e reg1.txt HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run
//regedit.exe -e reg2.dll "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp"
//上面导出注册表内容
//regedit.exe -s reg2.dll
//上面导入注册表内容,没有提示信息.reg1.dll必须是合法格式.
//____________________________________________________________________________
////Win98注册表文件头格式
//REGEDIT4
//
////win2000/xp/nt注册表文件头格式(空一行)
//_____________________________________________________________________________
//Windows Registry Editor Version 5.00
//
//[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
//"Test1"="Adam"
//"Test2"=hex:61
//"Test3"=dword:00000064
//Test1的类型是"String value"
//Test2的类型是"Binary value"
//Test3的类型是"DWORD value"
//删除一个项目名称
//[HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
//"Test1"=-
//删除一个子项
//[-HKEY_LOCAL_MACHINE/SOFTWARE/Test4Adam]
//reg.exe query "HKLM/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp/PortNumber"
//reg.exe query "HKLM/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp/PortNumber"
//由于后面参数有空格。所以必须使用双引号
//下面这个是win2000kit里面的工具
//E:/SCANREG.EXE 1.05 <[-s] string> < [-k] [-v] [-d] > [[-r] key] [-c] [-e] [-n]
//Examples: SCANREG -s Windows -k -v -d
// SCANREG -s Windows -kvd
// SCANREG /s Windows /r /lm/software /kvde
// SCANREG Windows /lm -kd -n
// SCANREG Windows //MOON/HKEY_LOCAL_MACHINE -d
// SCANREG Windows HKEY_CURRENT_USER/software -kvd
//――――――――――――――――――――――――――――――――――――――
//[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon]
//"AutoAdminLogon"=dword:00000001
//"DefaultDomainName"=""
//"DefaultUserName"="administrator"
//"DefaultPassword"="password"
// 上面自动登陆
//[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Policies/Ratings]
//"key"=-
// 上面删除IE分级审查的口令
//[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer]
//"NoRun"=dword:00000001
//开始没有运行项目
//[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System]
//"DisableRegistryTools"=dword:00000001
// 0x1 禁止注册表编辑
//关于psu.exe 使用注册表内容
//pulist.exe |findstr.exe /i "WINLOGON explorer"
//得到对应的winlogon的PID, 如果你是使用终端登陆进入的话 212,788 为有效pid.
//pulist.exe |findstr.exe /i "WINLOGON explorer"
// winlogon.exe 212 NT AUTHORITY/SYSTEM
// explorer.exe 824 NETBAR-5G2JURY8/Administrator
// winlogon.exe 341 NT AUTHORITY/SYSTEM
// winlogon.exe 788 NT AUTHORITY/SYSTEM
// explorer.exe 1752 NETBAR-5G2JURY8/guest
//psu.exe -p "%windir%/regedit.exe -s admg.reg" -i PID
//psu.exe -p "%windir%/regedit.exe -e admin.reg HKEY_LOCAL_MACHINE/SAM/SAM/" -i PID
//psu.exe -p "%windir%/regedit.exe -s admg.reg" -i 212 (telnet状态使用)
//psu.exe -p "%windir%/regedit.exe -s admg.reg" -i 788 (终端cmd.exe下面使用)