部署映像服务和管理 (DISM.exe) 是一个命令行工具,可用于维护和准备 Windows 映像,包括适用于 Windows PE、Windows 恢复环境 (Windows RE) 和 Windows 安装程序的映像。DISM 可用于维护 Windows 映像 (.wim) 或虚拟硬盘(.vhd 或 .vhdx)。
可通过命令行或从 Windows PowerShell 中提供 DISM。若要了解有关将 DISM 与 PowerShell 结合使用的详细信息,请参阅 Windows PowerShell 中的部署映像服务管理 (DISM) Cmdletl。
概述
部署映像服务和管理 (DISM) 是命令行工具,用于在部署前装入和维护 Windows 映像。你可以使用 DISM 映像管理命令来装入 Windows 映像 (.wim) 文件或虚拟硬盘驱动器 (VHD) 并获取相关信息。你还可以使用 DISM 来捕获、拆分和以其他方式管理 .wim 文件。
你可以使用 DISM 服务命令来安装、卸载、配置及更新 .wim 文件或 VHD 中的 Windows 功能、程序包、驱动程序和国际设置。
DISM 命令用于脱机映像,但 DISM 命令子集也可用于维护运行中的操作系统。
DISM 随 Windows 一起安装,同时也在 Windows 评估和部署工具包 (Windows ADK) 中分发。DISM 可替代多种部署工具,包括 PEimg、Intlcfg、ImageX 和程序包管理器。
映像要求
DISM 可用于装载和处理 .wim 文件、.vhd 文件或 .vhdx 文件中的 Windows 映像,或者在某些情况下更新运行的操作系统。它可用于较早的 Windows 映像文件(.wim 文件)。但是,不能与比分发 DISM 的已安装版本的 Windows 评估和部署工具包 (Windows ADK) 更新的 Windows 映像一同使用。DISM 也随 Windows 10、Windows 8.1 和 Windows 8 操作系统一同安装。
有关 WIM 的完整技术描述,请参阅 Windows 映像文件格式 (WIM) 白皮书。
DISM 可用于维护以下操作系统:
- Windows 10 桌面版(家庭版、专业版、企业版和教育版)
- Windows Server 2016 Technical Preview
- Windows 8.1
- Windows 8
- Windows Server 2012 R2
- Windows Server 2012
- Windows 7
- Windows Server 2008 R2
- Windows Server 2008 SP2
- 适用于 Windows 10 的 Windows PE
- Windows PE 5.0
- Windows PE 4.0
- Windows 预安装环境 (Windows PE) 3.0
- Windows 恢复环境 (Windows RE)
注意 DISM 无法在 Windows Vista® Service Pack 1 (SP1) 或 Windows Server 2008 上从 VHD 装载 Windows 映像。必须使用 DiskPart 工具附加 VHD,然后才能使用 DISM 维护该映像。在维护已使用 DiskPart 工具附加的 VHD 映像时,每步操作中都会自动提交更改,因此无法放弃。
有关受支持的平台和体系结构类型的列表,请参阅 DISM 支持的平台。
优势
你可以结合使用 .wim 文件和 DISM:
- 捕获和应用 Windows 映像。
- 在 .wim 文件中附加和删除映像。
- 将 .wim 文件拆分成几个小文件。
你可以将 DISM 与 .wim、.vhd 或 .vhdx 文件结合使用以执行下列操作:
- 添加、删除和枚举程序包、驱动程序、语言。
- 启用或禁用 Windows 功能。
- 应用基于 Unattend.xml 应答文件的 offlineServicing 部分的更改。
- 配置国际设置。
- 将 Windows 映像升级到其他版本。
- 准备 Windows PE 映像。
- 提供详细的日志以进行疑难解答。
- 维护早期版本的 Windows,例如 Windows 8.x、Windows 7、Windows Server 2008 R2、Windows Vista。
- 维护所有平台(32 位、64 位)。
- 处理 64 位主机中的 32 位映像,以及处理 32 位主机中的 64 位映像。有关详细信息,请参阅本主题后面的“限制”部分。
- 使用旧的程序包管理器脚本。
常见的处理和管理方案
映像服务和管理解决方案主要分为两大类别:
- 管理 Windows 映像中所含的数据或信息,例如枚举或获取映像中所含组件、更新程序、驱动程序或应用程序的清单,捕捉或拆分映像,附加或删除 .wim 文件中的映像或装载映像。
- 处理映像本身,包括添加或删除驱动程序包和驱动程序、修改语言设置、启用或禁用 Windows 功能,以及升级到更高的 Windows 版本。
以下是有关映射处理和管理的一些常见方案:
任务 |
---|
捕捉映像并将其保存为 .wim 文件。 |
列出 .wim、.vhd 或 .vhdx 文件中的所有映像。 |
通过附件、删除或枚举映像来管理单个 .wim 文件中的多个映像。 |
准备 Windows PE 映像。 |
列出有关 Windows PE 映像的信息。 |
装载 Windows 映像。 |
列出有关从 .wim、.vhd 或 .vhdx 文件装载的映像的具体信息,包括从何处装载、装载状态以及 .wim 文件中各个映像的索引。 |
列出映像中的所有驱动程序或有关某个特定驱动程序的信息。 |
添加全新驱动程序或启动关键驱动程序,以支持新的硬件。 |
添加操作系统更新,如修补程序和 Windows 功能。 |
添加或删除语言包,并配置国际设置。 |
列出映像中的所有国际设置和语言。 |
解答集成状态和日志记录中的疑难问题。 |
管理多个映像版本。 |
列出程序包中的所有功能或有关某个 Windows 功能的特定信息。 |
检查 Windows(R) Installer.msp 文件的适用性。 |
通过更新单个映像来更新多个 Windows 版本。 |
升级到更高的 Windows 版本。 |
列出可以将映像升级到的所有 Windows 版本。 |
应用 Unattend.xml 应答文件中的设置。 |
将较大的 .wim 文件拆分成多个小文件,以适应所选媒体。 |
限制
版本兼容性。DISM 可与旧版本 Windows 操作系统的目标映像一同使用,但不能与比分发 DISM 的已安装版本的 Windows ADK 更新的操作系统目标映像一同使用。例如,你将需要 Windows 10 版本的 DISM,才能维护 Windows 10 映像,否则该映像可能会损坏。若要了解详细信息,请参阅 DISM 支持的平台。
远程安装。不支持通过网络将程序包安装到远程计算机。Windows 映像必须位于本地系统上。DISM 可以访问网络共享中的程序包,但是它必须将这些程序包复制到临时的可写目录(称为暂存目录)。建议对每个安装的程序包都使用本地驱动器上唯一的暂存目录。安装后可以删除暂存目录的内容。
应答文件。为映像指定应答文件 (Unattend.xml) 时,将只应用在 offlineServicing 配置阶段中指定的设置。应答文件中的所有其他设置都会忽略。有关详细信息,请参阅 DISM 无人参与服务命令行选项。
Service Pack。 Service Pack 必须使用 Windows 更新独立安装程序来联机安装。有关 Windows 更新独立安装程序的详细信息,请参阅 Windows 中的 Windows 更新独立安装程序介绍。
使用应答文件来确保程序包依存关系。某些程序包需要首先安装其他程序包。因为存在此依存关系要求,所以如果你要安装多个程序包,则应使用应答文件。通过使用 DISM 应用应答文件,多个程序包可以按正确的顺序进行安装。这是安装多个程序包的首选方法。
程序包安装顺序。程序包按照它们在命令行中列出的顺序进行安装。在以下示例中,1.inf、2.inf 和 3.inf 将按照它们在命令行中列出的顺序进行安装。
DISM.exe /image:"c:\images\Image1" /Add-Driver /ForceUnsigned /DriverName:"C:\Drivers\1.inf" /DriverName:"C:\Drivers\2.inf" /DriverName:"C:\Drivers\3.inf"
支持的服务命令为动态命令。可用于维护映像的命令和选项取决于你所维护的 Windows 操作系统,以及映像是脱机还是当前处于运行状态的操作系统。
不支持多个无人参与文件。你可以在一个命令行上指定多个驱动程序或程序包。但是,不支持多个 Unattend.xml 应答文件。在任一命令行上都只可指定一个应答文件。
不支持多个服务命令。你可以在同一命令行上指定多个驱动程序(1.inf、2.inf)或程序包,但不能指定多个命令(例如 /Add-Driver /Remove-Driver 或 /Add-Driver /Add-Package)。
登录到网络共享。如果使用的计算机未加入网络域,请在指定网络共享中存储的 DISM 日志的路径前,使用带有域凭据的“net use”来设置访问权限。
通配符。在 DISM 命令行中不支持通配符。
不要在更新之后安装语言包。如果在安装语言包之前安装包含从属语言资源的更新(修补程序、常规分发版本 [GDR] 或服务包 [SP]),则不会应用更新中包含的特定于语言的更改。请始终在安装更新之前安装语言包。