深入探讨WinXP系统文件保护功能

2016-01-29 19:03 16 1 收藏

深入探讨WinXP系统文件保护功能,深入探讨WinXP系统文件保护功能

【 tulaoshi.com - windows 】

  当你安装一个应用程序却不料引起Windows崩溃的时候,很有可能是因为应用程序改写了关键的Windows系统文件,导致系统崩溃。在文件被修改后,结果往往不可预知。系统可能正常运行,或者出一些错误,或者完全崩溃。幸运的是,Windows 2000, XP,和Server 2003应用了一个称作Windows文件保护(Windows File Protection, WFP)机制,它可以防止关键的系统文件被改写。在这篇文章中,我将解释何谓WFP和它是如何工作的。我还要告诉你如何修改或忽略WFP的行为。(注释:尽管在Windows 2000, XP,和Server 2003上,WFP的运行没什么区别,但这篇文章中的信息,包括注册表相关条目和SFC语法,是针对XP的。)

  Windows文件保护是如何工作的

  WFP被设计用来保护Windows文件夹的内容。WFP保护特定的文件类型,比如SYS、EXE、DLL、OCX、FON和TTF,而不是阻止对整个文件夹的任何修改。注册表键值决定WFP保护的文件类型。

  当一个应用程序试图替换一个受保护的文件,WFP检查替换文件的数字签名,以确定此文件是否是来自微软和是否是正确的版本。如果这两个条件都符合,则允许替换。正常情况下,允许替换系统文件的文件种类包括Windows的服务包,补丁和操作系统升级程序。系统文件还可以由Windows更新程序或Windows设备管理器/类安装程序替换。

  如果这两个条件没有同时满足,受保护文件将被新文件替换,但将很快被正确的文件替换回来。当这种情况发生时,Windows会从Windows安装CD或者计算机的DLLCache文件夹中复制正确版本的文件。

  Windows文件保护并不仅仅通过拒绝修改来保护文件,它还可以拒绝删除。来看看WFP的做法,打开WINDOWSSYSTEM32文件夹并将CALC.EXE文件重命名为CALC.OLD。当你这样做时,一个消息将提示你如果改变这个文件的扩展名可能会导致这个文件不可用。点击Yes按钮确认这个警告。现在,等几分钟后按F5键以刷新文件系统的视图,完成替换可能要花些时间。当文件最终被替换后,Windows会在事件日志中做相应的记录。

  关于WFP值得关注的一点是它和Windows安装程序结合的很紧密。无论何时,如果Windows安装程序需要安装一个受保护的文件,它就把这个文件交给WFP,而不是自己试图去安装这个文件。然后由WFP判断是否允许安装。

  系统文件检查

  虽然自动文件替换会节省时间,但也存在需要手动干预的情况。例如,你可能不愿意空等着WFP去判断受保护的文件是否已经被替换。幸运的是,你可以用一个名为系统文件检查(SFC)的工具手动控制WFP。

  SFC是一个命令行工具,需要在命令提示符窗口下运行。它的语法像这样:

  SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]

  /SCANNOW选项通知SFC立即扫描所有受保护的系统文件。如果在扫描过程中发现一个错误的文件版本,这个错误的版本将被替换为微软正确的版本。当然,这意味着你可能必须有Windows安装CD,最新的服务包或者升级补丁。

  /SCANONCE参数通知WFP在系统下次启动的时候扫描受保护的系统文件。在扫描过程中,任何错误的文件将被正确的版本替换。正如这个参数名的意思,这个扫描只进行一次。之后的系统启动将恢复正常,SFC不再运行。

  /SCANBOOT参数和/SCANONCE选项类似。区别在于SCANONCE只在Windows下次启动时扫描受保护的文件,而SCANBOOT参数则在Windows每次启动时都扫描系统文件。如果需要,这两个参数将替换错误的系统文件,这可能需要你提供正确文件版本的拷贝。

  /REVERT选项用来关闭SFC,例如,假设你使用SCANBOOT选项在每次系统启动的时候扫描所以保护的文件。正如你所能想到的,这确实会增加计算机启动的总时间。最后,你可能厌倦了漫长的启动时间,想关闭SFC。只需要简单的使用SFC /REVERT,就可以在启动的时候关闭SFC。

  对/PURGECACHE选项就需要谨慎些。在这之前,我解释说Windows使用一个缓存文件夹来保存各类系统文件正确版本的备份。如果你运行SFC /PURGECACHE命令,那么这个文件缓存将被清空,那些备份文件将被删除。这个命令还会导致Windows开始扫描各类受保护文件,并在扫描的同时重建这个文件缓存。当然,这可能意味着你必须向Windows提供Windows安装CD或系统文件升级的拷贝。

  最后一个SFC命令选项是/CACHESIZE=x。对于文件缓存的缺省大小确实存在很多自相矛盾的信息,在写这篇文章的时候,我发现三篇不同的微软知识库文章中指定的文件缓存的缺省大小都不一样。一篇文章中建议文件缓存的大小为50 MB,而另一篇建议的大小却是300 MB。更有甚者,第三篇指出这个大小应该是无限的。其实缺省值的大小并不重要,因为你可以根据你的需要,使用CACHESIZE选项来改变这个文件缓存的大小。

  在使用CACHESIZE选项时,你必须键入命令SFC /CACHESIZE=x,这个x是指你想分配给文件缓存的兆字节数。在指定了新的文件缓存大小后,你必须重启系统并运行SFC /PURGECACHE命令。

