Windows DISM 命令完全指南

2023-09-16 Windows

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+ 都支持)。

十、注意事项

  1. 管理员权限必须:所有 DISM 命令都需要管理员权限
  2. /online vs /image:C:\:在线修复用 /online,离线修复(系统未启动)用 /image:C:\
  3. 修复源:/restorehealth 默认从 Windows Update 下载,离线环境需指定 /source:
  4. 时间:/scanhealth 和 /restorehealth 可能需要 5-15 分钟,耐心等待
  5. 网络:在线修复需要联网,离线修复需要 Windows 安装介质

小结: DISM 是 Windows 系统维护的瑞士军刀,特别擅长系统文件修复、功能管理和映像操作。遇到 Windows 系统异常时,按 SFC → DISM → CHKDSK 的顺序排查,能解决 90% 的系统问题。

下一篇将介绍 SFC 命令的详细用法。