最近在各种论坛上看到蛮多的朋友提到dllcache,大多是因为装了winxp后,系统盘空间不够,想精简。于是很多人提到删dllcache,但总还加上一句,要小心;这让很多朋友无所适从,不敢轻易下手。吾淘尽平生所学,给各位一个明明白白的说明。
  要说dllcache,还要讲一下“windows文件保护”,“系统文件检测”程序。
windows文件保护:
  打开我的电脑,进入windows\system32\看看,里面有很多诸如动态链接库(.dll )和可执行文件(.exe )等系统文件(也有许多是属于你装的软件的),这些文件关乎系统的稳定运作,却在暴露在光天化日之下,如果被删除和被替换,就可能会造成系统运行不稳定。事实上,装软件的时候,特别是一些版本老的软件的时候,覆盖一些共享系统文件的事是常有的。

  针对这一点,windows就有一个“文件保护”的后台服务。默认情况下,该服务一直处于启用状态,监视着所有受保护的系统文件,如果发现替换或移动受保护的系统文件企图,它能直接阻止。当然windows并不阻止所有这样的企图,它允许有Windows 数字签名文件替换现有文件,这样你的系统才可以更新和升级。

“系统文件检测”程序

  “系统文件检测”程序是一个在命令提示符下使用的实用程序,命令是“sfc”,只有是管理员才能使用该程序,那些“大虾”们教的删除dllcache的命令“sfc/purgecache”就是用了这个程序,这个程序的作用就是检测系统文件,如果检测到受保护的文件已经被不正确的文件覆盖,它就从系统文件备份(就是dllcache)中提取正确的系统文件,替换不正确的文件。

  这个程序也检测dllcache本身,如果发现dllcache已经损坏或者不能使用,可以用它修复,所谓修复,就是要你插入安装盘,它自动从中提取所需的文件。命令是“sfc /scannow”,具体各位可以查看帮助。

 
dllcache:

  dllcache的位置在“\windows\system32\dllcache”,有350M以上,是个系统隐藏文件,这么大的体积是想减肥的xp用户盯上它的原因。

 

dllcache的取舍_休闲



  大家搜索一下windows文件夹下的某类系统文件(先取消系统文件的隐藏属性喔!),会发现有很多文件是重复的,许多文件会在system32(除dllcache)和dllcache里各有一个。所以dllcache可以看作是个备份。它的体积不是固定的,当你装一些微软系的软件,或做升级,打补丁时,安装程序会在dllcache中放一些重要文件的副本——这样他的体积就增加了。

  dllcache作为备份是在使用“系统文件检测”时发挥作用的,介绍“系统文件检测”时已经做了说明。


  其实dllcache里面“备份”的系统文件要比你使用的多,也就是说它准备的东西有些你还没用到,在你用到的时候,它结合“windows文件保护”就能发挥作用。比如你装了一些软件(主要是微软系),这个软件会在windows里的有关文件夹里放入已经被设定为被“windows文件保护”监视的重要文件,但要比dllcache里的旧,这时“windows文件保护”就会从dllcache里读取最新的版本替换旧的文件。

  所以dllcache不只是一个简单的“备份”,它实际上“准备”了你可能会用到的所有重要系统文件,是一个备用的系统文件库。

  从“删不删?”到“万全之策”

  很多人问我这个问题的时候,我都说“不”,dllcache是不应该删的。

  dllcache是系统隐藏文件,微软这么小心奕奕地把它藏起来总是有它的道理的。引起“删不删”的疑问是因为它体积大而用的少,不象shell,无处不用。

但删除它是危险的:

  1.容易让旧版本的文件贮存系统文件夹,造成系统不稳定。

  2.使“系统文件检测”程序失效,一旦使用就会提示你从安装盘把dllcache“取”
回来,如果取回来,那你不就白删了?

  3.升级,打补丁的时候,原来设定要放到dllcache里的备份没处放,可能会造成升级中止,或重建一个名为dllcache的文件夹来放备份。(我没删,所以我不敢确定是什么后果)。

  4.当你装一些软件,或加一些硬件时,他们可能设定要从dllcache重提取一些文件出来使用,没有dllcache会造成硬件无法使用或软件无法安装。

  可见,删dllcache短期内也许没关系,但长期看,你会碰到问题却不知道问题出在哪里——而这很可能是因为没有dllcache造成的。所以我强烈建议不要删。

  那么那些系统盘实在太小的朋友该怎么办呢?经过研究,我找到了方法,就是把dllcache“转移”到别的盘,就象转移虚拟内存。下面容我讲来这个“完全之策”地步骤:


  1.开始->运行,键入“gpedit.msc”->启动“组策略”。

  2.在“组策略”找到:本地计算机策略->计算机配置->管理模块->系统 ->windows 文件保护

  3.单击“windows 文件保护”,你在右面看到一个叫“指定windows文件保护缓存位置”的项。这个项是设置dllcache的位置的,如下图所示
 

 

dllcache的取舍_休闲_02

下面你就知道怎么做了,我就不多说了,自己动手搞定它吧