一、文件保护机制原理
在计算机上安装新软件时,系统文件和设备驱动程序文件有时会被未经过签名的或不兼容的版本覆盖,导致系统不稳定。随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”作为磁盘空间最大量。
实例三:清空DLLCache文件夹
如果你的系统目前一切正常,没有什么问题,而由于某些原因需要腾出更多的可用空间,那么可以在“开始→运行”对话框中键入“SFC /purgecache”命令清空Dllcache文件夹,注意/前有一个英文半角的空格字符,这样将清空保存在DLLCache中的文件缓存。
不过这样一来,一旦出现问题,我们将会看到如图1所示的窗口,需要插入Windows安装光盘,并从上面恢复相应的系统文件。
实例四:文件扫描也来计划任务
常规上,我们要么手工执行SFC,要么将之设置为每次启动系统时执行,事实上这两种方式都未免太呆板了些,为什么不为文件扫描量身订做一个计划呢?
首先,我们需要将上图2中“设置Windows文件保护扫描”项中设置为“已禁用”,然后在“控制面板”中打开任务计划窗口,双击“添加任务计划”,定位至\Windows\system32\sfc.exe,同时选择“每周”,然后可以选择起始时间和具体的日期,接下来设置用户名和密码。
右击刚刚创建的计划任务,打开属性窗口,如图4所示,在“运行”框中添加一个空格和/scannow参数,表示立即扫描所有受保护的系统文件,以后一到指定的时间,就会自动执行文件扫描操作了。
实例五:文件保护也玩系统共享
默认情况下,Windows会从
\WINDOWS\SYSTEM32\DLLCACHE中读取保护文件,事实上,我们可以打开“注册表编辑器”,定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon]下,找到SFCDllCacheDir键值,将它指到一个更大的分区(如d:\dllcache),或者一个网络共享文件夹中(如\\server\share\dllcache),然后将\WINDOWS\SYSTEM32\DLLCACHE下的所有文件(夹)移动到上述文件夹中,这样Windows将会从这些文件夹中恢复保护文件。
小提示
★此技巧仅适用于Windows 2000,并不适合于Windows XP。
★如果你公司有多台机器,可以将dllcache文件夹放到共享文件夹中,这样可以省下硬盘空间。如果有不同版本的Windows,则需要指定不同的文件夹,如\\server\share\en\dllcache、\\server\share\chs\dllcache等。
实例六:让安装盘进驻硬盘
如果经常遇到如图1所示的提示插入Windows安装光盘的事情,总是相当麻烦的 。不过,我们只要先在非系统分区上(如D:\)建立一个文件夹,如WININS,再把Windows 2000/XP的安装光盘上的所有文件拷贝到这个文件夹下。接着,安装TweakUI,然后打开“控制面板”,双击“用户接口自定义”图标,单击“我的电脑”标签,在“特殊文件夹”选项组中“文件夹名称”旁边下拉列表框,从中选择“安装路径”项目,并单击“改变位置”按钮,从打开的“浏览文件夹”窗口中选中我们拷贝安装光盘的路径即可,如D:\WININS(如图5)。
小提示
★现在硬盘非常大,建议你把Office安装程序从光盘上拷贝到硬盘上再安装,这样添加或删除Office组件时将不再需要插入安装光盘。
实例七:安装光盘也来共享
如果你在公司的局域网中工作,那可以打开“注册表编辑器”,定位到
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup]下找到SourcePath项,双击之,将它修改为网络共享文件夹,如\\server\share\chs\winxp,然后将Windows XP安装光盘上的所有文件拷贝到\\server\share\chs\winxp下,以后需要Windows安装文件时,就会自动从该文件夹下拷贝文件而不会提示插入安装光盘。这样,同事们可以省下足够的本地硬盘空间,而“共享”一个安装文件夹。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/