DISM 操作系统包(.cab 或 .msu) 服务Command-Line选项
将 DISM 与 Windows cabinet (.cab) 或 Windows 更新独立安装程序 (.msu) 文件一起用于安装或删除更新、服务包、语言包,以及启用或禁用 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:<path_to_package>
可以指向文件.cab文件夹。
可以使用 选项在映像中查找包的名称,也可以指定文件.cab /Get-Packages
路径。 文件的路径.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 参数。
语法:
Dism /Add-Package /PackagePath:<path_to_cabfile> [/IgnoreCheck] [/PreventPending]
/PackagePath
可以指向:- 单个.cab或 .msu 文件。
- 一个文件夹,其中包含单个展开.cab文件。
- 包含单个 .msu 文件的文件夹。
- 包含多个文件或 .msu .cab的文件夹。
如果
/PackagePath
指向根目录.cab包含 .msu 文件或 .msu 文件的文件夹,则还会以递归.cab检查所有子文件夹。如果
/PreventPending
包或映像具有挂起的联机操作,则Windows跳过包的安装。
注意
/Add-Package
不会对包的适用性和依赖项运行完全检查。 如果要添加具有依赖项的包,请确保在添加包时安装所有依赖项。
示例:
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 文件。
注意
使用此命令从脱机映像中删除包不会减小映像大小。
语法:
/Remove-Package {/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>}
- 使用 指向包的原始源,指定 CAB 文件的路径,或按名称指定包,如映像
/PackagePath
中所列。 使用/Get-Packages
选项查找映像中包的名称。
示例:
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包) 的可选基础功能。
语法:
/Get-Features {/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>} [/Format:{Table | List}]
/Get-Features
在映像或包的原始源中查找包的名称。 如果未指定包名称或路径,将列出映像中的所有功能。/PackageName
是映像中的包。 可以使用/DISM Get-Packages
在映像中查看包名称。/PackagePath
可以指向文件.cab文件夹。
使用 /Format:Table
或 /Format: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
。 可以使用 选项 /Get-Features
在图像中查找功能的名称。
语法:
/Get-FeatureInfo /FeatureName:<name_in_image> [{/PackageName:<name_in_image> | /PackagePath:<path_to_cabfile>}]
/PackageName
/PackagePath
和 是可选的,可用于查找包中的特定功能。
示例:
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
选项。 使用 /Get-Features
选项查找图像中功能的名称。
语法:
/Enable-Feature /FeatureName:<name_in_image> [/PackageName:<name_in_image>] [/Source: <source>] [/LimitAccess] [/All]
可以在一个命令行中多次为共享同一父包 /FeatureName
的功能指定选项。
如果包是基础包,则不必使用 选项 /PackageName
Windows名称。 否则, /PackageName
请使用 指定该功能的父包。
可以还原和启用以前已从映像中删除的功能。 使用 /Source
参数指定还原功能所需的文件的位置。 文件的源可以通过已装载Windows中的文件夹,例如 c:\test\mount\Windows
。 还可以将Windows文件夹作为文件的源,例如 z:\sources\SxS
。
如果指定多个 /Source
参数,则会从找到文件的第一个位置收集文件,忽略其他位置。 如果没有为已删除的功能指定 /Source,则使用注册表中的默认位置,或者,对于联机映像,使用 Windows Update (WU) 。
- 使用
/LimitAccess
防止 DISM 联系 WU 查看联机图像。 - 使用
/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 选项。 使用 /Get-Features
选项查找图像中功能的名称。
语法:
/Disable-Feature /FeatureName:<name_in_image> [/PackageName:<name_in_image>] [/Remove]
可以在一 /FeatureName
个命令行中多次指定同一父包中的功能。
如果包是基础包的包,则不需要使用 /PackageName 选项Windows名称。 否则, /PackageName
请使用 指定该功能的父包。
使用 /Remove
删除功能,而不从映像中删除该功能的清单。 使用 显示功能详细信息时,该功能将列为"已删除",并且可以通过 /Get-FeatureInfo
/Enable-Feature 和 /Source 选项还原和启用该功能。
示例:
*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开始,你可以使用指定 /Defer
/ResetBase
,但你/Defer
应 /Defer
在 DISM /Resetbase
需要30分钟以上才能完成的工厂中使用作为选项。
提示
若要确定/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 选项来尝试恢复系统。 操作将从以前的维护操作中恢复所有挂起的操作,因为这些操作可能导致启动失败。 /RevertPendingActions 选项在运行的操作系统或 Windows PE 上不受支持,或者 Windows 恢复环境 (Windows RE) 映像。 重要提示:应仅在不启动 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 映像。
限制
- 当你在脱机映像中安装包时, “” 由于处于挂起状态的联机操作,包状态为 "正在挂起"。 换句话说,在启动映像并处理联机操作时,将安装包。 如果请求后续操作,则在上一个挂起的联机操作完成前,无法对其进行处理。
/PreventPending
当你向添加包时,可以使用选项/AddPackage
,以在有挂起的联机操作时跳过包的安装。 - 某些包要求首先安装其他包。 您不应假定需要满足依赖项。 如果包具有依赖项要求,请使用应答文件来安装所需的包。 通过将答案文件传递到 DISM,可以按正确的顺序安装多个包。 有关详细信息,请参阅 使用 DISM 脱机添加或删除包。
- 包按照它们在命令行中的列出顺序安装。
- 使用 DISM 列出 Windows PE 映像中的可选组件时,即使服务操作成功,可选组件也将始终作为 "挂起" 列出。 这是由设计决定的,无需执行其他操作。