Windows更新卡在0%需先停止并重启wuauserv、bits、cryptsvc、msiserver四项服务;再用PowerShell一键清理SoftwareDistribution和Catroot2缓存;最后重置Winsock、TCP/IP及DNS并重启电脑。

当你点击“检查更新”后进度条永远停在 0%,任务管理器里磁盘、网络、CPU 占用全为零,说明 Windows 更新服务根本没启动下载,不是慢,是彻底卡死。
重启四项核心服务
Windows Update(wuauserv)、BITS、Cryptographic Services(cryptsvc)、Windows Installer(msiserver)必须全部运行才能初始化下载。任一服务假死或被第三方软件禁用,就会锁死整个流程。
按 Win + X → 选择“终端(管理员)” → 依次输入以下四条命令,每行执行完再敲回车:
net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
服务全部停止后,再依次启动:
net start wuauserv
net start bits
net start cryptsvc
net start msiserver
关闭终端,打开“设置 > Windows 更新”,立即点击“检查更新”。这一步能快速验证服务链是否恢复响应。
清空缓存目录(推荐 PowerShell 一键执行)
SoftwareDistribution 和 Catroot2 两个目录里积压的损坏元数据、残留 .tmp 锁文件、权限异常项,会直接让系统拒绝新建更新会话——它连尝试下载都不做,所以才恒定 0%。
右键“开始”→“Windows 终端(管理员)”→粘贴并执行以下完整脚本:
Stop-Service wuauserv -Force
Stop-Service bits -Force
Stop-Service cryptsvc -Force
Stop-Service msiserver -Force
Remove-Item "C:\Windows\SoftwareDistribution\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "C:\Windows\System32\Catroot2\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service wuauserv
Start-Service bits
Start-Service cryptsvc
Start-Service msiserver
【执行前请确保已关闭所有杀毒软件和系统优化工具,否则 Remove-Item 可能被拦截导致清空失败】
重命名缓存目录(手动操作备选)
如果你不熟悉 PowerShell,或者上一步报错权限不足,可用此方法绕过删除限制,让系统自动重建干净目录。
第一步:以管理员身份运行命令提示符或 PowerShell。
第二步:依次执行服务停止命令:
net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
第三步:执行重命名操作:
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\Catroot2 Catroot2.old
第四步:重新启用全部服务:
net start wuauserv
net start bits
net start cryptsvc
net start msiserver
这一步做完,C:\Windows\SoftwareDistribution 和 C:\Windows\System32\Catroot2 将被系统自动重建为空目录,旧缓存彻底隔离。
重置网络协议栈
Winsock 损坏会导致 BITS 无法建立 HTTP 下载连接,即使服务跑着,也拿不到任何字节——表现就是 0% 静止不动。
管理员终端中依次执行:
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
执行完毕后必须重启电脑,否则重置不生效。

















