DISM 作業系統套件 (.cab 或 .msu) 服務Command-Line選項

使用 DISM 搭配 Windows 封包 (.cab) 或Windows Update獨立安裝程式 (.msu) 檔案來安裝或移除更新、語言套件,以及啟用或停用 Windows 功能。 功能是核心作業系統的選擇性元件。

Syntax

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檔案或資料夾。

您可以使用 /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 套件。

注意

您可以使用 /Add-Package 將 .msu 套件新增至線上或離線Windows 11版本 21H2 或更新版本映射。 如果您在 Windows 11 21H2 版之前使用 Windows 映像,則只能在離線目標映射上新增 .msu 套件。

您可以在一個命令列上新增多個套件。 將會檢查每個套件的適用性。 如果封裝無法套用至指定的映射,您會收到錯誤訊息。 如果您想要命令處理而不檢查每個套件的適用性,請使用 /IgnoreCheck 引數。

語法

Dism /Add-Package /PackagePath:<path_to_cabfile> [/IgnoreCheck] [/PreventPending]
  • /PackagePath 可以指向:

    • 單一.cab或 .msu 檔案。
    • 包含單一展開.cab檔案的資料夾。
    • 包含單一 .msu 檔案的資料夾。
    • 包含多個.cab或 .msu 檔案的資料夾。
  • 如果 /PackagePath 指向根目錄中包含.cab或 .msu 檔案的資料夾,則也會以遞迴方式檢查.cab和 .msu 檔案的任何子資料夾。

  • /PreventPending如果套件或 Windows 映像有擱置的線上動作,請使用 選項來略過套件的安裝。

注意

/Add-Package 不會執行套件適用性和相依性的完整檢查:

  • 如果您要新增具有相依性的套件,請務必在新增套件時安裝所有相依性。
  • 如果您要新增 .msu,請務必檢查相關聯的 KB 以取得任何套件特定的安裝指示。

範例

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>}
  • 用來 /PackagePath 指向封裝的原始來源、指定 CAB 檔案的路徑,或依名稱指定套件,如映射中所列。 /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 選項。

如果套件是 Windows Foundation 套件,則不需要使用 /PackageName 選項來指定套件名稱。 否則,請使用 /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 多次。

如果套件是 Windows Foundation 套件,則不需要使用 /PackageName 選項來指定套件名稱。 否則,請使用 /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 處理站中使用 DISM /Resetbase 做為需要 30 分鐘以上才能完成的選項。

提示

若要判斷上次執行 /ResetBase 選項的時間,請檢查登錄路徑下的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing LastResetBase_UTC登錄專案。

語法

/Cleanup-Image {/RevertPendingActions | /SPSuperseded [/HideSP] | /StartComponentCleanup [/ResetBase [/Defer]] | /AnalyzeComponentStore | /CheckHealth | /ScanHealth | /RestoreHealth [/Source: <filepath>] [/LimitAccess]}
參數 描述
/RevertPendingActions 如果您遇到開機失敗,您可以使用 /RevertPendingActions 選項嘗試復原系統。 作業會從先前的服務作業還原所有擱置的動作,因為這些動作可能是開機失敗的原因。 在執行中的作業系統或 Windows PE 或 Windows 修復環境 (Windows RE) 映射上不支援 /RevertPendingActions 選項。 重要事項:您應該只在未開機的 Windows 映像上的系統復原案例中使用 /RevertPendingActions 選項。
SPSuperseded 移除在 Service Pack 安裝期間建立的任何備份檔案。 使用 /HideSP 防止 Service Pack 列在已安裝的更新 主控台中。 完成 /SPSupersed 作業之後,即無法卸載 Service Pack。
/StartComponentCleanup 清除已取代的元件,並減少元件存放區的大小。 使用 /ResetBase 重設已取代元件的基底,進一步減少元件存放區大小。 使用 /ResetBase 選項執行 /StartComponentCleanup 之後,就無法卸載已安裝的 Windows 更新。 搭配 /ResetBase 使用 /Defer,將長時間執行的清除作業延遲到下一個自動維護。
/AnalyzeComponentStore 建立元件存放區的報表。 如需報表的詳細資訊,以及如何使用報表中提供的資訊,請參閱 判斷 WinSxS 資料夾的實際大小
/CheckHealth 檢查映射是否已由失敗的進程標示為損毀,以及是否可以修復損毀。
/ScanHealth 掃描映射中的元件存放區損毀。 此作業需要幾分鐘的時間。
/RestoreHealth 掃描映射中的元件存放區損毀,然後自動執行修復作業。 此作業需要幾分鐘的時間。
/Source 與 /RestoreHealth 搭配使用,以指定可用於修復之已知良好檔案版本的位置,例如掛接映射之 Windows 目錄的路徑。
/LimitAccess 防止 DISM 連絡Windows Update以修復線上映射。

範例

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) 命令列選項