其实简单,彻底玩转Windows中的Winsxs文件夹
- 来源:PC电脑王 smarty:if $article.tag?>
- 关键字:Windows,Winsxs smarty:/if?>
- 发布时间:2014-10-09 14:08
众所周知,在Vista及以后操作系统分区的Windows目录中,有一个体积较为庞大的文件夹:Winsxs,通常情况下,该文件夹可以占据3GB以上的空间,而且该体积会随着以后安装的软、硬件的增多而变大。那么,Winsxs究竟为何物?该文件夹是否可以删除?如果无法删除的话,我们又该采取什么样的策略,尽力减少其对系统分区的占用?答案尽在本文。
Winsxs究竟为何物?
Winsxs文件夹是微软为保证系统能正常、稳定运行而提供的一个非常重要的文件夹,该文件夹中保存有大量的系统运行所必需的组件,其中最为我们熟悉的就是动态链接库(DLL)。由于在Windows XP及先前的系统中,系统中DLL的版本是唯一的,因此当我们安装应用程序的时候,时常会看到诸如:“要安装的xxxx.dll 比系统中原有的要旧,是覆盖还是保留?”之类的提示,此时,如果我们选择覆盖安装,那么极有可能先前需要使用该DLL的程序会无法正常运行;如果选择保留新版本,那么,当前安装的程序就有可能无法运行。而Vista及以后的操作系统完美地解决了这一问题,它会在Winsxs文件夹同时保留多个DLL版本,以便在不同程序需要调用时,能根据实际情况为其提供不同的版本。
同样,当我们发现硬件新驱动有问题,不得不将其降级到旧版本时,旧版本实际上也是保存在Winsxs文件夹中的。
Winsxs文件夹中的文件不可随便删除,否则,极容易因为缺乏相应的组件,导致系统无法正常运行。
可否将Winsxs迁移到别的分区?
答案是肯定的!由于系统分区空间极其宝贵,为了提高系统的运行速度,减少它对系统空间的占用,我们可用下面的方法,将其它迁移到非系统分区。以在Win 8中操作为例。
1.获取Winsxs文件夹的完全控制权
由于Winsxs是系统属性的重要文件,所以我们首先要获取完全控制权,才能对其进行移动操作。
第一步:进入“C:Windows”目录,右击winsxs文件夹,在弹出的右键菜单中选择“属性”,打开相应的对话框。切换到“安全”标签,单击“高级”按钮,然后在出现的“winsxs的高级安全设置”对话框中单击“所有者”项右侧的“更改”文字链接,打开“选择用户或组”对话框。
第二步:单击“高级”按钮,打开相应的对话框。单击“立即查找”按钮,系统中存在的所有系统账号就会出现在“搜索结果”列表中,选择当前登录的账号,单击“确定”按钮。返回上级对话框,连续单击“确定”按钮,权限的设置工作就完成了。
2.将文件夹移到非系统分区
第一步:进入http://technet.microsoft.com/en-us/sysinternals/bb897556.aspx页面,下载PendMovesandMoveFile工具,解压后,将其中的文件复制到“C:WindowsSystem32”目录中(其中C是系统分区,下同)。
第二步:右击“开始”按钮,在出现的菜单中选择“命令提示符(管理员)”,打开命令提示符窗口,依次输入并执行以下命令(注意:每输入一行都要回车。其中括号中的内容为命令行注释。下同):cd windows (切换当前路径为Windows)
mklink winsas.link winsas.moved(建立一个指向Winsas.moved文件的名为Winsas.link的链接)
movefile C:WindowswinsxsC:WindowsWinsas.moved (将“C:Windows”目录下的winsxs文件夹重命名为Winsas.moved)
movefile C:WindowsWinsas.link C:Windowswinsxs (将“C:Windows”目录下的Winsas.link文件夹重命名为winsxs)
第三步:执行完毕,重启系统,在任一非系统分区建立起“Windowswinsxs”目录(如:E:Windowswinsxs),然后将“C:WindowsWinsas.moved”目录下的所有文件复制到新建的目录下。
第四步:重新建立关联并删除Winsas.moved文件夹。以管理员身份运行命令提示符窗口,输入并执行以下命令:
cd windows (切换当前路径为Windows)
rmdir winsxs (删除名为winsxs的链接)
mklink winsxs E:windowswinsxs (新建一个指向“D:windowswinsxs”目录名为winsxs的链接)
至此,Winsxs文件夹的迁移工作便告结束。对于系统分区较少的朋友来说,用这种方法可以节省不少空间,同时也可加快系统的运行速度。
如何才能最大限度减少Winsxs的体积?
Winsxs中的文件很重要,但这并不意味着它的所有文件都有用。实际上,由于它会同时保留多个文件版本及其备份,这当中也包括系统补丁备份及老驱动备份等,所以当我们确认当前系统已更新完毕,新的驱动也已正常工作后,我们完全可以将老版本备份清除,仅保留新版本,以最大限度地节省磁盘空间。而要达到上述目的,我们可以用下面两种方法来实现。
1.如果你是Win7及以后操作系统的用户
实际上,从Win7系统开始,微软已经针对Winsxs文件夹中新老版本并存、文件夹体积过于庞大的问题,提供了相应的瘦身补丁,通常在开启了系统自动更新的前提下,该补丁会通过系统升级,自动安装到系统中。
当然,如果你的系统未启用自动更新,也可以进入http://www.microsoft.com/zh-CN/download/details.aspx?id=40359页面手工下载安装。
第一步:补丁安装完毕,在Windows资源管理器中右击系统分区,在弹出的右键菜单中选择“属性”,打开相应的对话框,单击“磁盘清理”按钮。
第二步: 在出现的“磁盘清理”对话框中,单击“清理系统文件”按钮,打开相应的对话框,勾选“要删除的文件”列表中的“Windows更新清理”和“已下载的程序文件”项,确认后,Winsxs中无用的更新备份和所有下载的文件即会被删除,高危级安全补丁则会被保留,从而在保证系统安全的同时,在一定程度上减少了Winsxs文件夹对系统空间的占用。
2.如果你是Vista用户
Vista没有相应的补丁支持,所以对Winsxs的瘦身工作,只能借助Dism命令来完成。
以管理员身份运行命令提示符窗口,输入以下命令:
dism /online/Cleanup-Image /StartComponentCleanup /ResetBase
回车后,Winsxs文件夹中所有的老的驱动备份程序和已安装的非高危级的补丁备份,就会被统统清除了。
文/飞雪散花