打开 C 盘属性想腾空间,顺着 Windows 文件夹点进去,看到 WinSxS 动不动就占 10GB 以上,右键删除还提示需要 TrustedInstaller 权限。不少人硬着头皮删了一部分,结果下次更新直接报错 0x80073712。这文件夹到底能不能删,先把话说在前面:不能手动删,但可以正常清。
WinSxS 里面放的是什么
WinSxS 全称 Windows Side-by-Side,中文叫组件存储,位置在系统盘的 Windows 目录下。它保存着系统每个组件的不同版本:每次打补丁,旧版本不会马上消失,而是和新版本并存,方便出问题时回滚。系统的更新、修复、功能添加都要从这里取文件,所以它只会越用越大,看着像垃圾堆,其实是系统的零件库。
手动删会出什么问题
winsxs 里的文件被手动删掉后,多数情况不会立刻蓝屏,但后患很实在:sfc /scannow 修复时提示找不到源文件;控制面板里添加 .NET Framework 3.5、Hyper-V 这类功能时失败;装累积更新时报 0x800f0831 这类组件缺失错误。因为组件引用关系对不上,系统自己也理不清哪些文件还在。
两种正常的清理方式
- 磁盘清理:开始菜单搜「磁盘清理」,选 C 盘,点「清理系统文件」,勾上「Windows 更新清理」,一般能清出几 GB
- Dism 命令:管理员身份打开终端,先跑 Dism /Online /Cleanup-Image /AnalyzeComponentStore 分析组件存储实际占用,再跑 Dism /Online /Cleanup-Image /StartComponentCleanup 执行清理
StartComponentCleanup 会把被新版本取代的旧组件压紧或移除,比磁盘清理更彻底。后面加 /ResetBase 参数清得更狠,代价是已安装的更新从此无法单独卸载,一般不建议加。清完再跑一次 AnalyzeComponentStore,显示「已建议清理:否」就说明比较干净了。
几点实操经验
刚装完大版本更新的头几天别急着清,更新有十天左右的回退期。长期不重装系统的机器组件存储最容易膨胀,半年跑一次 StartComponentCleanup 就够,别反复折腾。实在爆盘严重的,先处理虚拟内存和休眠文件这些大头。
一句话判断:winsxs 文件夹留着别动,需要空间就用磁盘清理加 Dism 的组合清旧组件,一般能腾几个 G 到十几 G;凡是教你改权限强删 WinSxS 的办法,都别试。