Windows 更新文件怎么删,删了会失去什么
大家说的“Windows 更新文件”其实不是一个文件夹,一台普通电脑上通常有四堆,组件存储里被取代的旧版本组件,C:\Windows\SoftwareDistribution\Download 里的下载缓存,功能更新以后留在 C:\Windows.old 的上一版系统,还有拿来和其他电脑共享更新的传递优化缓存,它们各有各的清理入口,代价也差得很远,有的删了几乎没影响,有的删了就再也回不到上一个 Windows 版本。
先给结论,要空间就用磁盘清理或设置里的入口,SoftwareDistribution 留给修复卡住的更新,不当成省空间的地方,Windows.old 等新系统用稳了再删。
四个位置,四种代价
| 位置 | 里面是什么 | 用什么清理 | 清掉以后失去什么 |
|---|---|---|---|
| Windows 更新清理 | 组件存储里已更新组件的旧版本 | 磁盘清理里的“清理系统文件” | 这些组件提前失去回滚余地 |
SoftwareDistribution\Download |
Windows 更新下载下来的安装包 | 按微软的重置步骤,先停服务 | 还没装的更新要重新下载 |
Windows.old |
升级前的那一版 Windows | 设置里的临时文件 | 恢复页里的“返回”选项 |
| 传递优化缓存 | 留着共享给别的电脑的更新和应用下载 | 磁盘清理,或者等它自己清 | 局域网里的其他电脑改从互联网下载 |
删之前先量一下
打开设置 › 系统 › 存储,点“临时文件”,Windows 会按类别列出大小,先看清更新相关的几项到底占了多少,如果 C 盘是被游戏库或者视频工程塞满的,清几百 MB 更新缓存解决不了问题。
组件存储那一块,资源管理器给 C:\Windows\WinSxS 算出来的数字因为硬链接会偏大很多,怎么用 DISM 量出真实开销,WinSxS 清理那篇已经讲过,这里不重复。
磁盘清理里的“Windows 更新清理”
四种里这一种最稳,通常也是第一个该试的:
- 在任务栏搜索“磁盘清理”并打开。
- 选系统盘,点确定。
- 点“清理系统文件”,再选一次系统盘,点确定。
- 勾选“Windows 更新清理”,点确定,再点“删除文件”。
微软的组件存储说明写明这一项会减小组件存储,Windows 平时也会按计划做类似的清理,一些组件的旧版本会保留一段时间,方便出问题时回滚,过了这段时间再自动移除,自己动手清理只是把这一步提前了。
代价就是这段回滚余地,刚装完一个大的累积更新,打印机、驱动和常用软件还没确认正常的时候,先等几天再清。更激进的 DISM 参数 /ResetBase 会让已装的更新都不能再卸载,WinSxS 那篇讲了它,用磁盘清理不需要碰它。
SoftwareDistribution\Download 是修复用的,不是省空间用的
C:\Windows\SoftwareDistribution\Download 是 Windows 更新存放已下载安装包的地方,正常更新时由系统自己管理,大块空间一般也不藏在这里,清空它是给下载或安装反复失败的更新做修复,微软也是按修复步骤来介绍的。
微软的重置说明先建议跑 Windows 更新疑难解答,还不行再手动处理,第一步是停掉占用这些文件的服务,免得一边处理文件夹一边有程序往里写,以管理员身份打开命令提示符:
net stop bits
net stop wuauserv
net stop cryptsvc
微软的做法是把文件夹改名而不是直接删除,并且说明只有前面的重置步骤都没解决问题时才做这一步:
Ren %Systemroot%\SoftwareDistribution\DataStore DataStore.bak
Ren %Systemroot%\SoftwareDistribution\Download Download.bak
Ren %Systemroot%\System32\catroot2 catroot2.bak
处理完再把服务启动回来:
net start bits
net start wuauserv
net start cryptsvc
改名能把旧内容留到确认更新恢复正常为止,Windows 更新会建新的文件夹,重新下载还需要的部分,等设置 › Windows 更新里能顺利装上更新,再删掉那几个 .bak 文件夹。同一篇文章里还有一个“实在不行”的简短写法,会删掉整个 SoftwareDistribution,连 DataStore 也一起删,不只是下载内容,它被放在最后一步,就按最后一步对待。
最该避免的是 Windows 更新还在运行时直接删这个文件夹,被占用的文件删不掉,正在下载的内容也可能断在一半。
Mole for Windows 的优化页里有一个范围更窄的同类修复,叫“重置卡住的更新下载”,只有同一个更新在最近 30 天里连续至少两次安装失败才会出现,Windows 正在安装更新或者等待重启时不做,30 天内最多做一次。它会停掉 Windows 更新和 BITS,只清空 Download 文件夹,再把原来在运行的服务启动回来,不动 DataStore、catroot2,也不改更新设置和策略。
Windows.old 和 10 天期限
升级系统或者装完功能更新以后,上一版系统会放在 C:\Windows.old,设置 › 系统 › 恢复里的“返回”就靠它。微软的回退说明写着,大多数情况下有 10 天时间,想要回退,需要保留 windows.old 和 $windows.~bt 两个文件夹,删掉升级后新加的用户账户,升级时用过 U 盘的话还要准备好那个 U 盘。回退会保留个人文件,但升级后装的软件和驱动会被移除。
很多时候根本不用自己删,微软的删除说明写明升级 10 天后旧版本会被自动删除。想提前删,就去设置 › 系统 › 存储 › 临时文件,勾选“以前版本的 Windows”,点“删除文件”,同一页也提醒了,删了就不能撤销。
动手之前,先把可能让你想回退的事情过一遍,常用软件能不能打开,打印机能不能打印,VPN 能不能连上,在意的文件是不是已经在自己的用户文件夹里,而不是只躺在 Windows.old 里。文档备份替代不了这一步检查,因为“返回”恢复的是系统,不是你的文件。
传递优化缓存
传递优化让电脑可以从局域网里的其他电脑下载 Windows 更新和应用商店的更新,允许的话也可以从互联网上的电脑下载,同时把自己下载过的内容分享出去。微软的传递优化说明写着,缓存会在一小段时间后或者占用太多空间时自动清理,想提前清,就在磁盘清理里勾选“传递优化文件”。
“一小段时间”具体是多久,传递优化参考文档给了默认值,单个文件最多保留三天,缓存最多占可用空间的 20%。清掉它代价很小,Windows 更新安装用的是自己的下载,别的电脑会改从微软下载,不再从你这里拿。想改这台电脑要不要分享,去设置 › Windows 更新 › 高级选项 › 传递优化。
Mole 的清理页会把这块缓存列成“传递优化文件”,Mole 是请传递优化服务自己删除已经下载完成的文件,还在下载的和被固定保留的都不碰,也不会去夺取这个服务文件夹的所有权。
清完怎么核对
- 再打开一次磁盘清理或临时文件,和清理前的各项大小对比。
- 打开设置 › Windows 更新,点“检查更新”,能正常搜索和安装。
- 打开设置 › 系统 › 恢复,删掉
Windows.old以后“返回”不见了是正常的,如果其实还需要它,已经找不回来了。
不要这样做
- 不要手动删
WinSxS里的文件,也不要从 TrustedInstaller 手里夺权强删。 - 不要在 Windows 更新服务运行时删
SoftwareDistribution,也不要把它当成日常清理空间的地方。 - 不要因为
Windows.old大,升级后头几天就把它删了。 - 不要为了让这些文件夹别再变大就禁用 Windows 更新或 BITS 服务,那样安全更新也一起停了。
C 盘还有别的东西在占空间,可以接着看 C 盘空间分类排查 和 找出大文件。
常见问题
Windows 更新文件可以删吗?
可以,只要用 Windows 自带的入口,磁盘清理里的“Windows 更新清理”和“传递优化文件”,以及临时文件里的“以前版本的 Windows”。代价是组件更早失去回滚余地,删 Windows.old 则意味着不能再用“返回”。
SoftwareDistribution 文件夹能删吗?
只建议在更新反复失败时当作修复来做,而且要先停掉 Windows 更新服务。微软的步骤是把 Download 和 DataStore 改名而不是删除,等更新恢复正常再删掉改名后的副本。
Windows.old 会在电脑上留多久?
大多数情况下是升级后 10 天,之后 Windows 会自动删除它,“返回”选项也随之消失。
删除传递优化文件会影响更新吗?
不会,这些是留着分享给其他电脑的副本,Windows 更新再需要某个文件时会从微软下载,这块缓存本身过几天也会自动清理。