首页 > 技术文章 > 注册表的介绍与reg语法

lincso 2020-07-09 09:20 原文

注册表(Regostry),这是目前所有windows最重要的地方,系统上所有设置都避不开这里。
注册表是由无数个文件夹跟文件组成的,在注册表里,文件夹被称为"键",其中键又分为"根键"与"子键",当你打开注册表时,你会看到有5个"HEKY"开头的键,这5个就是"根键"(ROOT key),5个根键位于所有键的最上层,分别存放不同类别的系统信息。在这些根键里面的所有文件夹都被称"子键",而所有文件则被称为"键值"。键值具有名称,类型,数据三个字段(相当于一个人的名字,性别,职务),同时,系统上的所有设置都在键值当中。

下面介绍下5个根键:


HEKY_USERS(默认用户)


此根键简写为HKU,其中.DEFAULT子键记录windows用户默认的个人设置。与HKEY_CURRENT_USER是相同内容,如桌面配置,开始菜单等。其中很多类似s-1-15-18,s-1-15-18_classes的子键,都是与系统内置程序与相关服务有关,一般来说,你是用不到(反正我没怎么碰过)


HEKY_CURRENT_USER(当前用户)


此根键简写为HKCU,主要保持当前登陆windows的用户数据,以及个性化设置,桌面外观,软件设置,开始菜单等,而键的内容会随着登陆用户不同而改变,在子键中,Control Panel(控制面板)与Software(软件)最为重要

  • Control Panel:记录用户的操作设置,例如,桌面背景。窗口外观等,几乎所有控制面板的设置都在此,后面会频繁用到
  • Software:记录了用户当前环境中安装的软件设置,甚至windows本身内置的功能,也都在此进行调整,后面常用到。
优先级高于上一个

HKEY_LOCAL_MACHINE(本地硬件配置)


此根键简写HKLM,保存绝大部分的系统信息,包括硬件配置,外围设备,网络设置以及所安装的软件,是注册表数据库中最重要最庞大的根键,5个重要子健

  • HARDWARE:记录了计算机硬件相关各项信息,以及驱动程序的设置等,当使用设备管理器更改硬件的设置时,这个键中数据也会变化
  • SAM与SECURITY:记录本台计算机上的账户与组账户,与相关的系统安全设置,权限分配等,在一般情况下用户无法访问此键内容,因此在这两个键下,看不到任何键值
  • SOFTWARE:包含着已安装的各项软件信息,与HKCU\SOFTWARE不同的是,此键影响范围大,对系统下所有用户都有效
[注意事项]: 多数在HKCU\SOFTWARE下设置的键,键值,在HKLM\SOFTWARE下修改也能够生效,主要区别在HKLM下的设置,win7会应用到每个账户上,由于影响打,为了让各个用户有各自修改空间,后期修改以HKCY\SOFTWARE为主
  • SYSTEM:包含有关系统驱动,驱动程序加载与操作系统本身相关的各项设置信息

HKEY_CLASSES_ROOT(扩展名与文件类型)


此根键简写HKCR,其内容包含了所有文件类型,文件关联,图标与扩展名等信息,甚至每种文件类型以哪个软件打开,也都在此设置


HEKY_CURRENT_CONFIG(当前硬件配置)


  • 此根键简写HKCC,主要记录当前硬件配置值,HKCC跟HKLM部分重叠至于其他硬件配置文件保存在HEKY_LOCAL_MACHINE\SYSTEM|CurrentControlSet\Haedware profiles键下
  • HKCR\*\shell = HKCU\Sfotware\classes\*\shell = HKLM\Sfotware\*\shell相互映射
  • HKCU\Sfotware\classes\*\shell = HKCR\*\shell相互映射
  • HKCR\*\shell= HKLM\Sfotware\*\shell相互映射

总的来说优先级为:
HKCR>HKLM>HKCU

说完了键,现在说说键值

键值:

键值分为 名称,类型,数据,其中数据字段就是键值实际内容

注册表中键值有15种之多,实际可用为6种


字符串值


此类字符串名为REG_SZ

二进制值


此类字符串名为REG_BINARY

DWORD(整数)/QWORD值


此类字符串名为REG_DWORD/REG_QWORD
[注意] 由于win7/10具备32/64能力,因此可以看到两种类型键值DWORD,QWORD,如果没备注,那么用DWORD

多字符串值


此类字符串名为REG_MULTI_SZ

可扩充字符串值


此类字符串名为REG_EXPAND_SZ,其内容初看和字符串值相同,此键值格式通常仅用来指定数据保存格式,内容会随系统设置而改变

 

reg语句用法:

基本语法---添加操作语法
Windows Registry Editor Version 5.00(头文件,必须加,不同系统不同版本) 空行(不同的路径用一个空行隔行) [RegistryPath1](键的路径:[HKCR\*\shell\aaa\bbb]) "DataItemName1"="DataType1:DataValue1" (键值名称(名称要用双引号))=键值类型:键值数据) "DataItemName2"="DataType2:DataValue2" (不用的脚本内容,内部的键的数量,以及键值的数量各不同) 空行 [RegistryPath2] "DataItemName3"="DataType3:DataValue3" 空行 [RegistryPath3] "DataItemName4"="DataType4:DataValue4"
保存格式为:xxx.reg

RegistryEditorVersion:为windows注册表编辑器的版本号,win2000,xp,server2003,vista,win7,10中,其值为Windows Registry Editor Version 5.00,在win98,nt4.0中 为 REGDIT4 (2000,2003mxp兼容)

删除操作语法:

  • 要想删除一个键,只需要在RegistryPath头部添加字符"-"即可,REG支持递归删除.
Windows Registry Editor Version 5.00

[-HKCR*\shell\xxx\yyyyy]

那么yyyyy下面的所有内容都会咔嚓

  • 要想删除一个键值,只需要在DataitemName后面的等号后添加字符"-"即可
[HKEY_CLASSES_ROOT\*\shell\xxxx\\] "ceshi"=-
如果你先重命名一个键或键值,emmmm,那只能删掉在创建。

如果你想注释,只需要在开头加 “;”


最后建议所有试验不要在本机上操作

删除5大根键会有奇效

 

推荐阅读