精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖电脑技术〗>>● WinNT系统>>稳定与冗余>>储存技术>>Windows2000文件保护调整

主题:Windows2000文件保护调整
发信人: ipaq(Episode)
整理人: ipaq(2001-05-25 12:06:32), 站内信件
steve-song(沙宁) 2001-02-27 21:04:52 :0 :0    
[回复] [打包] [转贴]  

     
    Windows2000已经面世一年有余,它的超强稳定性受到了众多用户的好评,这其中的功劳就少不了今天我们要重点介绍的Windows文件保护功能(以下简称:WFP)。无论是普通用户,还是那些专业用户,该功能都非常有意义,它在系统稳定性方面起着相当重要的作用。下面我们就来看看,到底什么是WFP,它到底是怎样工作的。 
    ---------原理篇------- 
    WFP是什么 
    WFP的英文全称是WindowsFileProtection,即Windows文件保护。它的主要功能是防止系统文件被不匹配的版本替换或是覆盖。众所周知,在安装新应用程序时,由于不经意间采用了过时的dll(动态链接库)文件最容易使系统文件遭到破坏(当然可能出现问题的系统文件并不仅局限于dll文件)。 
    过去(包括微软件的大多数操作系统)如果用户同意,系统文件是可以被覆盖或者替换。如果替换后的文件过时或者版本不匹配都会对系统的稳定产生不良影响,比如:可能导致某些程序无法运行。现在WFP让这种情况成为了过去,那么WFP是如何工作的呢? 
    WFP是如何工作的 
    首先我们试着把由WFP保护的系统文件覆盖一下。据我们所知,那些在初次安装过程中安装的文件被系统默认为重要文件,当然这里面包括一个很广的范围(微软把Windows2000安装光盘上的所有dll、exe、fon、ocx、sys、和tff结尾的文件都加以保护)。为了能了解WFP究竟保护着哪些文件,我们可以打开dllcache文件夹,你会找到下面这些格式的文件:ax、cpl、cpx、dll、exe、fon、inf、ocx、rsp、sys、tff和tlb文件。所有这些文件(很大一部分都是Windows2000安装过程中自动定义的)都被备份在%SYSTEMROOT%/system32/dllcache文件夹下,直到有一天WFP认为有必要把这些文件恢复到系统中去它们就派上用场了。不过,由此也就造成了dllcache这个文件夹非常庞大,在后面我们会告诉你如何设置dllcache所占的最大空间。 
    当WFP监控到这些文件被覆盖或替换后就要开始自己的工作了。首先它会扫描可能有问题的文件,如果这些文件与备份文件夹内微软“原装”文件不符,WFP会把用SYSTEMROOT%/system32/dllcache目录下备份的文件还原,如果该文件没有做备份,系统会提示你插入Windows2000的安装光盘以复原该文件。 
     
    WFP到底有什么用处 
    WFP的用处是显而易见的,它将避免你的Windows2000核心系统文件被意外更改。这对于网络用户意义尤为重大,因为这回网管们再不用忙着打理那些由于网络用户安装程序或是意外删除文件造成的麻烦了。 
    对于经验不够的菜鸟来说WFP更具价值,因为它将保证你不会无意间把自己的系统搞得一团糟。 
    但对于高级用户而言,WFP的意义不是很大。因为它占据的系统资源本来可以交给其它更需要的应用程序,而其占用较多的硬盘空间也实在是有些浪费。高级用户可能更希望把WFP关掉,下面我们也会告诉如何实现这个愿望。 
    升级系统文件 
    你可能已经产生了这样的疑问,如果WFP保护系统文件不被替换,那么我们如何能在WFP运行的同时升级系统文件呢?好的,看看下面这几种方法吧: 
    安装Windows2000ServicePack; 
通过WindowsUpdate下载安装; 
为系统安装MicrosoftHotfix,Hotfixes是通过使用Hotfix.exe安装的,它对于替换受保护的系统文件非常必要。大多数Windows2000的Hotfix集成在微软发布的维护包(ServicePacks)中或是其他相当的程序中,比如:Office2000SR-1A。不过Hotfix总是在维护包发布之前被推出,所以我们可以认为它是临时的系统修正程序; 
     
在添加删除程序的列表中可以看到所安装 
的Hotfix,你可以看到其中有两个hotfix,它 
们将会出现Windows2000SP2中 
    4、使用Winnt32.exe运行系统安装和升级。 


---------实践篇(一)--------- 
    准备工作 
    在我们开始调用、调整WFP之前,应当首先以管理员身份登录。无论你要对WFP做什么,你都必须以管理员身份来完成。 
    另外,我们建议你最好事先准备紧急修复盘(ERD)。完成ERD的制作有如下两步: 
    1、单击开始-->程序-->附件-->系统工具-->备份; 
2、选择EmergencyRepairDisk选项并备份你的注册表。 
    完成了上述所有工作,我们就可以开始调用WFP功能了。 
    调用、定义WFP 
    Windows2000默认情况是打开WFP功能,如果你确有需要也可以手动调用。只要点击开始-->程序-->附件,选择DOS提示符。然后键入SFC并回车确定(在DOS提示符下,WFP被称做WindowsFileChecker),该命令还有很多参数开关,我们下面会一一列出。使用这些开关的SFC命令与我们后面介绍的编辑注册表的方法所达到的效果是相同的。 
     
    一、参数调整方法 
    SFC/SCANNOW:使用这一参数可以立即调用WFP对所有实施保护的文件进行扫描。 
     
    SFC/SCANONCE:使用这一参数WFP将在下次启动系统时对所有实施保护的文件进行扫描。 
