详细的教程,教你如何使用 DISM (部署映像服务和管理) 工具,离线地添加或删除 Windows 映像中的包。

DISM Image Management Command-Line Options | Microsoft Learn

使用 DISM 预安装应用 | Microsoft Learn

使用 DISM 旁加载应用 | Microsoft Learn

创建包含 Windows 桌面应用程序的预配包 | Microsoft Learn

孤立的预配程序包 | Microsoft Learn

导出或导入默认的应用程序关联 | Microsoft Learn

PS C:\WINDOWS\system32> dism /?

部署映像服务和管理工具
版本: 10.0.26100.5074


DISM.exe [dism_options] {Imaging_command} [<Imaging_arguments>]
DISM.exe {/Image:<path_to_offline_image> | /Online} [dism_options] {servicing_command} [<servicing_arguments>]

描述:

  DISM 枚举、安装、卸载、配置和更新 Windows 映像中的功能和程序包。可以使用的命令取决于提供的映像以及映像是处于脱机还是运行状态。


FFU 命令:

  /Capture-Ffu            - 将物理磁盘映像捕获到新的 FFU 文件中。
  /Apply-Ffu              - 应用 .ffu 映像。
  /Split-Ffu              - 将现有 .ffu 文件拆分成多个只读已拆分 FFU 文件。
  /Optimize-Ffu           - 优化 FFU 文件,使其其可应用于不同大小的存储
。

WIM 命令:

  /Apply-CustomDataImage  - 冻结自定义数据映像中包含的文件。
  /Capture-CustomImage    - 将自定义设置捕获到 WIMBoot 系统上的增量 WIM 文件中。捕获的目录包括所有子文件夹和数据。
  /Get-WIMBootEntry       - 显示指定磁盘卷的WIMBoot 配置项。
  /Update-WIMBootEntry    - 更新指定磁盘卷的 WIMBoot 配置项。
  /List-Image             - 显示指定映像中的文件和文件夹的列表。
  /Delete-Image           - 从具有多个卷映像的 WIM 文件删除指定的卷映像。
  /Export-Image           - 将指定映像的副本导出到其他文件。
  /Append-Image           - 将其他映像添加到 WIM 文件中。
  /Capture-Image          - 将驱动器的映像捕获到新的 WIM 文件中。捕获的目录包含所有子文件夹和数据。
  /Get-MountedWimInfo     - 显示有关安装的 WIM 映像的信息。
  /Get-WimInfo            - 显示有关 WIM 文件中的映像的信息。
  /Commit-Wim             - 保存对安装的 WIM 映像的更改。
  /Unmount-Wim            - 卸载安装的 WIM 映像。
  /Mount-Wim              - 从 WIM 文件安装映像。
  /Remount-Wim            - 恢复孤立的 WIM 安装目录。
  /Cleanup-Wim            - 删除与损坏的已安装 WIM映像关联的资源。

通用映像处理命令:

  /Split-Image            - 将现有 .wim 文件拆分为多个只读拆分 WIM (SWM) 文件。
  /Apply-Image            - 应用一个映像。
  /Get-MountedImageInfo   - 显示有关安装的 WIM 和 VHD 映像的信息。
  /Get-ImageInfo          - 显示有关 WIM、VHD 或 FFU 文件中映像的信息。
  /Commit-Image           - 保存对装载的 WIM 或 VHD 映像的更改。
  /Unmount-Image          - 卸载已装载的 WIM 或 VHD 映像。
  /Mount-Image            - 从 WIM 或 VHD 文件装载映像。
  /Remount-Image          - 恢复孤立的映像装载目录。
  /Cleanup-Mountpoints    - 删除与损坏的已安装映像关联的资源。

映像规格:

  /Online                 - 以正在运行的操作系统为目标。
  /Image                  - 指定脱机 Windows 映像的根目录的路径。

DISM 选项:

  /English                - 用英文显示命令行输出。
  /Format                 - 指定报告输出格式。
  /WinDir                 - 指定 Windows 目录的路径。
  /SysDriveDir            - 指定名为 BootMgr 的系统加载程序文件的路径。
  /LogPath                - 指定日志文件路径。
  /LogLevel               - 指定日志(1-4)中所示的输出级别。
  /NoRestart              - 取消自动重新启动和重新启动提示。
  /Quiet                  - 取消除错误消息之外的所有输出。
  /ScratchDir             - 指定暂存目录的路径。

若要获得有关这些 DISM 选项及其参数的详细信息,请在紧挨着 /? 之前指定一个选项。

  示例:
    DISM.exe /Mount-Wim /?
    DISM.exe /ScratchDir /?
    DISM.exe /Image:C:\test\offline /?
    DISM.exe /Online /?

