关于“Windows文件保护”的详细解答
有不少朋友曾经被“Windows文件保护”搞的焦头烂额,本人也是如此,下文将帮你详细了解“Windows文件保护”的原理以及解决方法。
微软为了提高Windows系统的可靠性和稳定性,从Windows 2000开始使用一种叫做WFP(Windows File Protection,Windows文件保护)的机制。现在,Windows 2000和Windows XP都有这个功能。本文将为你详细讲解WFP如何使用以及如何设置。
WFP是如何工作的
WFP把某些文件认为是非常重要的系统文件,例如所有的dll文件,exe、fon、ocx、sys还有tff等后缀的文件。在Windows 2000/XP刚装好后,系统会自动备份这些文件到一个专门的叫做dllcache的文件夹,这个dllcache文件夹的位置默认保存在%SYSTEMROOT%\system32\dllcache。当你使用了Windows系统一段时间之后,会发现一些其它类型的文件,例如cpl、cpx、inf、rsp、tlb等文件也会当作重要系统文件保护起来,并且WFP会根据这些文件建立一个目录,显示了所有受保护文件的正确版本和类型。一旦检测到文件被替代或者覆盖,就可以自动从备份的文件中恢复。而如果备份的文件由于某些原因也不可用,那么Windows就会要求你插入系统光盘,以便从光盘上恢复。你也许已经意识到了,dllcache这个文件夹会变得很大。在下文中我也会说明如何减小这个文件夹的体积。
使用情况
WFP的最基本的用途,就是保护系统文件不被更改。
对于系统管理员,这项功能能够减轻他们的负担。他们不用在由于某些用户的错误操作而忙碌。而对于一般用户,这功能更是可以当作救命稻草,从此不用再害怕由于安装错误的软件造成系统的不正常工作。不过对于那些有经验的高级用户,WFP也会成为一种负担,因为WFP会消耗一定的CPU和硬盘资源。
怎样证明WFP工作正常
在前面我们已经知道,WFP的主要功能就是为了防止重要的系统文件被错误删除或者替换,那么我们要验证WFP是否工作正常也就很简单了,只要我们人为地删除或者修改一些系统文件,然后看看WFP机制能否把被替换的文件恢复正常,就知道WFP是否正常工作了在运行中输入"%systemroot%\system32"并回车,打开System32文件夹,随便选中一个受保护文件(以cmd.exe为例),然后给这个文件重命名(这里假设改为cmd.exe.bak),确定后等待几秒钟,然后按F5 刷新一下,你可以看到,除了改名后的cmd.exe.bak,这里又有了一个新的cmd.exe,这就是操作系统从备份的文件中恢复出来的。
使用和自定义WFP
Windows文件保护可以用多种方式自定义它的运作,最简单的办法就是配置组策略(组策略只有Windows 2000和Windows XP Professional有,Windows XP Home没有)。在运行中输入"gpedit.msc"然后回车,可以打开组策略编辑器。依次展开Computer Configuration-Administrative Templates,-System(计算机配置-管理模板-系统),然后选择Windows File Protection(Windows文件保护)文件夹(图二)。双击每一项就可以分别进行设置。
Set Windows File Protection scanning(设置Windows文件保护扫描),这个策略可以让你决定是否在Windows启动的时候自动进行WFP扫描。如果你启用了这个策略,将会延长系统的启动时间。所以一般情况下最好不要启用它。
Hide the file scan progress window(隐藏文件扫描进度窗口),启用这个设置后在进行WFP扫描的时候就不会显示扫描的进度窗口。
Limit Windows File Protection cache size(限制Windows文件保护缓存大小),默认情况下,WFP会保存大量的系统文件备份(这主要取决于你的硬盘的大小),这样做虽然使得恢复系统文件变得简单易行,但是却占用了太多的硬盘空间。如果你不进行任何设置,那么对于WFP的备份文件是没有大小限制的。这是一件很糟糕的事情,所以我们要启用这个策略,然后输入指定的大小(MB为单位)。如果你的硬盘不是很大,建议你设置100MB就可以,不过有时候扫描时会需要你插入光盘。否则,最好设置200到300MB左右,这样,在恢复文件的时候需要你插入光盘的次数会少很多。而这个操作也可以在命令行的模式下设置,具体的格式是:sfc/cachesize=x,这个X就是你要指定的缓存大小。
Specify Windows File Protection cache location(指定Windows文件保护缓存位置),默认情况下,缓存文件被保存在%SystemRoot%\system32\dllcache文件夹内,也许你的系统盘空间已经很紧张了,不过其它分区还很空,那么启用这个策略,并指定一个位置,缓存文件就会全部保存在那里。
如果你要手工检查系统文件,只要点击开始-->程序-->附件,选择DOS提示符,(或在运行中输入CMD,然后回车,打开命令行界面),然后键入SFC并回车确定,该命令还有很多参数开关,我们下面会一一列出
SFC/SCANNOW:使用这一参数可以立即调用WFP对所有实施保护的文件进行扫描。
SFC /SCANONCE:使用这一参数WFP将在下次启动系统时对所有实施保护的文件进行扫描。
SFC /SCANBOOT:使用该参数WFP将在每次系统启动时对所有实施保护的文件进行扫描。
SFC /CANCEL:在Windows 2000中,该参数将使WFP立即终止正在进行的扫描。
SFC /QUIET:在Windows 2000中,该参数将使WFP不进行提示自动恢复所有监测到的版本不匹配的系统文件。
SFC /PURGECACHE:该参数将清空你的dllcache文件夹,而在Windows 2000中运行这个命令后还会自动进行一次扫描。
SFC /REVERT:在Windows XP中,把所有的WFP有关的设置全部初始化(Windows 2000中相应的命令是sfc /enable)
禁用WFP
作为一个后台运行的服务,WFP会消耗一定的资源,如果你的电脑配置不是很高,那么就完全可以禁用,以便提高电脑性能。不过禁用后Windows的稳定性可能得不到保障,这个由你自己来决定。
如果你要禁用WFP,需要修改注册表,同时,在注册表中也可以完成其他的一些设置。
运行regedit打开注册表编辑器,展开注册表到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,这里有几个键是需要我们设置的:
SFCDisable,值为0时打开了WFP,这也是默认的状态。双击后可以改成1,(也可以改为0xFFFFFF9D)这将禁用WFP,并且需要重启动一下才能生效;值为2,仅仅会在下一次启动时禁用;值为4,将启用,并且不会显示提醒用户的窗口。
SFCQuota,可以决定允许WFP使用的最大硬盘空间,直接输入大小就可以,单位为MB,默认为300MB。而设置为FFFFFFFF就可以备份本地硬盘上所有的系统文件。
好了,相信大家看完后应该对“Windows文件保护”有一定的了解了吧,也不必再为不断跳出的“Windows文件保护”的提示而烦恼了.
二,编辑组策略
在组策略中进行一下设置即可:单击“开始→运行”,输入“gpedit.msc”,然后依次展开“计算机配置→管理模板→系统→Windows文件保护”,然后双击“设置文件保护扫描”并将其设置为“禁用”即可。