在 Windows 上跑 DISM 修复系统,结果弹出一串错误码,或者进度条卡在 20%、62.3% 一动不动,是不少人都遇到过的情况。简单讲,DISM 出问题通常就三类原因:命令写错了、组件存储(Component Store)本身损坏了,或者 DISM 找不到用来修复的源文件。下面按从易到难的顺序带你排查。
先看三条快速提示
- 一定要用管理员身份打开命令提示符或 Windows 终端,否则容易出现“拒绝访问”。
- DISM 扫描耗时从几分钟到更久不等,取决于电脑性能和损坏程度,别看到进度没动就急着判定卡死。
- 如果提示找不到源文件(例如 0x800f081f),可能需要指定修复源,比如挂载一个与当前系统版本、版本类型(家庭版/专业版)和语言都一致的 Windows ISO。
常见 DISM 错误码对照表
| 错误码 | 通常含义 | 对应处理 |
|---|---|---|
| 87 | 参数不正确,多半是语法写错 | 见方法一 |
| 5 或 740 | 没有管理员权限 | 以管理员身份重新打开命令行 |
| 0x800f081f、0x800f0915、0x800f0906 | 找不到或无法下载修复文件 | 见方法三、方法五 |
| 50 | 在 Windows PE(恢复环境)中不支持 /Online 选项 | 回到正常的 Windows 系统里运行 |
方法一:检查命令语法
错误 87 基本就是 DISM 看不懂你输入的参数。要确认命令格式完全正确,各部分之间有空格。另外,从网页上直接复制命令有时会带进奇怪的字符,建议手动敲一遍。
- 在开始菜单搜索“命令提示符”,选择“以管理员身份运行”,并在用户账户控制弹窗里点“是”。
- 输入下面这条标准命令:
DISM /Online /Cleanup-Image /RestoreHealth - 按回车,等扫描结束,期间不要关闭窗口。
方法二:清理组件存储
如果 RestoreHealth 总是卡住或失败,可能是组件存储里残留了旧的更新文件或挂起的操作。先清理一下:
- 在管理员命令提示符中运行:
DISM /Online /Cleanup-Image /StartComponentCleanup - 如果系统在更新后连启动都有问题,应使用对应的恢复流程来撤销挂起的操作。注意:不要在正常使用的系统上把 /RevertPendingActions 当成常规修复手段。
- 再把方法一的 RestoreHealth 命令跑一遍。

想清理得更彻底,可以在 StartComponentCleanup 命令末尾加上 /ResetBase。代价是:已经安装的更新以后就不能再卸载了,所以要想清楚再用。
方法三:重置 Windows 更新组件
DISM 默认通过 Windows 更新下载修复文件,所以更新缓存一旦损坏,就可能下载时卡住或直接失败。重置一下就能清掉缓存文件。
- 以管理员身份打开命令提示符。
- 逐条运行下面的命令,每条运行完再输入下一条:
net stop wuauserv
net stop bits
net stop cryptsvc
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start wuauserv
net start bits
net start cryptsvc - 重启电脑,再运行一次 DISM。
如果你开着系统代理或第三方杀毒软件,也建议在“设置 > 网络和 Internet > 代理”里临时关掉代理,并暂停杀毒软件,因为这两样都可能拦截 DISM 的下载。
方法四:用 CHKDSK 排除磁盘错误
DISM 卡住又没有明确报错时,磁盘文件系统错误也可能是元凶。
- 以管理员身份打开命令提示符,运行:
chkdsk C: /f /r - 如果提示在下次重启时计划检查,输入 Y 并回车。
- 重启电脑,让扫描跑完。容量大或较旧的硬盘可能要等挺久。
- 进入系统后,再次运行 DISM。
方法五:原地升级(最后的办法)
前面都不行的话,可以做“原地升级”:在保留个人文件、应用和大部分设置的前提下,把 Windows 覆盖安装一遍,用新的系统映像替换掉 DISM 修不好的损坏部分。
- 下载与当前系统匹配的 Windows 11 ISO,挂载后运行里面的 setup.exe。
- 按提示操作,到“准备就绪,可以安装”界面时,确认选中的是“保留个人文件和应用”。如果不是,点击“更改要保留的内容”进行选择。
- 点击“安装”,期间电脑会自动重启多次,耐心等待。

较新的 Windows 11 版本里,还可以直接进入“设置 > 系统 > 恢复”,点击“使用 Windows 更新修复问题”旁边的“立即重新安装”,不用 ISO 也能达到同样效果。
DISM 成功跑完之后,再运行 sfc /scannow,用修复好的组件存储去扫描并替换损坏的系统文件。
常见问题(FAQ)
DISM 卡在某个百分比不动,要等多久?
没有固定时间。DISM 的进度显示本来就不均匀,卡在 20% 或 62.3% 很常见,先等上一段时间再判断。如果等了很久硬盘灯也完全不闪,再按上面的方法排查。
DISM 和 sfc /scannow 先跑哪个?
如果 sfc 报告无法修复,通常先用 DISM 修好组件存储,再重新运行 sfc。
原地升级会丢文件吗?
只要选择了“保留个人文件和应用”,一般不会丢。但重要资料建议先备份,以防万一。
总结
DISM 出问题时,先对照错误码,再按“语法 → 组件清理 → 重置更新组件 → CHKDSK → 原地升级”的顺序往下试,大多数情况能在前几步解决。修复成功后别忘了再跑一遍 sfc /scannow。