DISM(Deployment Imaging Service and Management Tool)命令是Windows操作系统中的一个强大工具,主要用于部署、管理和修复Windows映像。它的功能涵盖了系统映像的维护、组件修复、驱动程序管理等。以下是 DISM 命令在Windows中的发展时间线:


1. Windows Vista(2007年)

  • 首次出现DISM 命令首次引入是在 Windows Vista 中,作为替代旧版的 PEImg 和 Pkgmgr 工具,用于操作和管理Windows映像。
  • 主要功能
    • 主要用于处理离线Windows映像(如安装媒体或恢复映像)。
    • 可用于挂载、修改和卸载映像文件。
    • 可以部署驱动程序和安装Windows更新。

2. Windows 7(2009年)

  • 功能增强:Windows 7中对 DISM 工具进行了进一步的改进,增加了更多的功能,特别是在修复和管理Windows映像方面。
  • 新增功能
    • 修复Windows映像:通过 DISM,可以修复和更新离线Windows映像。
    • 引入了 /RestoreHealth 参数,使得 DISM 可以检查并修复Windows映像中的损坏。
    • 增强了映像的挂载和卸载功能,便于部署过程中的管理。

3. Windows 8(2012年)

  • 集成和改进:在Windows 8中,DISM 工具得到了更为广泛的应用和优化,尤其是在系统修复和更新方面。
  • 新增功能
    • /RestoreHealth 功能被进一步增强,能够扫描系统并修复与Windows映像相关的问题,尤其是修复组件存储中的损坏。
    • 加强了对Windows映像(WIM)的管理,提供了更强大的命令行选项。
    • 引入了能够直接修复系统文件和组件存储(Component Store)中的错误的能力。
    • DISM 被设计为支持对 Windows 8 各种映像进行操作,包括不同版本的安装映像、恢复映像和修复工具。

4. Windows 10(2015年)

  • 全面优化:Windows 10对 DISM 工具进行了多项改进,特别是在对系统健康和维护方面的优化,使其成为了更加核心的修复工具。
  • 新增功能
    • 提供了 DISM /Online /Cleanup-Image /RestoreHealth 命令,可以直接修复正在运行的操作系统,而不需要进入恢复环境。
    • 支持更多功能:Windows 10版本中的 DISM 支持更多的映像部署和更新管理功能。
    • 加强了与 SFC(System File Checker)工具的结合,DISM 可以修复由 SFC 检测到的系统文件问题。
    • 优化了驱动程序的安装和更新,可以使用 DISM 安装和管理驱动程序文件。
    • 对 Windows 10 映像和更新过程提供了更多的修复选项,增强了对硬件设备和组件的支持。

5. Windows Server 2016(2016年)

  • 增强的企业级支持:Windows Server 2016引入了对服务器版本的支持,进一步提升了 DISM 的企业级功能,尤其是在部署和修复大型映像时。
  • 新增功能
    • 引入了 /ScanHealth 参数,使得 DISM 能够更详细地扫描映像,检测并标记损坏的部分。
    • 加强了对 Windows Server 环境中的应用程序和服务修复的支持。
    • 改进了映像的挂载和卸载操作,使得它在服务器环境中运行更加高效。

6. Windows 10 版本 1809(2018年)

  • 性能和稳定性提升:Windows 10版本1809进一步改进了 DISM 工具的性能和稳定性,尤其是在修复和更新的过程中。
  • 新增功能
    • 增加了更多的修复选项,能够更好地与 Windows 更新 集成,帮助用户修复在更新过程中遇到的各种问题。
    • 改进了 DISM 在操作系统安装和升级过程中修复问题的能力,尤其是在对大规模更新和修复的支持方面。

7. Windows 10 版本 1903(2019年)

  • 进一步增强功能:Windows 10版本1903继续增强 DISM 工具,特别是在 /RestoreHealth 的修复能力和错误报告方面。
  • 新增功能
    • 改进了 /RestoreHealth 操作,使其修复过程更加稳定,尤其是在处理大型映像时。
    • 引入了更详细的日志记录,帮助管理员和用户更轻松地跟踪和分析修复过程。
    • 加强了与 Windows 10 更新管理工具的集成,DISM 成为维护和修复系统映像的重要工具。

8. Windows 10 版本 2004(2020年)

  • 修复和优化:Windows 10版本2004进一步改进了 DISM 工具,特别是修复系统组件和映像管理方面。
  • 新增功能
    • 支持更多的修复选项:增强了 /RestoreHealth 命令,支持通过更先进的修复选项解决系统映像中的问题。
    • 强化了 Windows 10 中 DISM 与 Windows 更新的整合,确保更新过程中不出现映像损坏。

