使用 DISM 清理 WinSxS 文件夹
前言
Windows 更新后,都会将旧组件存放到 WinSxS 文件夹,尽管 Windows 会自动定期清理,但是在空间告罄时可以手动清理以释放更多的系统盘空间WinSxS 文件夹位于 Windows 文件夹中,例如
C: \Windows\WinSxS。 它是 Windows 组件存储文件的位置。 Windows 组件存储用于支持自定义和更新 Windows 所需的函数。
删除 WinSxS 文件夹中的文件或删除整个 WinSxS 文件夹可能会严重损坏系统,导致你的计算机可能无法启动,并且无法进行更新。
确定 WinSxS 文件夹的实际大小
按下 WIN + X 以打开“高级菜单”,选择“终端管理员”,“Windows PowerShell (管理员)”或“命令提示符(管理员)”
随后输入以下命令并按下 Enter 以回车
1 | Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore |
执行之后示例的内容如下:
1 | C:\Windows\System32>Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore |

以下是输出中提供的信息:
| 标题 | 说明 |
|---|---|
| Windows 资源管理器报告的组件存储大小 | Windows 资源管理器计算的 WinSxS 文件夹的大小值。 此值不会考虑 WinSxS 文件夹中使用的硬链接。 |
| 组件存储的实际大小 | 此值考虑 WinSxS 文件夹中的硬链接。 它不会排除通过硬链接与 Windows 共享的文件。 |
| 与 Windows 共享 | 此值提供使用硬链接的文件的大小,这些文件使用硬链接以便同时显示在组件存储和其他位置(为便于正常操作 Windows)中。 这包含在实际大小中,但不应视为组件存储开销的一部分。 |
| 备份和禁用的功能 | 这是为响应更新组件中的故障或提供启用更多功能的选项而保留的组件的大小。 它还包括组件存储元数据和并行组件的大小。这包含在实际大小中,是组件存储开销的一部分。 |
| 缓存和临时数据 | 这是组件存储在内部用于加快组件服务操作速度的文件的大小。 这包含在实际大小中,是组件存储开销的一部分。 |
| 上次清理日期 | 这是最近完成组件存储清理的日期。 |
| 可回收包数 | 这是组件清理可以删除的系统中被取代包的数量。 |
| 建议的组件存储清理 | 这是组件存储清理建议。 如果执行清理过程可以减少组件存储开销的大小,则建议进行清理。 |
在此示例中,WinSxS 文件夹看上去为 15.45 GB,但实际开销(备份和禁用功能的大小与缓存和临时数据的大小之和)为 6.82 GB。
清理 WinSxS 文件夹
如果“推荐使用组件存储清理”为“是”,或者你自己想清理的话,可以执行以下命令进行清理。清理是安全的,但是速度稍微缓慢,不会损坏系统
1 | Dism.exe /Online /Cleanup-Image /StartComponentCleanup |

清理完成后再次使用 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 命令可以查看清理后的占用

清理之后的示例如下:
1 | C:\Windows\System32>Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore |
即可看到,WinSxS 文件夹从 15.45 GB 减少到了 11.52 GB,实际开销(备份和禁用功能的大小与缓存和临时数据的大小之和)从 6.82 GB 减少到了 3.57 GB。
定时任务清理 WinSxS 文件夹
StartComponentCleanup 任务会在系统未使用时自动清理组件。 自动运行时,该任务将在更新的组件安装之后等待至少 30 天,然后再卸载该组件的先前版本。如果选择运行此任务,则该任务将有 1 小时的超时,并且可能无法完全清除所有文件。
按下 WIN + R 打开“运行”,输入 taskschd.msc 并按下 Enter 以回车来打开“任务计划程序”
找到如下路径:任务计划程序库 > Microsoft > Windows > Servicing > StartComponentCleanup
然后,点击旁边的“运行”即可开始清理
此外,以下命令也可以直接调用这个定时任务
1 | schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup" |
重设基准版本地清理 WinSxS 文件夹
使用 /ResetBase 参数会极大地消耗时间,并清理所有的旧组件,并导致不能卸载任何在此之前安装的更新
1 | Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase |
后记
管理组件存储 | Microsoft Learn
清理 WinSxS 文件夹 | Microsoft Learn
确定 WinSxS 文件夹的实际大小 | Microsoft Learn