首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >清理大文件时WinSxS占了几十G,先用DISM查清能回收多少再动手

清理大文件时WinSxS占了几十G,先用DISM查清能回收多少再动手

原创
作者头像
软领
发布于 2026-11-13 09:40:35
发布于 2026-11-13 09:40:35
940
举报

打开「此电脑」,C 盘那条进度条已经变红。右键 C:\Windows\WinSxS 看属性,写着二十几个 G;旁边 C:\Windows.old 也有十几个 G。两个名字都很陌生的文件夹,加起来的体积比装过的所有软件都大,很多人的第一反应是选中、删除、重启,然后就停在自动修复界面了。

WinSxS 是系统组件的硬链接仓库,里面相当一部分文件被 C:\Windows\System32 以硬链接方式引用。手动删掉之后,Windows 更新会直接报错,重启也可能卡住进不去系统。

正确的顺序是三步:先让系统回收它自己判定可删的那部分,再定位到底是哪些文件夹占着盘,最后才动用 DISM 收缩 WinSxS、关闭休眠文件、清掉旧系统副本。顺序反了,白删的功夫比省下的空间还多。

文中的方法在 Windows 10 / 11 上实测可用,命令最后更新于 2026-11-12。C 盘少掉的几十个 G,多数是旧更新残留和旧系统副本留下的,里面的个人资料本身没有问题,按顺序处理就能把这些空间拿回来。

先把 WinSxS 和 Windows.old 分清

这两个文件夹经常被放在一起说,性质却完全不同,处理方式也不能互换。

WinSxS

Windows.old

位置

C:\Windows\WinSxS

C:\Windows.old

里面是什么

系统组件包,大量以硬链接形式存在

上一版系统的完整副本

能不能手删

不能,会连带破坏 System32 组件

能删,但删完回不到旧版本

回收方式

Dism 的组件存储清理

存储 → 临时文件,或 cleanmgr

典型体积

二十几个 G,其中大部分是硬链接

十几个 G

资源管理器里显示的 WinSxS 体积并不等于真实占用,硬链接指向的数据已经在别处计过一次,这也是不少人对着这个数字算不明白的原因。判断能不能回收,看系统自己给出的分析结果,不看这一个数字。

方法一 先用存储感知回收系统自己判定的可删项

存储感知是 Windows 自带的功能,只清它自己认定能删的临时文件和更新残留,是最省事也最安全的一步。先让它跑完,再看还剩多少没回收,后面几步才有意义。

  1. Win+I 打开设置,进「系统 → 存储」,先看顶部进度条给出的 C 盘已用容量
  2. 进入「临时文件」,逐项看可回收体积:Windows 更新清理、传递优化文件、缩略图、回收站
  3. 勾选前留意「下载」文件夹,那里放的是你自己的文件,系统不会替你判断要不要留
  4. 点「删除文件」,回到存储页刷新,对比处理前后的差值,记下还剩多少没回收
  5. 如果存储感知是关闭状态,先打开并设为自动运行,之后的临时文件不用再手动清

这一层能回收的量是有限的。刚重装完的那一年多,它通常能腾出十几个 G,再往后可清的残留就少了,单靠它一次解决不了全部问题。

方法二 手动定位到底是哪个文件夹占了盘

很多人是按免费清理c盘的教程一路删过来的,那些做法多半是让你把见到的大文件夹直接选中删掉,这一步先别照做。先用资源管理器把 C 盘按体积从大到小排出来,看清完整路径和修改时间,再决定动谁。

  1. 文件资源管理器 → 此电脑 → 双击 C 盘 → 查看 → 详细信息,右键列标题勾选「大小」
  2. 点「大小」列标题按降序排,逐个右键大文件夹 → 属性,看实际占用
  3. 重点核对 C:\Windows\WinSxS、C:\Windows.old、C:\Windows\Installer、C:\Users\你的用户名\AppData 这几处
  4. 设置 → 系统 → 存储 → 应用和功能,改成按大小排序,看有没有体积异常的软件
  5. 在同一个位置看修改时间,长期没动过又特别大的文件,才是有商量的对象

排完序会发现,占地方的往往就那么两三个文件夹,剩下的都是零头。

方法三 用 DISM 收缩 WinSxS 组件存储

WinSxS 里的旧组件包由系统自己回收,命令行敲两条就够了。这个文件夹始终不要手动删。

  1. Win+X → 终端(管理员) 或 命令提示符(管理员),确认窗口标题带「管理员」
  2. 执行分析命令,看「可回收的程序包」数量
  3. 确认有可回收项后执行清理命令,等进度走完
  4. 提示 0x800f0806 说明有挂起的更新操作,重启系统后再跑一次同样的命令
  5. 不要进 C:\Windows\WinSxS 手动删文件,目录里大多是硬链接,误删会连带破坏 System32 组件
  6. 清理完成后重新执行分析命令复查,正常会看到建议清理的提示消失
代码语言:powershell
复制
Dism /Online /Cleanup-Image /AnalyzeComponentStore
Dism /Online /Cleanup-Image /StartComponentCleanup

