首页/系统/Windows 运维速查/DISM 系统映像维护
CMD 常用命令74 条

DISM 系统映像维护

维护 Windows 组件存储:CheckHealth/ScanHealth/RestoreHealth 三连修复系统组件,是 sfc 修不动时的后手。

Windows 运维速查系统更新于 2026-10-13

DISM 是什么

DISM(Deployment Image Servicing and Management)是 Windows 的映像维护工具,在线维护本机系统时最常用的用法是检查与修复组件存储(WinSxS 里的组件库)。系统更新失败、功能损坏、sfc /scannow 报「无法修复」时,真正的修法通常是先用 DISM /RestoreHealth 把组件库修好,再让 sfc 修复系统文件。它也能对离线映像(WIM/ESD、WinRE 环境下的系统盘)做同样的事,这是它与 sfc 最大的区别。

基本信息

适用平台Windows 8/8.1/10/11 与 Windows Server 2012 及以后;需要管理员权限
语法DISM /Online /Cleanup-Image /CheckHealth|/ScanHealth|/RestoreHealth [/Source:...] [/LimitAccess]
三种检查/CheckHealth 秒级查已标记损坏、/ScanHealth 全量扫描、/RestoreHealth 扫描并修复
组件清理/AnalyzeComponentStore 分析可清理量,/StartComponentCleanup 清理被取代的旧组件
离线维护/Image:C:\ /Mount-Image /Apply-Image /Get-WimInfo 等
日志位置C:\Windows\Logs\DISM\dism.log 与 CBS.log

典型使用场景

  • 系统更新反复失败(如 0x800f081f、0x800f0906):先修组件库再重试更新
  • sfc 修不动:sfc 提示无法修复某些文件时,用 DISM 从源补齐
  • 蓝屏或组件缺失排障:确认组件存储是否被标记为损坏
  • 空间回收:分析并清理组件存储中不再需要的旧版本组件
  • 离线修复:进入 WinRE 或挂载镜像,给无法正常启动的系统修组件

常用示例

常用示例
REM 第一步:快速判断组件库是否已被标记损坏(秒级)
DISM /Online /Cleanup-Image /CheckHealth
REM 第二步:全量扫描,确认损坏范围(耗时数分钟到十几分钟)
DISM /Online /Cleanup-Image /ScanHealth
REM 第三步:联网或本地源修复
DISM /Online /Cleanup-Image /RestoreHealth
REM 走本地源(挂载 ISO 或插入安装介质)并禁止联网获取
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccess
REM 离线(WinRE 或挂载的镜像)修复,需指定暂存目录
DISM /Image:C:\ /Cleanup-Image /RestoreHealth /ScratchDir:C:\Scratch
REM 组件存储瘦身
DISM /Online /Cleanup-Image /AnalyzeComponentStore
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase

三种操作怎么选

参数做什么耗时与影响
/CheckHealth只读已记录的损坏标记,不做扫描秒级;显示「未检测到组件存储损坏」不代表真的完好
/ScanHealth全量扫描组件存储并记录损坏数分钟以上;只报告不修复
/RestoreHealth扫描并尝试修复,必要时从源补齐更久;失败常见错误 0x800f081f(找不到源)
/AnalyzeComponentStore统计可清理的旧组件与回收空间只读分析,可反复执行
推荐顺序是「先 DISM /RestoreHealth 修组件库,再 sfc /scannow 修系统文件」。反过来做,sfc 常因缺少可用源而报修复失败。
RestoreHealth 失败多数与源有关:企业环境拦截了 Windows Update,需要挂载同版本的 install.wim 或 install.esd 并用 /Source 指定,WIM 要带上索引号(如 :1),同时用 /LimitAccess 避免它又去联网。

结果核对与日志定位

结果核对与日志定位
DISM /Online /Cleanup-Image /ScanHealth > D:\dism_scan.txt   # 留档输出
Get-Content C:\Windows\Logs\DISM\dism.log -Tail 50           # 看最近的处理过程
Get-Content C:\Windows\Logs\CBS\CBS.log -Tail 50             # 组件服务日志选段
REM 修复完成后再让 sfc 收尾
sfc /scannow
/ResetBase 会永久移除已被取代的组件版本,之后所有已安装更新无法卸载回滚。生产环境执行前确认接受「不能卸载补丁」这一后果。

易错点

  • 把 /CheckHealth 显示「未检测到损坏」当作系统健康:它只读已有标记,不扫描,必须用 /ScanHealth 才有结论
  • RestoreHealth 报 0x800f081f 却反复重试联网修复:企业网络默认拿不到更新源,正确做法是用同版本安装介质 /Source 指定
  • 在 WinRE 下加了 /Online:离线环境必须改用 /Image:C:\ 并指定暂存目录
  • 误用 /ResetBase:已安装更新从此无法卸载回滚,出问题时只能重装
  • 修复期间断电或强制重启,组件库可能进一步损坏,修复过程要保证供电与时间

数据来源与参考

  • Microsoft Learn:DISM 映像管理命令
  • Microsoft Learn:修复 Windows 映像

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