如何在 Windows 10 中专业地管理 WinSxS 组件存储文件夹
发布时间:2022-08-29 06:31:46
WinSxS是什么文件夹
WinSxS(Side-by-Side)文件夹其实是微软为了解决 Windows 系统中的「DLL Hell」问题而创建的,「DLL Hell」简单一点来解释就是:如果某应用程序更改了一个动态链接库(DLL)文件,则会影响到使用同一 DLL 的应用程序关键功能的情况。
例如,应用程序 A 和 B 都调用同一个 DLL,而 A 需要的版本为 1.0.2,B 程序要用不同的版本,将其替换成了 1.0.3 版本。这样就势必会对应用 A 造成影响,要么出现兼容性问题,严重点甚至导致应用崩溃或蓝屏问题。
微软祭出WinSxS解决方案
从 Windows XP 系统开始,「组件存储」功能被正式启用,每个组件(包括 DLL、OCX 和 EXE)都会存储于这个被命名为 WinSxS 的目录中,这里会存放应用程序需要调用的不同版本 DLL,并根据需求加载正确的版本。
那问题又来了,一个应用程序如何知道它需要加载什么版本的 DLL 呢?这就需要「manifest」文件来发挥作用了,该文件包含了一些设置,用于告知操作系统在应用启动时如何处理,以及正确的 DLL 版本。
每个组件都带有唯一标识的名称,该名称可以包括:处理器架构、语言、版本和 ID,然后这些组件的特定版本被收集在一起,成为软件包,被 Windows Update 和 DISM 用来保持系统的最新状态。
WinSxS文件夹和硬链接
硬链接在整个 Windows 操作系统中都有广泛使用,就 WinSxS 而言,这是「组件」驻留在系统中的唯一位置,而「组件存储」之外的所有其他文件实例都是硬链接到 WinSxS 文件夹中的。
根据Microsoft Docs,硬链接是一种文件系统对象,它允许多个文件引用磁盘上的同一个位置。这意味着 Windows 可以在不占用任何额外空间的情况下,保留同一文件的多个副本。其实软、硬链接在 Windows、Linux 和 macOS 中都在被广泛使用。
当我们更新 Windows 系统时,如有新版本的「组件」发布,就会通过硬链接的方式将其映射到操作系统层面,而旧版本的「组件」依旧会保存在「组件存储」中,以确保可靠性(会取消硬链接),这样就可以在出问题时进行回滚。
为了证实这一点,我们可以来做一个小实验:
1在「开始」菜单中搜索 cmd ——找到「命令提示符」——选择「以管理员身份运行」
2例如,如果我要查看名为 audiosrv.dll 的系统文件的硬链接,就可以执行:
fsutil hardlink list "C:WindowsSystem32audiosrv.dll"
由此就以看出其在 WinSxS 组件存储中的映射路径。
WinSxS的重要性
WinSxS 组件存储的重要性不言而喻,它在支持自定义和更新 Windows 功能方面起着至关重要的作用,它可以帮助实现:
从引导失败或损坏中恢复系统
根据需要启用或禁用 Windows 功能
在不同的 Windows 版本之间升、降级系统
卸载有问题的更新
通过 Windows Update 来更新组件版本
WinSxS文件夹大小
Windows 系统的一大优势就在于它可以兼容一些较旧的硬件和应用程序,但这种兼容性是以占用磁盘空间和报错为代价的。而 WinSxS 组件存储中就包含了所有必要的文件,以维持住 PC 对硬件和软件的兼容性。
目测我系统中的 WinSxS 文件夹占用了 7GB 左右的磁盘空间,但由于「文件资源管理器」不考虑硬链接,这其实是一个虚值。
「文件资源管理器」和一些第三方应用会对硬链接的每个引用都视为单个实例, 因此,如果系统文件同时位于 WinSxS 和 System32 目录中,则文件资源管理器将错误地估算文件夹大小。
如何查看WinSxS文件夹的真实大小
1在「开始」菜单中搜索 cmd ——找到「命令提示符」——选择「以管理员身份运行」
2执行以下命令进行查看:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
分析完成后,我们就可以看到「组件存储」的实际大小。
提示:/AnalyzeComponentStore 参数在 Windows 8 和更早版本中无法使用。
减小WinSxS文件夹大小的方法
很多用户经常会问,能不能手动删除 WinSxS 文件夹中的文件?甚至有人问能不能删除 WinSxS 文件夹?答案是——绝对不行!
如果你以这种搞事情的方式来删除其中的文件,很可能会损坏 Windows 功能,轻一点可能会让 Windows Update 无法正确安装、卸载更新,即便你成功地从 WinSxS 文件夹中删除了文件,也不知道是否哪个应用程序就会闹出幺蛾子。
但是我们可以通过 Windows 内置的一些工具,以专业而优雅的方式来减小 WinSxS 文件夹的大小,以达到网友们所期望的清理、压缩和瘦身等效果。
方法1:使用「磁盘清理」工具
1在「开始」菜单中搜索 磁盘清理 ——找到并打开「磁盘清理」工具
2在下拉列表中选择系统盘——点击「确定」——在打开的工具界面中点击「清理系统文件」按钮
3勾选上所有对勾进行清理即可
方法2:移除一些不用的Windows功能
把一些普通用户不常用的 Windows 功能,如:Print to PDF、Hyper-V、PowerShell 和Windows 沙盒等功能给干掉,同样可以达到给 WinSxS 瘦身的效果:
1使用 Windows + R 快捷键打开「运行」—— 执行 appwiz.cpl 打开添加删除程序
推荐阅读:100+ Windows运行命令大全,装高手必备
2点击左侧的「启用或关闭 Windows 功能」
3.取消勾选不用的功能——点击「确定」按钮
方法3:使用DISM进行组件清理
其实从 Windows 8 开始,操作系统中就内置了一个自动执行 WinSxS 组件存储清理的任务计划。
在安装了更新的组件之后,该任务将至少等待 30 天,然后再卸载该组件的前一版本。该任务还有一个小时的超时时间,并且可能无法清理所有文件。
当然我们也可以手动使用 DISM 命令进行组件清理:
1在「开始」菜单中搜索 cmd ——找到「命令提示符」——选择「以管理员身份运行」
2手动执行以下命令:
DISM.exe /online /Cleanup-Image /StartComponentCleanup
使用 /Cleanup-Image 参数可以立即删除之前版本的组件,没有 30 天宽限期也没有一小时的超时限制。
DISM.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
增加 /ResetBase 参数可以删除每个组件的所有被取代版本,也将无法卸载任何当前的更新。
猜你喜欢
- EXCEL如何批量将文本格式的数字改为数值格式?今天,小编就教大家在ExceL中将文本格式数字批量改为数值格式的操作方法。ExceL中将文本
- 如何新增wps office数据透视表的项目?在数据透视表中,计算项指在已有字段内部插入新的项。那么计算项应该如何使用?以此数据透视表为例。
- 我们辛辛苦苦编辑了一篇文档以后,最害怕的就是被别人轻易复制,如果在编辑完成以后给这篇文档加上水印,这样别人就束手无策了,那么下面就由小编给大
- 在制作wps演示文稿的时候,可能需要用到三维效果图,那么,你知道怎样制作吗?下面就让小编告诉大家在wps演示中怎样制作三维效果图。在wps演
- 大家在输入文字的时候,需要输入顿号也就是(、)但是找了半天,键盘上也没有这个符号,该怎么办呢?对于这个问题小编已经找到了解决方法,下面小编马
- 其实可能很多的朋友,不知道段落边框是用来做什么的。它有时可以用来设置分割线,来给文档实现内容分割效果。这个段落边框的设置也不难,一起来了解一
- 如何在wps表格中快速输入1万个序号?我们在使用wps表格办公时,需要输入1万个序号,有什么技巧可以让我们快速输入码,下面一起来看看小编为大
- Excel是很多小伙伴常用来做报表的软件,在Excel中自带各种各样的数学公式等等,在数学中经常会出现一些特殊符号,比如平常、平方根等等,那
- 你发现了吗?大多数使用苹果设备的人都更喜欢使用搜狗输入法,苹果原生输入法并没有太多人使用。为什么使用苹果设备的人
- 在工作中我们常常要使用到excel,本教程为大家介绍快速输入数据的方法,提供大家的工作效率。EXCEL快速输入数据调整设置若要在单元格中自动
- WPS2019如何批量修改数字?WPS2019如何批量查找数字?WPS2019如何批量替换数字?WPS2019批量修改数字使用什么来查找、替
- 说明ISBERROR 函数检查指定的单元格是否任意错误值。如果为错误值,则返回 TRUE;否则,返回 FALSE。返回值TRUE 或者 FA
- 代理服务器通过存储经常使用的网页副本来提高 Web 性能。 当浏览器请求存储在代理. Server 2008配置IE使用代理· Tunnel
- 短首空2格,是中文文章中很常见的格式,有什么好说的。在word中,真的是敲4个空格那么简单吗?1.网传:CTRL+M可以实现首行空两格,实现
- 许多用户在使用电脑遇到问题的时候基本都会选择重装电脑系统,但是不少用户在重装Win10的时候电脑却提示0x80300024错误,Window
- 很多网友反映Win10/Win8.1安装进度卡在已完成18%不能前进了,这个怎么办呢?不用着急,下面小编就为大家带来解决方法,一起来看看吧W
- 如何在excel表格中快速求差,下面小编为了简答。第一步:打开Excel表格,单击第一排,第三个“单元格”,也就是C1,在C1中输入“=A1
- 首先打开wps表格,然后选择中要合并的单元格,选择右键单元格格式在单元格格式中选择对齐——合并单元格确定后单元格就合并成功了wps合并单元格
- office2015新功能有哪些?大家可以通过下文来了解2015office16新特性,最新版本的office办公软件将带给我们哪些新的内容
- 部分Win10系统用户升级TH2版的时候可以会因为一些不可抗的外力导致安装中断,比如说升级TH2时突然停电了,等到电力恢复了以后再重新启动电