整个过程中别断电、别中途关窗口就行。回收几百兆到几个 G 都算正常,机器用得越久、装的更新越多,回收出来的空间越大。

0x800f0806 只是上一次更新没走完,不涉及磁盘损坏或注册表问题。重启之后重跑同一条命令即可,改注册表反而会引入新的麻烦。

方法四 关掉休眠文件释放根目录空间

C 盘根目录那个 hiberfil.sys 大小和物理内存差不多,16G 内存的机器它就占 16G。平时不用休眠的话整份关掉,一条命令就能腾出来。

代码语言:powershell
复制
powercfg /h off
  1. 管理员命令提示符里执行 powercfg /h off,回到 C 盘根目录确认 hiberfil.sys 已经消失
  2. 想保留休眠只缩小体积,可以执行 powercfg /h /size 40 这样的比例参数
  3. 需要还原时执行 powercfg /h on,文件会按当前内存容量重新生成
  4. 关掉后「电源」菜单里的休眠选项和快速启动会一并消失,属于正常现象
  5. 笔记本要留意,关掉休眠后合盖只能睡眠,断电会丢掉没保存的内容,按需取舍

8G 内存的机器关掉休眠能腾出 8G 左右,16G 的能腾 16G,这是 C 盘根目录里最容易见效的一项,操作也不影响系统文件。

方法五 清掉 Windows.old 旧系统副本

升级到新版本 Windows 之后留下的 C:\Windows.old 体积很大,动手前先确认新系统已经稳定运行,因为删掉之后就回不到上一版了。

  1. 设置 → 系统 → 存储 → 临时文件,勾选「以前的 Windows 安装」后删除
  2. 或者 Win+R 输入 cleanmgr → 选择 C 盘 → 点「清理系统文件」→ 勾选同名项目再确定
  3. 执行前确认新系统已经稳定运行,常用软件和驱动都正常,再动手删
  4. 系统默认保留期约 10 天,到期后它也会被自动回收,不着急可以等
  5. 删除动作不可逆,完成后「恢复」里的回退选项会一并消失

Windows.old 和 WinSxS 不一样,它是实实在在的完整系统副本,用磁盘清理删掉不会影响当前系统的更新和组件,空间立刻就能回来十几个 G。

按顺序处理能拿回多少空间

常见问题

WinSxS 文件夹能删吗,直接删除会有什么后果

不能删。这个目录里的文件大多以硬链接形式存在,System32 中的同名组件直接指向同一份数据,手删之后 Windows 更新会报错,重启可能停在自动修复界面。要回收空间,走 Dism /Online /Cleanup-Image /StartComponentCleanup。

Dism /StartComponentCleanup 报 0x800f0806 是怎么回事

说明系统里有挂起的更新操作没走完。重启一次,等更新装完,再执行同样的命令就能继续,不需要去改注册表。

Windows.old 能不能右键直接删除,删了还能回退系统吗

右键删容易因为权限报错,还会残留一堆文件,用设置里的存储或 cleanmgr 更干净。删掉之后,回退到上一个 Windows 版本的选项会一起消失,确定不回头再删。

关闭休眠后快速启动没了,怎么恢复 hiberfil.sys

管理员命令提示符里执行 powercfg /h on,hiberfil.sys 会按当前内存容量重新生成,休眠和快速启动也跟着回来。

C 盘满了但 WinSxS 还是好几十 G,分析结果里没有可回收项怎么办

说明当前确实没有能回收的旧组件包,硬删没有意义。这时候去清 Windows.old、关掉休眠文件、清临时文件更划算,也可以先用工具定位真正的大文件在哪。

什么情况下先别动手

  • 还打算回退到上一个 Windows 版本:C:\Windows.old 先留着,系统默认保留期约 10 天,过了再删也不算迟
  • 机器依赖休眠,或者靠快速启动开机:别直接执行 powercfg /h off,改用 powercfg /h /size 40 缩小体积
  • 笔记本且经常不插电:关掉休眠后合盖只剩睡眠,断电会丢掉没保存的内容,按需取舍
  • 分析结果里没有可回收的程序包:DISM 这一步直接跳过,硬删 WinSxS 换不来空间

把这几步按顺序走完,C 盘那几十个 G 大多能拿回来;反过来先对着 WinSxS 下手,换来的往往是重装一遍系统。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 先把 WinSxS 和 Windows.old 分清
  • 方法一 先用存储感知回收系统自己判定的可删项
  • 方法二 手动定位到底是哪个文件夹占了盘
  • 方法三 用 DISM 收缩 WinSxS 组件存储
  • 方法四 关掉休眠文件释放根目录空间
  • 方法五 清掉 Windows.old 旧系统副本
  • 按顺序处理能拿回多少空间
  • 常见问题
    • WinSxS 文件夹能删吗,直接删除会有什么后果
    • Dism /StartComponentCleanup 报 0x800f0806 是怎么回事
    • Windows.old 能不能右键直接删除,删了还能回退系统吗
    • 关闭休眠后快速启动没了,怎么恢复 hiberfil.sys
    • C 盘满了但 WinSxS 还是好几十 G,分析结果里没有可回收项怎么办
  • 什么情况下先别动手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档