C:\Windows\WinSxS 目录详解
C:\Windows\WinSxS 目录详解
WinSxS
(Windows Side-by-Side)是 Windows 系统中一个非常重要的组件存储目录,主要用于管理不同版本的 DLL、系统组件和更新文件,以确保软件兼容性和系统稳定性。
1. WinSxS 的作用
- 存储多个版本的系统文件:不同程序可能需要不同版本的 DLL 或系统组件,WinSxS 让它们能共存而不冲突。
- 支持 Windows 更新和回滚:安装更新时,旧版本文件会被保留,以便在需要时回滚。
- 系统修复和组件存储:Windows 使用此目录恢复损坏的系统文件(如通过
sfc /scannow
)。
2. 为什么 WinSxS 会越来越大?
- Windows 更新累积:每次更新都会添加新文件,旧版本不会立即删除。
- 硬链接(Hard Links):许多文件看似在 WinSxS 中,实际是硬链接到
System32
或其他位置,实际占用空间比显示的小。 - 系统保留旧版本:用于兼容性和回滚,避免更新失败导致系统崩溃。
3. 能否手动删除 WinSxS?
❌ 绝对不要手动删除! 这会导致系统崩溃、程序无法运行,甚至无法启动。
✅ 正确的清理方法:
方法 1:使用磁盘清理工具
- 按
Win + R
,输入cleanmgr
并回车。 - 选择系统盘(通常是 C 盘),点击 “清理系统文件”。
- 勾选 “Windows 更新清理” 和 “Windows 升级日志文件”,然后点击 “确定”。
方法 2:使用 DISM 命令
DISM /Online /Cleanup-Image /AnalyzeComponentStore (分析 WinSxS 占用情况)
DISM /Online /Cleanup-Image /StartComponentCleanup (清理旧版本组件)
方法 3:使用 Storage Sense(Windows 10/11)
- 进入 设置 → 系统 → 存储 → 存储感知。
- 开启 “自动清理临时文件”,或手动运行清理。
4. WinSxS 目录结构
Manifests
:存储组件清单(XML 文件),描述 DLL 和系统组件的版本信息。amd64_*
、x86_*
:64 位和 32 位系统组件。PendingDeletes
:标记待删除的文件,通常在下一次重启时清理。
5. 常见误解
- “WinSxS 占用了太多空间!”
- 实际占用空间比资源管理器显示的小,因为大部分是硬链接。
- 使用
DISM /AnalyzeComponentStore
查看真实占用。
- “删掉它可以节省空间”
- 错误!手动删除会导致系统崩溃,必须用官方工具清理。
6. 高级管理(适用于管理员)
DISM /Online /Cleanup-Image /ResetBase
- 删除所有旧版本更新,无法再卸载已安装的更新(但可节省空间)。
- 组策略调整(企业环境)
- 可配置 Windows 更新缓存策略,减少 WinSxS 增长。
总结
- WinSxS 是 Windows 的核心组件库,不能手动删除!
- 使用
DISM
或磁盘清理
安全清理旧文件。 - 硬链接机制让 WinSxS 的实际占用比看起来小。
如果发现 WinSxS 异常巨大(如超过 20GB),可能是更新失败导致,可运行 sfc /scannow
检查系统完整性。