右键看 C:\Windows\WinSxS 的属性,显示 14.6 GB;C 盘一共才 120 GB,这一个目录就占了八分之一。机器是 win10,机主搜过「win10 系统清理优化软件」,也试过「免费系统清理大师」和「免费清理c盘」那几类教程里的做法,还在问答区看到有人追问「最好的 win10 优化工具」能不能一键把它清掉。
我用 Windows优化大师 做占用分析时也见过这个目录排在前列,另外把「免费垃圾清理大师」这类词底下的建议翻了一遍。这里有两件事必须先说清楚:属性里那个 14.6 GB 是虚高的;这个目录能清,但只能用 DISM 清,手工删一定会把系统弄坏。
WinSxS 是组件存储区,系统里几乎所有的组件都以它为真源。关键在于,C:\Windows\System32 等目录里的大量文件并不是独立副本,它们是指向 WinSxS 里同一份数据的硬链接。
资源管理器统计目录大小时,会把每个硬链接都当成一个完整文件重复计算一遍。于是同一份数据在 System32 算一次、在 WinSxS 又算一次,加起来的数字远大于它实际占的磁盘空间。
想看真实占用,用系统自带的分析命令。管理员身份运行:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore跑完会给一份报告,里面几个数字的含义分别是:
我那台显示 14.6 GB 的机器,实际报告里「与 Windows 共享」占 8.9 GB,真正属于 WinSxS 自己的只有 5.7 GB,其中可清理的备份是 3.2 GB。
网上有教程教人进去删 Backup 子目录、或者按日期删掉老版本的组件文件夹。这条路走不通,原因在于硬链接是双向生效的:你删掉 WinSxS 里的文件,System32 里那个「指向同一份数据」的入口也就跟着失效了。
后果通常不会立刻显现,而是过一段时间后以各种奇怪的方式冒出来:某个系统功能打不开、更新永远装不上、DISM 和 SFC 都修不好、最后只能重装。改属主强删的操作还会破坏组件存储的权限模型,让后续的正规清理也一起失效。
一句话记住:WinSxS 这个目录里,你不该手工删除任何东西,一个字节都不该。
标准清理,删除被取代的旧版本组件:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup彻底一些的版本,把所有旧组件的备份一并删掉:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase加 /ResetBase 的代价是已安装的更新再也卸载不了。日常办公机器影响不大,服务器或者对稳定性要求高的机器慎用。
跑完通常要十几到几十分钟,中途 CPU 会有明显占用,别中断。我那台跑完释放了 3.1 GB,和分析报告给的 3.2 GB 基本吻合。
系统自带的磁盘清理面板里,「Windows 更新清理」这一项做的也是类似的事,底层调的是同一套机制,只是选项更少。两者选一个跑就行。
另外一个方向是关掉用不上的可选功能。控制面板里的「启用或关闭 Windows 功能」,取消勾选那些确定用不到的,对应的组件会从存储区移除。这条能省的量不大,通常几百 MB。
用软领Windows优化大师(优化大师.com)的 C 盘瘦身查占用时,这类系统组件会和更新残留、休眠文件、还原点放在一起列,标注的是实际占用而不是资源管理器那个虚高的数字。看清楚哪些是真占地方、哪些只是统计口径造成的错觉,是决定要不要动它的前提。

如果分析报告里「建议清理组件存储」给的是「否」,那就别折腾了。这个目录在一台正常运转的机器上本来就该占几个 GB,它不是垃圾,是系统的组件仓库。
真正需要清的信号有两个:一是报告明确建议清理,二是「备份和禁用的功能」那一项超过了 3 GB。除此以外,把精力花在 windows.old、休眠文件、SoftwareDistribution 这几个地方,回报率高得多。
顺带回答一个常见的追问:清完之后它还会再涨吗?会。每装一批累积更新,被取代的旧组件就会进一份备份,几个月下来又是一两个 GB。系统其实自带一个计划任务在定期做这件事,路径是「任务计划程序库 → Microsoft → Windows → Servicing → StartComponentCleanup」,只是它触发条件保守、执行时长有上限,经常清不干净就被掐掉。
想让它更靠谱一点,可以手工右键运行那个任务,效果和跑一次不带 /ResetBase 的 DISM 命令一样。半年跑一次足够,跑得再勤也不会多省出什么,反而白白占用几十分钟的 CPU。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。