9. Windows 11(2021年)

  • 持续优化:Windows 11继续加强 DISM 工具,提供更强大的修复和管理功能,尤其是在系统映像的健康和更新方面。
  • 新增功能
    • 提供了更细粒度的修复选项,允许用户对映像进行深度修复,尤其是在安装新的功能更新时。
    • 支持 Windows 11 特有的新功能和组件,确保操作系统在全新硬件和配置上的兼容性。

DISM 自首次在 Windows Vista 中亮相以来,已经经历了多次重大的功能增强和改进。它从一个主要用于部署和管理Windows映像的工具,发展成了一个可以直接修复运行系统、处理组件存储、安装驱动程序等的强大工具。随着 Windows 10Windows 11 的发布,DISM 逐步成为系统维护和修复的重要工具,尤其是在面对更新和升级时的系统修复任务。


使用 DISM 工具离线添加或删除 Windows 映像包的详细教程:


准备工作

  1. 以管理员身份运行命令提示符
    右键点击“开始菜单” → 选择“Windows 终端(管理员)”或“命令提示符(管理员)”。

  2. 准备 Windows 映像文件
    确保你有以下文件:

    • Windows 映像文件(.wim 或 .esd),通常位于安装介质的 sources 目录下(如 install.wim)。

    • 要添加的包文件(.cab 或 .msu 格式)。

  3. 创建临时文件夹
    创建一个空文件夹用于挂载映像(例如 C:\Mount)。


步骤 1:查看映像信息

获取映像索引号(用于多版本系统)

cmd
复制
dism /Get-ImageInfo /ImageFile:"D:\sources\install.wim"
  • 输出结果会显示映像的索引号(如 Index: 1 对应 Windows 专业版)。

PS C:\Users\Administrator> dism /get-imageinfo /?

部署映像服务和管理工具  版本: 10.0.26100.1150


 dism /get-imageinfo  /Get-ImageInfo /ImageFile:<image_file> [/Index:<image_index> | /Name:<image_name>]

  显示有关指定的 WIM 或 VHD 文件中包含的映像的信息。

    示例:
      DISM.exe /Get-ImageInfo /ImageFile:C:\test\images\myimage.wim
      DISM.exe /Get-ImageInfo /ImageFile:C:\test\images\myimage.vhd /Index:1
      DISM.exe /Get-ImageInfo /ImageFile:C:\test\images\myimage.ffu


步骤 2:挂载映像

cmd
复制
dism /Mount-Image /ImageFile:"D:\sources\install.wim" /Index:1 /MountDir:"C:\Mount" /CheckIntegrity /Verify
  • 参数说明

    • /Index:1: 选择映像的索引号。

    • /MountDir: 指定挂载目录(需为空文件夹)。

    • /CheckIntegrity 和 /Verify: 可选,用于校验映像完整性。

PS C:\Users\Administrator> dism /mount-image /?

部署映像服务和管理工具  版本: 10.0.26100.1150


 dism /mount-image /Mount-Image /ImageFile:<path_to_image_file>[/Index:<image_index> | /Name:<image_name>]
  dism /mount-image  /MountDir:<target_mount_directory> [/ReadOnly] [/Optimize] [/CheckIntegrity] [/EA]

  将映像装载到指定目录,以便可以用于服务。装载映像时请使用 /Optimize 以减少初始装载时间。如果检测到 WIM 文件损坏,请使用 /CheckIntegrity 停止操作。请使用 /ReadOnly 将装载的映像设置为具有只读权限。请使用 /EA 装载扩展属性。具有多个映像的文件需要指定 /Index 或 /Name。

    示例:
      DISM.exe /Mount-Image /ImageFile:C:\test\images\myimage.wim /Index:1  /MountDir:C:\test\offline

      DISM.exe /Mount-Image /ImageFile:C:\test\images\myimage.vhd /Index:1 /MountDir:C:\test\offline /ReadOnly

 


步骤 3:管理包

添加包

cmd
复制
dism /Image:"C:\Mount" /Add-Package /PackagePath:"D:\packages\package.cab"
  • 若要添加多个包,可指定文件夹路径并使用通配符:

    cmd
    复制
    dism /Image:"C:\Mount" /Add-Package /PackagePath:"D:\packages\*.cab"

删除包

  1. 列出已安装的包(查找包名称):

    cmd
    复制
    dism /Image:"C:\Mount" /Get-Packages
  2. 根据包名称删除

    cmd
    复制
    dism /Image:"C:\Mount" /Remove-Package /PackageName:Package_for_KB1234567~31bf3856ad364e35~amd64~~10.0.1.0

步骤 4:保存更改并卸载映像

cmd
复制
dism /Unmount-Image /MountDir:"C:\Mount" /Commit
  • /Commit: 保存更改。若放弃更改则使用 /Discard

PS C:\Users\Administrator> dism /Unmount-Image /?

