( .cab 或 .msu) 服务 Command-Line 选项的 DISM 操作系统包

使用 DISM 和 Windows cabinet ( .cab) 或 Windows 更新独立安装程序 ( msu) 文件来安装或删除更新、service pack、语言包以及启用或禁用 Windows 功能。 功能是核心操作系统的可选组件。

语法

DISM.exe {/Image:<path_to_image_directory> | /Online} [dism_global_options] {servicing_option} [<servicing_argument>]

以下操作系统包维护选项可用于脱机映像:

DISM.exe /Image:<path_to_image_directory> [/Get-Packages | /Get-PackageInfo | /Add-Package | /Remove-Package ] [/Get-Features | /Get-FeatureInfo | /Enable-Feature | /Disable-Feature ] [/Cleanup-Image]

以下操作系统包维护选项可用于正在运行的操作系统:

DISM.exe /Online [/Get-Packages | /Get-PackageInfo | /Add-Package | /Remove-Package ] [/Get-Features | /Get-FeatureInfo | /Enable-Feature | /Disable-Feature ] [/Cleanup-Image]

操作系统包维护选项

本部分介绍如何使用每个操作系统包维护选项。 这些选项不区分大小写。

/Get-Help /?

当紧随包服务命令行选项一起使用时,将显示有关选项和参数的信息。

指定映像后,其他主题可能会变得可用。

语法:

Dism /Get-Help 

示例:

Dism /Image:C:\test\offline /Add-Package /?
Dism /Online /Get-Packages /?

/Get-Packages

显示有关映像中所有包的基本信息。 使用/Format: Table 或/Format: List 参数将输出显示为表或列表。

语法:

Dism /Get-Packages [/Format:{Table | List}]

示例:

Dism /Image:C:\test\offline /Get-Packages
Dism /Image:C:\test\offline /Get-Packages /Format:Table
Dism /Online /Get-Packages

/Get-PackageInfo

显示有关作为 .cab 文件提供的包的详细信息。 只能指定 .cab 文件。 不能使用此命令获取 .msu 文件的包信息。 /PackagePath 可以指向 .cab 文件或文件夹。

可以使用/Get-Packages 选项在映像中查找包的名称,也可以指定 .cab 文件的路径。 .Cab 文件的路径应指向包的原始源,而不是指向脱机映像上安装文件的位置。

语法:

Dism /Get-PackageInfo {/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>}

示例:

Dism /Image:C:\test\offline /Get-PackageInfo /PackagePath:C:\packages\package.cab
Dism /Image:C:\test\offline /Get-PackageInfo /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0

/Add-Package

在映像中安装指定的 .cab 或 .msu 包。 仅当目标映像处于脱机状态(已装载或已应用)时,才支持 .msu 包。

可以在一个命令行上添加多个包。 将检查每个包的适用性。 如果无法将包应用于指定的映像,您将收到一条错误消息。 如果希望在不检查每个包的适用性的情况下处理该命令,请使用/IgnoreCheck 参数。

