DISM(Deployment Image Servicing and Management)是 Windows 最强大的系统映像管理工具。它可以修复系统文件、管理 Windows 功能、处理驱动程序、以及挂载/修改/部署系统映像(WIM/ESD/VHD)。
对于运维人员来说,DISM 是"系统修复三剑客"(SFC + DISM + CHKDSK)中最重要的一个——当 SFC 无法修复系统文件时,DISM 往往能解决问题。
一、DISM 基础
什么是 DISM?
DISM 最初是为 Windows 部署设计的工具,后来演变为系统维护利器。它的核心能力:
- 修复系统映像:恢复损坏的 Windows 系统文件
- 管理功能:启用/禁用 Windows 可选功能(如 .NET Framework、Hyper-V)
- 管理驱动:添加/删除驱动程序到系统映像
- 管理更新:列出/卸载已安装的 Windows 更新
- 映像操作:挂载/修改/提交 WIM/ESD/VHD 映像
基本语法
dism [选项] [命令] [参数]💡 所有 DISM 命令都需要管理员权限运行。右键「开始菜单」→「Windows 终端(管理员)」或「命令提示符(管理员)」。
二、系统修复(最常用)
修复系统映像(核心命令)
当 Windows 出现系统文件损坏、更新失败、功能异常时,dism 是最有效的修复工具:
# 第一步:检查系统映像是否损坏
dism /online /cleanup-image /checkhealth
# 快速检查,只读取损坏标记(秒级)
# 第二步:扫描系统映像损坏
dism /online /cleanup-image /scanhealth
# 完整扫描(可能需要几分钟)
# 第三步:自动修复
dism /online /cleanup-image /restorehealth
# 从 Windows Update 或本地源修复(推荐)参数说明:
/online 操作当前运行的系统(不是映像文件)
/cleanup-image 映像清理操作
/checkhealth 快速检查(只读)
/scanhealth 完整扫描
/restorehealth 自动修复指定修复源(离线修复)
当在线修复失败时,可以指定本地 Windows 安装源:
# 使用挂载的 ISO 或安装盘作为修复源
dism /online /cleanup-image /restorehealth /source:WIM:X:\sources\install.wim:1 /limitaccess
# /source:WIM:X:\... 指定 WIM 文件位置(X 为光盘盘符)
# /limitaccess 不从 Windows Update 下载,只用本地源
# 使用文件夹作为修复源(解压后的安装文件)
dism /online /cleanup-image /restorehealth /source:C:\mount /limitaccess与 SFC 的配合顺序
系统出问题 → 先 SFC → 再 DISM → 最后 CHKDSK# 标准修复流程
sfc /scannow # 第一步:系统文件检查器
dism /online /cleanup-image /restorehealth # 第二步:DISM 修复(SFC 无法修复时)
chkdsk C: /f /r # 第三步:磁盘检查(必要时)三、管理 Windows 功能
查看可选功能
# 列出所有功能
dism /online /get-features
# 查看特定功能状态
dism /online /get-featureinfo /featurename:NetFx3
# NetFx3 = .NET Framework 3.5
# 列出已启用的功能
dism /online /get-features | findstr "启用"启用/禁用功能
# 启用 .NET Framework 3.5(很多旧软件需要)
dism /online /enable-feature /featurename:NetFx3 /all /limitaccess /source:X:\sources\sxs
# /all 同时启用依赖项
# /limitaccess 不从 Windows Update 下载
# /source: 指定安装源(如果在线安装失败)
# 禁用功能
dism /online /disable-feature /featurename:NetFx3常用功能名速查:
| 功能名 | 说明 |
|---|---|
| NetFx3 | .NET Framework 3.5 |
| IIS-WebServerRole | IIS Web 服务器 |
| Microsoft-Hyper-V | Hyper-V 虚拟机 |
| TelnetClient | Telnet 客户端 |
| TFTP | TFTP 客户端 |
使用 PowerShell 等效命令(更现代)
# 查看功能
Get-WindowsOptionalFeature -Online
# 启用功能
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All
# 禁用功能
Disable-WindowsOptionalFeature -Online -FeatureName NetFx3四、管理驱动程序
查看已安装的驱动
dism /online /get-drivers
# 输出示例:已添加的第三方驱动包添加驱动到系统
# 添加单个驱动(.inf 文件)
dism /online /add-driver /driver:C:\drivers\nic.inf
# 递归添加整个文件夹的驱动
dism /online /add-driver /driver:C:\drivers /recurse
# 强制添加(即使签名不匹配,测试时用)
dism /online /add-driver /driver:C:\drivers\test.inf /forceunsigned删除驱动
# 先查看驱动包名
dism /online /get-drivers
# 删除指定驱动包
dism /online /remove-driver /driver:oem0.inf五、管理 Windows 更新
查看已安装的更新
dism /online /get-packages
# 列出所有已安装的 CAB/MSP 更新包卸载更新
# 查看更新包名
dism /online /get-packages | findstr "Package_for"
# 卸载指定更新
dism /online /remove-package /packagename:Package_for_KB1234567~31bf3856ad364e35~amd64~~10.0.1.0💡 卸载更新包名很长,建议从「设置 → Windows 更新 → 更新历史记录」找到 KB 编号,再用 DISM 精确卸载。
六、清理 WinSxS 组件存储
WinSxS(Side-by-Side)是 Windows 存放系统组件副本的目录,随时间增长会占用大量空间。
分析组件存储大小
dism /online /cleanup-image /analyzecomponentstore
# 输出示例:组件存储大小、可释放空间清理组件存储
# 安全清理(推荐,不影响系统稳定性)
dism /online /cleanup-image /startcomponentcleanup
# 清理已替换的组件版本
# 深度清理(释放更多空间)
dism /online /cleanup-image /spsuperseded
# 删除所有被取代的组件版本
# 重置基映像(慎用,会清除所有已替换为新版本的组件)
dism /online /cleanup-image /rebase清理被取代的更新
# 清理已下载但未安装的更新缓存
net stop wuauserv
del /f /s /q C:\Windows\SoftwareDistribution\Download\*
net start wuauserv七、映像文件操作(WIM/ESD/VHD)
挂载 WIM 映像
# 挂载 Windows 安装映像(只读)
dism /mount-wim /wimfile:C:\sources\install.wim /index:1 /mountdir:C:\mount
# 挂载(可写)
dism /mount-wim /wimfile:C:\sources\install.wim /index:1 /mountdir:C:\mount /readonly:no修改映像内容
# 挂载后,直接修改 C:\mount 目录(添加/删除文件)
# 例如:添加驱动
dism /image:C:\mount /add-driver /driver:C:\drivers /recurse
# 例如:启用功能
dism /image:C:\mount /enable-feature /featurename:NetFx3提交/放弃修改
# 提交修改(保存)
dism /commit-wim /mountdir:C:\mount
# 放弃修改
dism /unmount-wim /mountdir:C:\mount /discard导出/转换映像
# 导出指定索引为新的 WIM
dism /export-image /sourceimagefile:install.wim /sourceindex:1 /destinationimagefile:custom.wim
# ESD 转 WIM(ESD 压缩率更高,但不可写)
dism /export-image /sourceimagefile:install.esd /sourceindex:1 /destinationimagefile:install.wim八、常见实战场景
场景一:.NET Framework 3.5 安装失败
# 使用 DISM 从安装盘安装
dism /online /enable-feature /featurename:NetFx3 /all /limitaccess /source:D:\sources\sxs
# D: 为 Windows 安装盘盘符场景二:Windows 更新后系统无法启动
# 进入高级启动 → 命令提示符
dism /image:C:\ /cleanup-image /restorehealth
# 注意:此时系统未启动,用 /image:C:\ 指定系统盘场景三:系统文件损坏,SFC 无法修复
dism /online /cleanup-image /restorehealth
sfc /scannow
# 先 DISM 修复组件存储,再 SFC 修复系统文件场景四:清理 C 盘空间(WinSxS 过大)
dism /online /cleanup-image /analyzecomponentstore
dism /online /cleanup-image /startcomponentcleanup
dism /online /cleanup-image /spsuperseded场景五:制作自定义 Windows 安装映像
# 1. 挂载原始 install.wim
dism /mount-wim /wimfile:install.wim /index:1 /mountdir:mount
# 2. 添加驱动、启用功能、删除预装应用...
dism /image:mount /add-driver /driver:drivers /recurse
dism /image:mount /enable-feature /featurename:NetFx3
# 3. 提交
dism /commit-wim /mountdir:mount
# 4. 导出为新的 install.wim
dism /export-image /sourceimagefile:install.wim /sourceindex:1 /destinationimagefile:custom.wim九、DISM 与 PowerShell 对比
| 操作 | DISM(CMD) | PowerShell 等效 |
|---|---|---|
| 修复系统映像 | dism /online /cleanup-image /restorehealth |
Repair-WindowsImage -Online |
| 启用功能 | dism /online /enable-feature /featurename:X |
Enable-WindowsOptionalFeature -Online -FeatureName X |
| 添加驱动 | dism /online /add-driver /driver:X |
Add-WindowsDriver -Path C:\ -Driver X |
| 查看功能 | dism /online /get-features |
Get-WindowsOptionalFeature -Online |
💡 PowerShell 命令更现代、可读性更好,但
dism兼容性更广(Windows 7+ 都支持)。
十、注意事项
- 管理员权限必须:所有 DISM 命令都需要管理员权限
/onlinevs/image:C:\:在线修复用/online,离线修复(系统未启动)用/image:C:\- 修复源:
/restorehealth默认从 Windows Update 下载,离线环境需指定/source: - 时间:
/scanhealth和/restorehealth可能需要 5-15 分钟,耐心等待 - 网络:在线修复需要联网,离线修复需要 Windows 安装介质
小结: DISM 是 Windows 系统维护的瑞士军刀,特别擅长系统文件修复、功能管理和映像操作。遇到 Windows 系统异常时,按 SFC → DISM → CHKDSK 的顺序排查,能解决 90% 的系统问题。
下一篇将介绍 SFC 命令的详细用法。