Vista和Win2008的WinSxS文件夹怎么那么大?

这是一个在安装Windows Vista和Windows Server 2008时候经常被提及的问题.为了解答这个问题,首先我们要了解“组件化”这个词的含义,然后再谈一谈Vista里面的组件们是如何被管理的.
Vista相比于前任的重大变化之一就是从用“安装配置”(INF文件)描述的操作系统过渡到组件化的系统.Windows中的所谓“组件”就是一或多个二进制文件,一个索引文件,还有一个描述安装过程如何进行的XML格式文档.这个文档描述了可能的注册表操作或者安全权限需求.组件们以逻辑单元分组,这些单元的不同就是Windows不同版本的区别.

 WinSxS这个文件夹存放了Windows所需要的所有组件。每一个组件都有属于自己的命名,可以看出它属于何种版本、语言,以及是32位还是64位的Windows。每当系统需要任何一种文件的时候,都会从这个文件夹找到相应的文件,再拷贝到需要的路径里面,或者直接创建一个映射,指向winsxs文件夹里的源文件(显然这么做对硬盘空间仁慈多了)。也就是说,实际上Winsxs这个文件夹和Windows完全安装一次所需的磁盘空间一样大

 
这样一来,我们便不能完全从硬盘上删除某种Windows功能,就像我们刚刚在xp里还能做到的那样。(你也许注意到了,控制面板“程序和功能”里有一个“打开或关闭Windows功能”选项——而不是“添加或删除Windows功能”。)
 
也是因为如此, 理论上winsxs这个文件夹并不会随着时间推移越来越臃肿,塞进一些天知道是什么的东西(很不幸,很多Windows文件夹都有自动增肥的功能)。但有一个例外——就是如果你安装了一项功能的更新(例如通过Windows Update),那么 为了方便你回滚有问题的更新,新旧两种文件副本会同时存放在Winsxs文件夹里!(看来要双手合十祈祷微软能一次性更新尽可能多的补丁,而不是一次一个,一次一个……)
 
微软这么做显然能大大提高产品的稳定性。因为每个更新版本都有副本保存,所以 当我们回滚一个更新时,会退回到次新的版本,不会出现版本号混乱的局面。而且,如果要添加一个新功能, 系统会检查是否已经有了版本号更新的组件,而不是直接插入光盘,因为那样只会装上RTM的旧版本。
 
最后,安全的削减Winsxs文件夹的大小,只有一个办法,就是尽可能去掉自己不用的组件及其更新。虽然微软没有提供官方的整合SP1到Vista RTM ISO的办法,但是SP1中的一个小程序 VSP1CLN.EXE可以永久整合SP1到系统,删除一切用于回滚的版本备份,这样便不能回退到RTM。
 
(在现在硬盘容量向TB迈进的时候,牺牲一部分硬盘空间来换取比以往更高的安全性,也许是比较划算的办法。看来Vista的确是面向未来而设计的一款系统。)
 
文章作者Joseph Conway,微软企业级平台支持高级工程师。
cnBeta编译自微软TechNet  LonelyJames译注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
winsxs文件夹瘦身方法: vista,windows2008,windows7的许多系统组件(主要是动态库)被安装在windows\winsxs目录下, 但是,对于同一组件,由于升级以及其它原因,windows并没有删除低版本的同一组件。 所以这里的瘦身方法就是删除多余的低版本组件。 考虑到系统的稳定及兼容性,本工具仅只分离多余的低版本组件,并未作任何删除。 (不同大版本号的同一组件视为不同组件,也就是说仅只分离小版本号不同的组件) (同版本的不同语言组件同样视为不同组件,不作分离) 例如:组件 x86_microsoft-windows-i..ersandsecurityzones_31bf3856ad364e35在我的winsxs下有如下版本   ver: 8.0.6001.18702 视为不同组件,当然若有不同语言版本也视为不同组件,不作分离 ver: 6.0.6001.18000 ver: 6.0.6001.18023 ver: 6.0.6001.18063 ver: 6.0.6001.18099 ver: 6.0.6001.18157 ver: 6.0.6001.18203 ver: 6.0.6001.18226 ver: 6.0.6001.22120 ver: 6.0.6001.22167 ver: 6.0.6001.22212 ver: 6.0.6001.22288 ver: 6.0.6001.22355 ver: 6.0.6001.22389 使用方法: 1.取得windows\winsxs的管理员权限, 以管理员身份运行permission_Cwinsxs.bat(当前系统安装在C盘),大约要运行5分钟 或permission_Dwinsxs.bat(当前系统安装在D盘),安装其它盘的请自行修改。 2.copy "winsxsCleaner.exe" 到winsxs目录下,运行,大约要等3分钟或者更多 完成后,多余的动态库已经被转移到winsxs下的__redundance目录下 3.请自行处理__redundance目录,建议备份后再删除。 此法同样适用于windows7。 由此瘦身方法造成的任何缺失,损失和后果本人一概不于负责。 附上原代码,请放心使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值