来源:http://www.tulaoshi.com/n/20160129/1508260.html

延伸阅读
标签: PHP
  内存管理对于长期运行的程序,例如服务器守护程序,是相当重要的影响;因此,理解 PHP 是如何分配与释放内存的对于创建这类程序极为重要。本文将重点探讨PHP的内存管理问题。 一、 内存 在PHP中,填充一个字符串变量相当简单,这只需要一个语句"<?php $str = 'hello world '; ?>"即可,并且该字符串能够被...
标签: 电脑入门
如果你使用Windows XP操作系统,那么请注意磁盘碎片整理的问题。 1.为什么要需要整理碎片 磁盘上的文件布局会强烈地影响I/O性能,严重碎片化的或散布在磁盘中的文件和目录会损害性能,虽然Windows XP会自动重定位某些文件来改善性能,但通常情况下,这并非属于系统必须的常规,而且通常情况下也仅包含磁盘上很小部分的文件。 从这方面来考...
标签: 电脑入门
远程协助的发起者通过MSN Messenger向Messenger中的联系人发出协助要求,在获得对方同意后,即可进行远程协助,远程协助中被协助方的计算机将暂时受协助方(在远程协助程序中被称为专家)的控制,专家可以在被控计算机当中进行系统维护、安装软件、处理计算机中的某些问题、或者向被协助者演示某些操作。 如果你已经安装了MSN Messenger 6.1...
win7系统保护功能恢复被删除的文件   如果恢复系统中被删除的文件?很多时候大家还是依靠修复注册表或者是第三方的软件来实现这个目的,不过,图老师小编今天要介绍的是一个更加简便的方式,利用win7系统保护功能恢复被删除的文件! 首先,我们在菜单下打开控制面板的界面,然后找到系统并点击进入。 在跳出来的窗口中...
标签: 电脑入门
如今硬盘是越来越大,容量上T的大家伙也纷纷装进普通用户电脑,我们终于不用再为了腾一点空间而到处删除用不上的数据。不过,很多过去保留下来的使用习惯并没有因此改变,比方说:很多人拿到Win7电脑后,都会做些优化设置,其中有一步就是关闭系统还原和保护,释放该功能所占用的硬盘空间。这其中就包括我在内,直到有次意外丢失了很多辛苦拍摄...

经验教程

654

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部