对/PURGECACHE选项就需要谨慎些 。在这之前,我解释说Windows使用一个缓存文件夹来保存各类系统文件正确版本的备份 。如果你运行SFC /PURGECACHE命令,那么这个文件缓存将被清空,那些备份文件将被删除 。这个命令还会导致Windows开始扫描各类受保护文件,并在扫描的同时重建这个文件缓存 。当然,这可能意味着你必须向Windows提供Windows安装CD或系统文件升级的拷贝 。
【深入探讨WindowsXP系统文件保护功能】最后一个SFC命令选项是/CACHESIZE=x 。对于文件缓存的缺省大小确实存在很多自相矛盾的信息,在写这篇文章的时候,我发现三篇不同的微软知识库文章中指定的文件缓存的缺省大小都不一样 。一篇文章中建议文件缓存的大小为50 MB,而另一篇建议的大小却是300 MB 。更有甚者,第三篇指出这个大小应该是无限的 。其实缺省值的大小并不重要,因为你可以根据你的需要,使用CACHESIZE选项来改变这个文件缓存的大小 。
在使用CACHESIZE选项时,你必须键入命令SFC /CACHESIZE=x,这个x是指你想分配给文件缓存的兆字节数 。在指定了新的文件缓存大小后,你必须重启系统并运行SFC /PURGECACHE命令 。
通过注册表控制WFP和SFC
在这之前,我解释说注册表控制WFP的一般行为 。你可以修改几个不同的注册表键值以控制WFP的行为 。你可以在每次运行SFC直接操作这些键的一部分,其他一些有更低级别的功能 。比如指定文件缓存或者安装文件的位置 。
修改注册表可能是危险的 。如果你做了一个错误的修改,可能会导致Windows的崩溃或者破坏你的应用程序,所以我强烈建议在尝试这一节中描述的任何技术之前,先对注册表做一个完整的备份 。
为了访问SFC的注册表键,在Run命令中键入REFEDIT命令 。这将打开注册表编辑器,现在浏览注册表树找到下面这个键:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinLogon
通常地,注册表中WinLogon键一般用来控制各种不同的启动选项 。虽然许多SFC的选项都可控制SFC是否在启动的的时候运行,但微软已经将SFC相关的注册表键放在这个部分 。
SFCDisabled 这个注册表键控制SFC是激活的还是无效的 。实际上你只需通过改变DWORD的值,就可以得到四个不同的选项 。缺省的DWORD值是0 。这个设置激活SFC 。通常你不需要改变这个值 。然而,你可以在0到4之间修改这个值使得激活SFC但不让它弹出 。
如果将内核调试器挂起,你最好关闭SFC 。如果正在使用一个内核调试器,你可以将注册表键的DWORD值修改为1,这会关闭SFC并且会在以后的每次启动时都提示你是否再次激活SFC 。
你也可以通过将DWORD值设为2来关闭SFC 。这个选项只是在下次启动时关闭SFC 。没有再激活SFC的选项,因为SFC将在这之后启动时自动激活 。
SFCScan
在这之前,我解释了SFC的SCANONCE, SCANBOOT,和REVERT选项 。只要你使用这些选项,实际上SFC是在修改SFCScan注册表键 。你可以通过改变它的DWORD赋值来修改这个键 。
默认的值是0 。这个值的意思是不需要在启动时扫描受保护文件 。这个设置相当于运行SFC /REVERT命令 。
改变DWORD值为1,意思是在每次启动时都扫描受保护文件 。设置SFCScan的值为1相当于运行SFC /SCANBOOT命令 。
最后,设DWORD值为2就是告诉SFC在下次启动时扫描受保护文件,但并非以后的所有启动 。这相当于运行SFC /SCANONCE命令 。
SFCQuota
SFCQuota注册表键用来控制SFC文件缓存的大小 。或许你会记得,之前在我谈到SFC /CACHESIZE=x 命令时,我提到关于文件缓存的默认大小,存在许多不一致的信息 。然而在我的系统上,注册表键SFCQuota的DWORD值默认为0xffffffff 。根据微软知识库,这个值对应文件缓存的大小为300 MB 。同一篇知识库的文章指出通过修改这个值为FFFFFFFF,你可以缓冲存储所有受保护的系统文件 。
推荐阅读
- 手机正确充电方法的测试与探讨
- 安装WindowsXP系统后的五个技巧提示
- WindowsXP空间 文件属性玩“花样”
- 重启Explorer进程解决WindowsXP死机一例
- 让WindowsXP的文件复制移动更方便
- 玩家尴尬 DirectX10放弃WindowsXP
- 深入具体分析:Windows为何越走越慢?
- 安装WindowsXP SP2 必须做的八件事
- 更迅速 WindowsXP快速启动最新技巧
- WindowsXP自带系统还原 你会不会用
