- 为什么要有注册表?
早期的Windows版本是没有注册表的,每个程序的设置都以.ini文件(Initialization File 初始化文件)的形式存储。里面的内容和编码都没有规范,而且系统多用户的时候,一些账户无法访问指定文件的时候,会导致程序无法打开。
所以,从Windows95开始引入了注册表这个概念,类似于数据库存储,集中起来统一管理。
- 注册表的结构 key-value结构
key又分为根键,主键,子键。根键相当于磁盘根目录,主键相当于类别文件夹,子键就相当于文件夹中的文件
通常有五个预设的根键
1.HKEY_CLASSES_ROOT 用于管理文件系统,记录Windows中所有数据文件的信息,主要是不同文件的后缀和与之关联的应用程序。当用户点击一个文件的时候,系统可以通过这些信息启动相应的应用程序。
2.HKET_CURRENT_USER 用于管理当前用户的配置情况,在这个根键中我们可以查阅计算机中登录的用户信息、密码等相关信息。
3.HKEY_LOCAL_MACHINE 用于管理系统中的所有硬件设备的配置情况,在该根键中存放的是用来控制系统和软件的设置。由于这些设置时针对那些使用系统的账户而设置的,是一个公共配置信息,所以它与具体账户无关。
4.HKEY_USERS 用于管理系统中的所有用户的配置信息,电脑系统中的每个用户的信息都保存在该文件夹中,如用户在该系统中的一些口令、标识等。
5.HKEY_CURRENT_CONFIG 用于管理当前系统用户的配置情况,如该用户自定义的桌面管理、需要启动的程序列表等信息。
修改注册表的时候应当注意
1、操作之前先备份。嫌备份所有的注册表太麻烦的话,备份下修改的那个部分就行了,还原的时候双击备份文件还原。
2、尽量一步一步操作注册表,这样那个步骤除了问题就知道了,省的一步一步排除。
- 组策略
组策略就相当于注册表的图形界面版本,它提供部分注册表的配置内容,大多数内容修改了都不会引起操作系统崩溃等情况。
Tips:如果Windows版本为家庭版,则出厂时候没有提供组策略,需要手动安装组策略。新建文件,输入
@echo off
pushd \"%~dp0\"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:\"C:\Windows\servicing\Packages\%%i\"
pause
保存成.cmd,然后管理员身份运行就可以了。
备注:
cmd(commad),在HKEY_CLASSES_ROOT中和命令提示符关联起来,这种文件就是用命令提示符运行。
打开运行,gpedit.msc打开组策略。组策略中包含计算机配置和用户配置,在这里可以对注册表进行一些安全的修改。
备注:
gpedit g:group p:policy
msc m:Microsoft s:Snap-In嵌入式管理单元 c:control