SFC/SCANBOOT:使用该参数WFP将在每次系统启动时对所有实施保护的文件进行扫描。 
SFC/CANCEL:该参数将使WFP立即终止正在进行的扫描。 
SFC/QUIET:该参数将使WFP不进行提示自动恢复所有监测到的版本不匹配的系统文件。 
SFC/PURGECACHE:该参数将清空你的dllcache文件夹并对立即所有需要实施保护的系统文件重新进行扫描。 
    二、注册表调整法 
    1、点击开始-->运行,键入regedit或者regedt32并回车; 
2、找到[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon]. 
3、在右侧的窗格中右键单击选择New-->DWORDValue,并为命名为SFCScan。接下来你有三种选择: 
键值设为0(10进制数)将打开WFP的正常使用状态; 
键值设为1(10进制数)将使WFP在每次系统启动时对所有实施保护的文件进行扫描; 
键值设为2(10进制数)将使WFP在下次系统启动时对所有实施保护的文件进行扫描。 
4、重新启动系统使所做的更改生效。 
    调整备份文件夹容量 
    默认状态下,WFP将根据硬盘空间的情况对相当多的文件进行备份。虽然它使得系统文件的保护更加轻松,但也占据了太多宝贵的硬盘空间,备份了过多文件。如果你将备份文件夹设定为50MB,那么将有240多个文件被备份保存起来。默认Windows2000不会对备份文件夹的容量进行限制,如果你有一块2G的硬盘,在初始环境下你会发现文件夹文件夹文件夹的容量高达240MB。不过,你完全可以对WFP的功能进行自定义,下面介绍的一些参数就是帮你限制文件夹占用硬盘空间大小的。 
    一、参数调整法 
    SFC/CACHESIZE=x:在x处可填上你希望的备份文件夹占用硬盘空间的最大值。你可以根据硬盘大小选择合适的数值。笔者个人设置为50MB。 
    二、注册表调整法 
    在这里,你也可以按下面的步骤通过注册表来设置备份文件夹的大小: 
    1、点击开始-->运行,键入regedit或者regedt32并回车; 
2、找到[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon]; 
3、在右侧的窗格中右键单击SfcQuota然后选择编辑。你可以在Decimal项下输入要设置的文件夹容量。系统默认是在Hexadecimal项下的输入ffffffff,这意味着文件夹空间没有限制; 
4、重新启动系统使所做的更改生效。 
    调整备份文件夹位置 
    如果你觉得自己能做得来的话,你甚至可以改变dllcache文件夹的位置,虽然这么做的必要性并不大。 
    1、点击开始、运行后键入regedt32并回车; 
2、找到[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon]; 
3、在右侧窗格中增加新类型为REG_EXPAND_SZ,名为SFCDllCacheDir的键值; 
     
    4、你会看到系统默认的是字符串%SystemRoot%/System32,这意味着dllcache文件夹保存在system32目录下。如果你愿意的话,可以把它改为其它的位置,比如E:/dllcache。如果你想把备份文件夹改在一个剩余空间相对较大的硬盘分区时,这个设置就有用了; 
5、重新启动系统使所做的更改生效。 
关闭WFP 
    正如我们前面提到的,有些人也许会因为这样那样的原因不喜欢WFP,那么他们可以按下面步骤关闭WFP。 
    1、点击开始-->运行,键入regedt32并回车; 
2、找到[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon]; 
3、在右侧的窗格中右键单击选择New-->DWORDValue,为其命名为SFCDisable; 
4、在Hexadecimal项下输入键值为ffffff9d以关闭WFP; 
5、重新启动系统使所做的更改生效。 
    为了确保WFP确实已经被关闭,你可以在重启电脑后查看日志文件。点击开始-->设置-->控制面板。打开AdministrativeTools-->EventViewer。你会看到图中所示的记录。在每次Windows2000启动后都会记录下WFP被关闭的情况。 
     
    注意:虽然WFP被关掉了,但dllcache文件夹下仍然备份了文件。如此这般你应该在WFP被关掉后把这些文件都删除。你只要打开%SystemRoot%/System32/dllcache这个文件夹,然后把目录下的文件删除就是了。 
    打开WFP 
    你可以用下面的命令恢复WFP功能。 
    一、参数调整法 
    SFC/ENABLE:运行了这个参数后,下次启动Windows后就可以恢复WFP功能。 
    二、注册表调整法 
    1、点击开始-->运行后键入regedt32并回车; 
2、找到[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon]; 
3、在右侧窗格中右键单击SFCDisable并选择编辑; 
4、输入键值0即重新恢复WFP; 
5、重新启动系统使所做的更改生效。 
    在你恢复WFP功能并重启后,你应当运行SFC/SCANNOW命令对已经被删除的dllcache目录下的文件再次备份。 




----
阳光灿烂的日子,共同沐浴在阳光下。 
 

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]