如果包或 Windows 映像具有挂起的联机操作,请使用/PreventPending 选项跳过包的安装。 Windows 8/Windows PE 4.0) 中引入的 (。

/PackagePath 可以指向:

  • 单个 .cab 或 .msu 文件。

  • 包含一个展开的 .cab 文件的文件夹。

  • 包含单个 .msu 文件的文件夹。

  • 包含多个 .cab 或 .msu 文件的文件夹。

备注

  • 如果/PackagePath 指向某个文件夹,而该文件夹的根目录中包含 .cab 或 .msu 文件,则还会以递归方式检查 .cab 和 .msu 文件的所有子文件夹。
  • /Add-Package 不会对包的适用性和依赖项运行完整检查。 如果要添加包含依赖项的包,请确保在添加包时安装所有依赖项。

语法:

Dism /Add-Package /PackagePath:<path_to_cabfile> [/IgnoreCheck] [/PreventPending]

示例:

Dism /Image:C:\test\offline /LogPath:AddPackage.log /Add-Package /PackagePath:C:\packages\package.msu
Dism /Image:C:\test\offline /Add-Package /PackagePath:C:\packages\package1.cab /PackagePath:C:\packages\package2.cab /IgnoreCheck
Dism /Image:C:\test\offline /Add-Package /PackagePath:C:\test\packages\package.cab /PreventPending

/Remove-Package

从映像中删除指定的 .cab 文件包。 只能指定 .cab 文件。 不能使用此命令删除 .msu 文件。

注意
使用此命令从脱机映像中删除包不会减小映像大小。

你可以使用/PackagePath 选项来指向包的原始源、指定 CAB 文件的路径,或者可以按映像中列出的名称指定包。 使用/Get-Packages 选项可在映像中查找包的名称。

语法:

/Remove-Package {/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>}

示例:

Dism /Image:C:\test\offline /LogPath:C:\test\RemovePackage.log /Remove-Package /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0
Dism /Image:C:\test\offline /LogPath:C:\test\RemovePackage.log /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
Dism /Image:C:\test\offline /LogPath:C:\test\RemovePackage.log /Remove-Package /PackagePath:C:\packages\package1.cab /PackagePath:C:\packages\package2.cab

/Get-Features

显示有关包中包含可选 Windows foundation) 功能 (操作系统组件的所有功能的基本信息。 可以使用/Get-Features 选项在映像中查找包的名称,也可以指定包的原始源的路径。 如果未指定包名称或路径,则将列出映像中的所有功能。 /PackagePath 可以指向 .cab 文件或文件夹。

如果要为 windows 8 以外的 Windows 映像提供服务,则功能名称区分大小写。

使用/Format: Table 或/Format: List 参数将输出显示为表或列表。

语法:

/Get-Features {/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>} [/Format:{Table | List}]

示例:

Dism /Image:C:\test\offline /Get-Features
Dism /Image:C:\test\offline /Get-Features /Format:List
Dism /Image:C:\test\offline /Get-Features /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0
Dism /Image:C:\test\offline /Get-Features /PackagePath:C:\packages\package1.cab

/Get-FeatureInfo

显示有关功能的详细信息。 必须使用/FeatureName。 如果正在处理 Windows 10 或 Windows 8.x 之外的 Windows 映像,则功能名称区分大小写。 你可以使用/Get-Features 选项在映像中查找功能的名称。

/PackageName 和/PackagePath 是可选的,可用于在包中查找特定功能。

语法:

/Get-FeatureInfo /FeatureName:<name_in_image> [{/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>}]

示例:

Dism /Image:C:\test\offline /Get-FeatureInfo /FeatureName:Hearts
Dism /Image:C:\test\offline /Get-FeatureInfo /FeatureName:Hearts /PackagePath:C:\packages\package.cab

/Enable-Feature

启用或更新图像中的指定功能。 必须使用/FeatureName 选项。 如果要为 windows 8 以外的 Windows 映像提供服务,则功能名称区分大小写。 使用/Get-Features 选项可在映像中查找功能的名称。

可以在一个命令行中为共享同一个父包的功能多次指定/FeatureName 选项。

如果包为 Windows Foundation 程序包,则无需使用/PackageName 选项指定包名称。 否则,请使用/PackageName 来指定该功能的父包。

你可以还原和启用之前从映像中删除的功能。 使用/Source 参数指定还原功能所需的文件的位置。 Windows 文件夹可以使用已装载的映像中的文件源,例如 c:\test\mount\Windows。 你还可以使用 Windows 并行文件夹作为文件的源,例如 z:\sources\SxS。

如果指定多个/Source 参数,则将从找到它们的第一个位置收集文件,并忽略其余位置。 如果未为已删除的功能指定/Source,将使用注册表中的默认位置,对于联机图像,使用 Windows 更新 (WU) 。

使用/LimitAccess 阻止 DISM 联系适用于联机图像的 WU。

使用“/All”启用指定功能的所有父功能 。

/Source、/LimitAccess 和/All 参数可用于 Windows 10、Windows 8.x 和4.0 以上的 windows PE 映像。

语法:

/Enable-Feature /FeatureName:<name_in_image> [/PackageName:<name_in_image>] [/Source: <source>] [/LimitAccess] [/All]

示例:

Dism /Online /Enable-Feature /FeatureName:Hearts /All
Dism /Online /Enable-Feature /FeatureName:Calc /Source:c:\test\mount\Windows /LimitAccess
Dism /Image:C:\test\offline /Enable-Feature /FeatureName:Calc /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0

/Disable-Feature

禁用映像中的指定功能。 必须使用/FeatureName 选项。 如果要为 windows 8 以外的 Windows 映像提供服务,则功能名称区分大小写。 使用/Get-Features 选项可在映像中查找功能的名称。

可以在一个命令行中为同一父包中的功能多次指定/FeatureName。

如果包为 Windows Foundation 程序包,则无需使用/PackageName 选项指定包名称。 否则,请使用/PackageName 来指定该功能的父包。

使用/Remove 删除功能,而不从映像中删除该功能的清单。 此选项只能用于 Windows 10、Windows 8.x 和4.0 以上的 windows PE 映像。 当你使用/Get-FeatureInfo 显示功能详细信息时,该功能将列为 "已删除",并且可以使用/Enable-Feature 和/Source 选项进行还原和启用。

语法:

/Disable-Feature /FeatureName:<name_in_image> [/PackageName:<name_in_image>] [/Remove]

示例:

*Dism /Online /Disable-Feature /FeatureName:Hearts
Dism /Image:C:\test\offline /Disable-Feature /FeatureName:Calc /PackageName:Microsoft.Windows.Calc.Demo~6595b6144ccf1df~x86~en~1.0.0.0

/Cleanup-Image

对映像执行清理或恢复操作。 /AnalyzeComponentStore 和/ResetBase 可用于5.0 以上的 Windows 10、Windows 8.1 和 Windows PE 映像。 从 Windows 10 版本1607开始,可以通过/ResetBase. 指定/Defer 但是我们强烈建议你 在 DISM /Resetbase 需要 30 分钟以上的时间完成时才使用 /Defer 作为工厂中的选项。 /StartComponentCleanup 可用于 Windows 10、Windows 8.x 和4.0 以上的 windows PE 映像。 /CheckHealth、/ScanHealth、/RestoreHealth、/Source 和/LimitAccess 可用于4.0 以上的 Windows 10、Windows 8.x 和 Windows PE 映像。 在维护早于 Windows 7 Service Pack 1 (SP1) 映像的 Windows 版本时,不能使用/HideSP 和/SPSuperseded。

提示
若要确定/ResetBase 选项上次运行的时间,请检查以下注册表路径下的 LastResetBase_UTC 注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing

语法:

/Cleanup-Image {/RevertPendingActions | /SPSuperseded [/HideSP] | /StartComponentCleanup [/ResetBase [/Defer]] | /AnalyzeComponentStore | /CheckHealth | /ScanHealth | /RestoreHealth [/Source: <filepath>] [/LimitAccess]}
参数 说明
/RevertPendingActions 如果出现启动故障,可以使用/RevertPendingActions 选项来尝试恢复系统。 操作将从以前的维护操作中恢复所有挂起的操作,因为这些操作可能导致启动失败。 (Windows RE) 映像的操作系统或 Windows PE 或 Windows 恢复环境上不支持/RevertPendingActions 选项。 重要提示:应仅在未启动的 Windows 映像上的系统恢复方案中使用/RevertPendingActions 选项。
SPSuperseded 删除在安装 Service Pack 期间创建的所有备份文件。 使用/HideSP 可防止 Service Pack 列在 "已安装的更新" 控制面板中。 /SPSuperseded 操作完成后,将无法卸载 Service Pack。
/StartComponentCleanup 清除被取代的组件并减小组件存储区的大小。 使用/ResetBase 重置被取代组件的基,这可以进一步降低组件存储大小。 在运行带有/ResetBase 选项的/StartComponentCleanup 后,无法卸载已安装的 Windows 更新。 使用/Defer 和/ResetBase 将长时间运行的清理操作推迟到下一个自动维护。
/AnalyzeComponentStore 创建组件存储的报表。 有关报表以及如何使用报表中提供的信息的详细信息,请参阅 确定 WinSxS 文件夹的实际大小
/CheckHealth 检查映像是否已被故障进程标记为已损坏,以及是否可以修复损坏。
/ScanHealth 扫描图像的组件存储已损坏。 此操作将需要几分钟时间。
/RestoreHealth 扫描图像的组件存储损坏,然后自动执行修复操作。 此操作将需要几分钟时间。
/Source 与/RestoreHealth 一起使用,以指定可用于修复的已知完好版本文件的位置,例如已装载映像的 Windows 目录的路径。
/LimitAccess 阻止 DISM 与 Windows 更新联系以修复联机映像。

示例:

Dism /Image:C:\test\offline /Cleanup-Image /RevertPendingActions
Dism /Image:C:\test\offline /Cleanup-Image /SPSuperseded /HideSP
Dism /Online /Cleanup-Image /ScanHealth
Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess

若要了解详细信息,请参阅 修复 Windows 映像

限制

  • 在脱机映像中安装包时,包状态为 "安装挂起",因为正在等待联机操作。 换句话说,在启动映像并处理联机操作时,将安装包。 如果请求后续操作,则在上一个挂起的联机操作完成前,无法对其进行处理。 在添加包含/AddPackage 的包时,可以使用/PreventPending 选项,以在有挂起的联机操作时跳过包的安装。
  • 某些包要求首先安装其他包。 不应假定依赖项将会得到满足。 如果存在依赖关系要求,则应使用应答文件来安装所需的包。 通过将答案文件传递到 DISM,可以按正确的顺序安装多个包。 这是安装多个包的首选方法。 有关详细信息,请参阅 使用 DISM 脱机添加或删除包
  • 包按照它们在命令行中的列出顺序安装。
  • 使用 DISM 列出 Windows PE 映像中的可选组件时,即使服务操作成功,可选组件也将始终作为 "挂起" 列出。 这是由设计决定的,无需执行其他操作。

相关主题

什么是 DISM?

DISM 映像管理命令行选项

部署映像服务和管理 (DISM) 命令行选项