[TOC]
PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。
早期的图形操作系统,如Win3.x中对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。
为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库
来统一进行管理,将各种信息资源集中起来并存储各种配置信息。
按照这一原则Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。
注册表包含了每个计算机用户的配置文件,以及有关系统硬件、已安装的程序和属性设置的信息。 可以使用注册表编辑器检查并修改注册表。但是您不需要这么做而可以让 Windows 根据需要修改系统注册表,极力建议您不要自己编辑注册表设置。
注册表的特点:
设置后不用重新启动
成为可能。Windows的即插即用特性
。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外还可以避免新设备与原有设备之间的资源冲突。远程管理
得以实现。1.1 注册表目录结构 1.1.1 注册表文件目录
操作系统 注册表文件目录 系统提供的注册表恢复方法
#----------------------------------------------------------------------------
Win 9x/Me %SystemRoot% SCANREG /RESTORE; 导入或导出注册表
Win NT/2000/XP/2003 %SystemRoot%\system32\config 紧急修复磁盘(ERD); 最后一次正确的配置; 导入或导出注册表
1.1.2 注册表文件
操作系统 描述 文件 备份
----------------------------------------------------------------
Win 9x/Me 系统配置 System.dat System.da0
Win 9x/Me 用户配置 User.dat User.da0
Win 9x/Me 网络管理 Config.pol Config.po0
Win NT/2000/XP/2003 系统配置 SYSTEM %SystemRoot%\repair\system
Win NT/2000/XP/2003 程序配置 SOFTWARE %SystemRoot%\repair\software
Win NT/2000/XP/2003 安全配置 SECURITY %SystemRoot%\repair\security
Win NT/2000/XP/2003 缺省用户 DEFAULT %SystemRoot%\repair\default
Win NT/2000/XP/2003 所有用户 %AllUserProfile%\NTUSER.DAT %SystemRoot%\repair\ntuser.dat
Win NT/2000/XP/2003 当前用户 %UserProfile%\NTUSER.DAT
1.2 注册表内部结构
Windows虽然将注册表分了若干个文件,但是对于注册表编辑器来说它们的结构是一致的。所有的数据都是通过一种树状结构以键和子键的方式组织
起来,就象我们的磁盘文件系统的目录结构一样。
每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关联的。
如果某个键包含了子键,则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,以表示在这个文件夹中有更多的内容。
如果这个文件夹被用户打开了,那么这个“+”就会变成“-”,我们可以象打开文件夹一样层层的打开注册表树,当然我们有时并不清楚我们要找的键在哪个目录分支下面,我们就得搜索相应的关键字。
1.2.1 HKEY_CLASSES_ROOT(通用)
Windows资源管理器
打开文件时,将使用正确的应用程序打开对应的文件类型。1.2.2 HKEY_CURRENT_USER(通用)
用户配置文件
。1.2.3 HKEY_LOCAL_MACHINE(通用)
计算机(对于任何用户)的配置信息
。1.2.4 HKEY_USERS(通用)
HKEY_CURRENT_USER是HKEY_USERS的子项
。1.2.5 HKEY_CURRENT_CONFIG(通用)
硬件配置文件信息
。1.2.6 HKEY_DYN_DATA
1.3 注册表支持的数据值的类型
Regedit.exe
支持3种数据类型:
`Regedt32.exe还支持另外2种数据类型:
Windows7中支持的数据类型:
* REG_SZ #字符串
* REG_MULTI_SZ #多重字符串
* REG_DWORD_BIG_ENDIAN #大端双字节值
* REG_DWORD #双字节值
* REG_BINARY #二进制
* REG_DWORD_LITTLE_ENDIAN #小端双字节值
* REG_LINK #连接值
* REG_FULL_RESOURCE_DESCRIPTOR #资源描述符
* REG_EXPAND_SZ #可扩展字符串
1.4 手工修改注册表方法 1.4.1 概述 注册表编辑器是一个可以让你改变系统注册设定的高级工具。有经验的Windows用户可以通过编辑注册表改变系统设定。 启动注册表编辑器的方法是执行%SystemRoot%文件夹下的REGEDIT.EXE(Windows还提供32位的注册表编辑器Regedt32.exe)。
Regedit.exe 不提供下列功能:
Regedt32.exe
。1.4.2 导入和导出注册表项 通常情况下,通过双击注册表文件(*.reg)也可将注册表文件中的内容导入到注册表从而修改注册表。
1.4.2.1 将全部或部分注册表导出到文本文件中
1.4.2.2 导入部分或全部注册表
1.4.3 更改项和值 1.4.3.1 查找字符串、值或注册表项
通过只查找一种类型的信息可以加速搜索;
1.4.3.2 添加项
1.4.3.3 添加值
1.4.3.4 更改值
1.4.3.5 删除注册表项或值
1.4.3.6 重命名注册表项或值
1.4.3.7 更改项和值的重要注意事项
描述:我们这里所说的安全可以看作两个部分一个是操作安全一个系统层面上的安全设置;
描述:系统提供的注册表检查和恢复方法,详见”我的电脑”中的帮助索引”注册表”中的内容 警告:错误地编辑注册表可能会严重损坏您的系统。在更改注册表之前,至少应该备份计算机上任何有价值的数据。
如果必须直接编辑注册表,则请首先将其备份,使用Reg直接编辑本地或远程计算机的注册表,这些更改有可能造成计算机无法操作并需要重新安装操作系统,所以不要直接编辑注册表,而应尽可能利用“控制面板”或“Microsoft管理控制台(MMC)”更改注册表;
注意事项:
描述:注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性能、破坏系统
,甚至要求用户重新安装Windows,可以利用“控制面板”或“Microsoft管理控制台(MMC)”
中的程序安全更改多数注册表设置
2.1 禁用危险的远程注册表 在Win NT/2000/XP/2003下,当你在编辑注册表时,可曾留意注册表编辑器菜单中的“注册表→连接网络注册表”一项? 微软此举的目的,主要是为了方便网络管理员对网络中的计算机进行管理,但如果被别有用心的用户对自己的计算机的注册表进行远程操作,那就非常危险了那么如何禁用它呢?
“Remote Registry Service”
、描述为“允许远程注册表操作”的服务,右键点击,选择“属性”。如果它在运行,则将其停止;在对话框“常规→启动类型”处选择“已禁用”就OK了!若你以后想启动此服务,选择“自动”即可。为了自己计算机的安全,赶快行动吧!net stop "Remote Registry Service"
2.2 禁止当前用户使用注册表工具 注册表对于很多用户来说是很危险的,尤其是初学者,为了安全最好还是禁止注册表编辑器运行。
禁止当前用户使用注册表工具的注册表文件修改方法:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
;#禁止当前用户使用注册表工具 0=允许;1=禁止 立即生效
"DisableRegistryTools"=dword:00000001
请注意:在上述设置情况下,通过双击注册表文件(*.reg)仍可将注册表文件中的内容导入到注册表从而修改注册表
。
有时为了防止一些电脑高手也使用此种方法解除对注册表编辑器的限制,就得使.reg文件不能用系统默认的方式打开,具体的注册表文件修改方法是:
REGEDIT4
[HKEY_CLASSES_ROOT.reg]
;不能简单通过打开.reg文件的方式导入注册表。但一些使用该方法的应用程序也会注册失败。立即生效
@=”txtfile”
这时用户自己也无法简单地通过双击.reg文件修改注册表了。因此要想真正完全限制用户,只能借用第三方软件。 恢复Regedit.exe打开:
REGEDIT4
[HKEY_CLASSES_ROOT\.reg]
;#恢复.reg文件的打开方式。立即生效
@="regfile"
2.3 修复注册表的恶意篡改
2.4 特殊注册表操作 禁止系统缺省的共享目录
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
;#禁止系统缺省的共享目录(Admin$,C$,...,但不包括IPC$)。适用于Win NT/2000/XP/2003。重启系统后生效
"AutoShareWks"=dword:00000000 ;#禁止C$、D$、E$一类的共享。如果要允许置为1。
"AutoShareServer"=dword:00000000 ;#禁止Asmin$共享。如果要允许,置为1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
;#禁止匿名访问IPC$。适用于Win NT/2000/XP/2003。如果要允许,置为0
"restrictanonymous"=dword:00000001
在局域网中,我们常常可以通过网上邻居来访问别的计算机上的内容,从而实现了资源共享的目的。但有时网上邻居会给我们造成安全上的隐患,例如有的不怀好意的用户可以利用网上邻居来非法删除其他计算机上的重要数据,给其他计算机造成了损失。为了避免这样的损失,我们可以利用注册表来隐藏“网上邻居”。 桌面上隐藏网上邻居
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
;桌面上隐藏网上邻居(0=显示,1=隐藏)。注销或重启后生效
"NoNetHood"=dword:00000001
点击“开始->运行”,在输入框中键入regedit / regedt32 并回车;
远程桌面RDP
#开启远程终端服务开启XP&2003终端服务
REG add HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
#取消xp&2003系统防火墙对终端服务的限制及IP连接的限制
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List /v 3389:TCP /t REG_SZ /d 3389:TCP:*:Enabled:@xpsp2res.dll,-22009 /f
#查询远程桌面连接终端里连接端口
reg query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
set /a a=0xe608 #将16进制转换成10
#更改终端端口为59369(0xE7E9)
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\Wds\rdpwd\Tds\tcp /v PortNumber /t REG_DWORD /d 0xE7E9 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber /t REG_DWORD /d 0xE7E9 /f
#清除“远程桌面连接”的历史记录
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default"
系统设置
#解除任务管理器禁用
reg delete hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /f
#解除任务管理器和注册表的文件名方式的禁用
reg delete hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun /f
问题1:注册表编辑已被管理员禁用 解决办法:
WeiyiGeek.修改组策略
DISM /Online/Cleanup-imge/RestoreHealth