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 映射中的選用元件時,即使服務作業成功,選擇性元件一律會列為擱置中。 這是根據設計,不需要額外的動作。