部署映像服务和管理工具  版本: 10.0.26100.1150


 dism /Unmount-Image  /Unmount-Image /MountDir:<target_mount_directory> {/Discard |/Commit [/Append] [/CheckIntegrity] [/EA]}

 卸载 WIM 或 VHD。 使用 /Commit 以保存更改,或者使用 /Discard 以放弃更改。使用 /CheckIntegrity 以检查并跟踪 WIM 文件损坏。使用 /Append 以将映像添加到现有 .wim 文件中。使用 /EA 以保存扩展属性。

 示例:
      DISM.exe /Unmount-Image /MountDir:C:\test\offline /Commit
      DISM.exe /Unmount-Image /MountDir:C:\test\offline /Discard

 


步骤 5:验证操作

重新挂载映像或检查映像文件大小,确认更改已生效。


常见问题

  1. 挂载失败

    • 确保挂载目录为空且有写入权限。

    • 检查映像文件是否损坏:dism /Check-Image /ImageFile:"D:\sources\install.wim"

  2. 包依赖错误
    添加包时若提示依赖缺失,需按顺序安装依赖包(通常按文件名排序)。

  3. 映像占用问题
    卸载前确保所有程序未访问挂载目录。


高级操作

  • 清理映像(减少体积):

    cmd
    复制
    dism /Image:"C:\Mount" /Cleanup-Image /StartComponentCleanup /ResetBase
  • 导出为新的映像文件

    cmd
    复制
    dism /Export-Image /SourceImageFile:"D:\sources\install.wim" /SourceIndex:1 /DestinationImageFile:"D:\new.wim"

通过以上步骤,你可以离线修改 Windows 映像中的包配置,适用于系统部署、定制或修复场景。


 

详细的教程,教你如何使用 DISM (部署映像服务和管理) 工具,离线地添加或删除 Windows 映像中的包。

1. 使用 DISM 添加包到脱机映像

获取映像信息

首先,使用以下命令来检索你要修改的映像的名称或索引号:

bashCopy Code
Dism /Get-ImageInfo /ImageFile:C:\test\images\install.wim

挂载映像

接着,挂载目标 Windows 映像:

bashCopy Code
Dism /Mount-Image /ImageFile:C:\test\images\install.wim /Name:"Windows 7 HomeBasic" /MountDir:C:\test\offline

添加包

然后,使用以下命令来添加包。你可以一次性添加多个包:

bashCopy Code
Dism /Image:C:\test\offline /Add-Package /PackagePath:C:\packages\package1.cab /PackagePath:C:\packages\package2.cab

提交更改并卸载映像

最后,提交更改并卸载映像:

bashCopy Code
Dism /Unmount-Image /MountDir:C:\test\offline /Commit

2. 使用 DISM 从脱机映像中删除包

获取映像信息

首先,获取映像信息:

bashCopy Code
Dism /Get-ImageInfo /ImageFile:C:\test\images\install.wim

挂载映像

接着,挂载目标映像:

bashCopy Code
Dism /Mount-Image /ImageFile:C:\test\images\install.wim /Name:"Windows 7 HomeBasic" /MountDir:C:\test\offline

列出包

可选步骤:查看映像中已安装的包:

bashCopy Code
Dism /Image:C:\test\offline /Get-Packages

你可以使用 > featurelist.txt 将输出重定向到文件中保存。

删除包

删除包时,指定包标识:

bashCopy Code
DISM /Image:C:\test\offline /Remove-Package /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0 /PackageName:Microsoft-Windows-MediaPlayer-Package~31bf3856ad364e35~x86~~6.1.6801.0

提交更改并卸载映像

最后,提交更改并卸载映像:

bashCopy Code
Dism /Unmount-Image /MountDir:C:\test\offline /Commit

3. 使用 DISM 和答案文件脱机添加或删除包

创建答案文件

  • 打开 Windows SIM (Windows 系统映像管理器)
  • 要添加包,点击“插入” -> “包”,选择包并打开。
  • 要删除包,选择包,设置“操作”属性为“删除”。

应用答案文件

使用以下命令将无人参与答案文件应用于映像:

bashCopy Code
DISM /Image:C:\test\offline /Apply-Unattend:C:\test\answerfiles\myunattend.xml

提交更改并卸载映像

最后,提交更改并卸载映像:

bashCopy Code
Dism /Unmount-Image /MountDir:C:\test\offline /Commit

注意事项

  • Windows ADK 是使用 DISM 必需的工具包,你需要确保安装了最新版本。
  • 确保在使用 DISM 时遵循正确的包安装顺序,特别是在依赖关系较复杂时,建议使用无人参与的答案文件。
posted @ 2025-03-03 15:55  suv789  阅读(4940)  评论(0)    收藏  举报