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

DISM Image Management Command-Line Options | Microsoft Learn

使用 DISM 预安装应用 | Microsoft Learn

使用 DISM 旁加载应用 | Microsoft Learn

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

孤立的预配程序包 | Microsoft Learn

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

 

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  阅读(2856)  评论(0)    收藏  举报