共用方式為


DISM 作業系統套件 (.cab 或 .msu) 維護命令行選項

使用 DISM 搭配 Windows 封包 (.cab) 或 Windows Update 獨立安裝程式 (.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檔案或資料夾。

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

檢查點累積更新

從 Windows 11 版本 24H2 開始,最新的累積更新可能具有必須先安裝的先決條件累積更新。 若要安裝這些檢查點累積更新,請使用目標累積更新呼叫 /Add-Package。 來自 -PackagePath 的資料夾將用來視需要探索並安裝一或多個檢查點。 只有目標累積更新和任何必要條件檢查點累積更新應該位於 -PackagePath 資料夾中。 將會處理修訂小於或等於目標累積更新的累積更新套件。

/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 可以搭配 Windows 10、Windows 8.1 和 Windows PE 映射使用,高於 5.0。 從 Windows 10 版本 1607 開始,您可以使用 來指定 /Defer /ResetBase,但您應該只在/Defer需要超過 30 分鐘才能完成的處理站DISM /Resetbase中使用 作為選項。

提示

若要判斷上次執行 /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 Recovery Environment (Windows RE) 映射上不支援 /RevertPendingActions 選項。 重要事項:您應該只在未開機的 Windows 映射的系統復原案例中使用 /RevertPendingActions 選項。
SPSuperseded 拿掉在 Service Pack 安裝期間建立的任何備份檔。 使用 /HideSP 防止 Service Pack 列在已安裝的更新 控制台 中。 完成 /SPSuperseded 作業之後,就無法卸載 Service Pack。
/StartComponentCleanup 清除已取代的元件,並減少元件存放區的大小。 使用 /ResetBase 重設已取代元件的基底,進一步減少元件存放區大小。 使用 /ResetBase 選項執行 /StartComponentCleanup 之後,就無法卸載已安裝的 Windows 更新。 使用 /Defer 搭配 /ResetBase,將長時間執行的清除作業延遲至下一個自動維護。
/AnalyzeComponentStore 建立元件存放區的報表。 如需報表的詳細資訊,以及如何使用報表中提供的資訊,請參閱 判斷 WinSxS 資料夾的實際大小。
/CheckHealth 檢查映像是否已被失敗的進程標示為損毀,以及是否可以修復損毀。
/ScanHealth 掃描映像中是否有元件存放區損毀。 此作業需要幾分鐘的時間。
/RestoreHealth 掃描映像中是否有元件存放區損毀,然後自動執行修復作業。 此作業需要幾分鐘的時間。
/源 與 /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) 命令列選項