Windows 10系统盘空间持续减少很可能是SoftwareDistribution目录堆积更新文件所致,可通过磁盘清理、启用存储感知、停止服务后手动清空、PowerShell精准清除Download子目录或重命名缓存目录五种方法解决。

如果您发现 Windows 10 系统盘空间持续减少,且确认近期执行过系统更新,则很可能是 SoftwareDistribution 目录中堆积了已下载但未安装的更新包、旧版更新残留文件或传递优化缓存。以下是解决此问题的步骤:
一、使用磁盘清理工具清除Windows更新清理项
该方法调用系统内置的磁盘清理功能,通过“清理系统文件”路径访问深层系统目录,安全识别并删除已安装更新的原始安装包(如.cab文件)、旧版组件备份及传递优化缓存,不破坏当前运行系统。
1、右键点击“此电脑”中的C盘,选择“属性”。
2、在属性窗口中点击“磁盘清理”按钮,等待扫描完成。
3、点击左下角的“清理系统文件”按钮,再次选择C盘进行深层扫描。
4、扫描完成后,在文件列表中勾选Windows 更新清理、传递优化文件和以前的 Windows 安装文件(若存在)。
5、确认勾选后点击“确定”,在弹出的提示窗口中选择“删除文件”。
二、启用并触发存储感知自动清理
存储感知是 Windows 10 内置的自动化空间管理机制,可按设定周期扫描并清除临时文件、交付优化缓存、回收站内容及过期更新文件。启用后,系统将定期检查并释放非关键临时数据。
1、按下Win + I打开设置,进入“系统”→“存储”。
2、确保“存储感知”开关处于开启状态;若为关闭,请点击右侧滑块将其打开。
3、点击“配置存储感知或运行它”,在“运行存储感知”下选择“立即运行”。
4、在弹出窗口中,勾选Windows 更新清理、交付优化文件、临时文件三项,点击“清理”。
三、停止Windows Update服务后手动清空SoftwareDistribution文件夹
Windows Update 服务运行时会独占锁定 SoftwareDistribution 目录内的文件,导致无法直接删除。必须先中止相关系统服务,释放文件句柄,才能安全彻底清空全部内容,确保缓存环境被重置。
1、右键点击“开始”按钮,选择“终端(管理员)”或“命令提示符(管理员)”。
2、依次输入以下命令,每执行一条后按回车:
net stop wuauserv
net stop bits
net stop cryptsvc
3、按下Win + E打开文件资源管理器,在地址栏中粘贴并跳转至:C:\Windows\SoftwareDistribution。
4、全选该文件夹内所有子文件夹和文件(可按Ctrl + A),右键选择“删除”,确认永久删除操作。
5、返回终端窗口,重新启动服务:
net start wuauserv
net start bits
net start cryptsvc
四、使用PowerShell命令精准清除Download子目录
SoftwareDistribution\Download 是更新缓存的核心存储区,体积最大且最易残留损坏文件;而 DataStore 等子目录含运行状态元数据,不宜误删。PowerShell 可绕过图形界面限制,仅强制递归清除 Download 内容,兼顾安全性与效率。
1、以管理员身份打开“Windows PowerShell”。
2、输入以下命令并回车执行:Remove-Item -Path "$env:windir\SoftwareDistribution\Download\*" -Recurse -Force。
3、等待命令返回完成提示(无报错即表示删除成功)。
4、为防止系统映像异常,可选执行修复命令:DISM /Online /Cleanup-Image /RestoreHealth。
五、停止服务并重命名SoftwareDistribution与catroot2目录
该方法强制系统重建更新缓存结构,可清除磁盘清理工具无法触及的顽固锁文件与残留下载内容,适用于更新失败后残留大量未清理Download子文件夹的情形。
1、按下Win + X组合键,选择“终端(管理员)”或“Windows PowerShell(管理员)”。
2、依次输入以下命令,每输入一条后按回车执行:
net stop wuauserv
net stop bits
net stop appidsvc
net stop cryptsvc
3、接着输入以下命令重命名核心缓存目录:
ren C:\Windows\SoftwareDistribution SoftwareDistribution_old
ren C:\Windows\System32\catroot2 catroot2_old
4、最后输入以下命令重启服务:
net start wuauserv
net start bits
net start appidsvc
net start cryptsvc











