从Windows 2000开始,微软引入了“Windows文件保护”功能(Windows File Protection)。WFP在后台自动运行,可以防止重要的系统文件被替换,大大提高了系统的稳定性。但你知道怎样更好地使用这个功能吗?如何限制其缓冲区大小,并让多个系统共享保护文件,从而节省硬盘空间?
深入应用Windows文件保护功能(一)
从Windows 2000开始,微软引入了“Windows文件保护”功能(Windows File Protection)。WFP在后台自动运行,可以防止重要的系统文件被替换,大大提高了系统的稳定性。但你知道怎样更好地使用这个功能吗?如何限制其缓冲区大小,并让多个系统共享保护文件,从而节省硬盘空间?怎样让它每次启动系统时直接扫描系统文件?掌握了这些,我们就可以……
一、文件保护机制原理
在计算机上安装新软件时,系统文件和设备驱动程序文件有时会被未经过签名的或不兼容的版本覆盖,导致系统不稳定。随Windows XP一起提供的系统文件和设备驱动程序文件都有Microsoft数字签名,这表明这些文件都是原始的未更改过的系统文件,或者它们已被Microsoft同意可以用于Windows。
WFP是怎样发挥作用的呢?原来,当重要的系统文件(包括sys、dll、ocx、ttf、fon、exe等类型)被替换或移动时,WFP会对新文件的数字签名进行验证,以确定新文件的版本是否为正确的Microsoft版本,如果文件版本不正确,Windows文件保护会自动调用DLLCache文件夹或Windows中存储的备份文件替换该文件,如果Windows文件保护无法定位相应的文件,系统就会提示用户输入该位置或插入安装光盘,如图1。
二、系统文件检查器
Windows的文件保护机制是自动进行的,事实上,我们完全可以借助于
系统文件检查器(System File Checker,简写为SFC)对文件保护机制进行自行控制。在此,我们先介绍一下SFC,具体的实例会在下文中说明。
SFC对应的应用程序名为sfc.exe,你可以在\Windows\system32\下找到它的踪影。使用它,一旦发现某个受保护的系统文件被替换或移动,SFC将从\Windows\System32\DLLCache\文件夹中自动恢复相应的文件(安装了SP2的Windows XP,其DLLCache文件夹中有2169个重要文件,占用364.5MB之多)。
SFC有很多的参数,利用这些参数,可以更好地控制文件保护。
三、文件保护我做主
接下来,我们通过实例的形式来理解SFC的几个主要非常有用的参数:
实例一:每次启动都扫描
在默认设置下,Windows文件保护并非时时刻刻都对那些受保护的文件进行扫描,如果你使用的是公用计算机,那么还是安全为好,在“开始→运行”对话框中键入“gpedit.msc”,打开“本地计算机策略→计算机配置→管理模板→系统”窗口,找到“Windows文件保护”组,在右侧窗格中双击“设置Windows文件保护扫描”项,如图2所示,将其设置为“已启用”,并设置扫描频率为“启动期间扫描”,这样只要Windows启动就会扫描保护文件,这样系统会稳定得多,但其缺点是启动时间会适当拖长。
或者,也可以打开“注册表编辑器”,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]右侧窗格中的SFCDisable值,其默认设置是0,即重新启动后不扫描受保护的文件,我们可以将其设置为1,可以达到同样的目的。
实例二:我的地盘我作主
缺省设置下,Widnows会将验证过的文件版本存储在DLLCache文件夹中,这个文件夹的默认大小是400MB,而Windows Server 2003则无此限制,也就是说允许使用最大空间,如果你的硬盘空间比较紧张,那么不妨考虑适当限制一下。
仍旧打开“本地计算机策略→计算机配置→管理模板→系统”窗口,找到“Windows文件保护”组,在右侧窗格中双击“限制Windows文件保护缓存大小”项,在图3窗口中进行设置,注意最小值应当大于50MB,如果需要指明缓存大小不受限制,请选择“4294967295”作为磁盘空间最大量。
或者,也可以打开“注册表编辑器”,找到[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]右侧窗格中的SFCQuota值进行设置,其默认大小是0xFFFFFFFF(即4294967295,400MB)。
实例三:清空DLLCache文件夹
如果你的系统目前一切正常,没有什么问题,而由于某些原因需要腾出更多的可用空间,那么可以在“开始→运行”对话框中键入“SFC /purgecache”命令清空Dllcache文件夹,注意/前有一个英文半角的空格字符,这样将清空保存在DLLCache中的文件缓存。
不过这样一来,一旦出现问题,我们将会看到如图1所示的窗口,需要插入Windows安装光盘,并从上面恢复相应的系统文件。
网友评论