概要
本記事では、Windows管理者が頻繁に利用する DISM(Deployment Image Servicing and Management) と PowerShell(DISM APIラッパー) を並行して扱い、各操作の実行例・オプション・動作内容を体系的に整理します。
変数表記について
| 変数名 |
設定例 |
備考 |
<<IMAGE_PATH>> |
C:\mount または E:\Windows |
/Image: に指定するオフラインWindowsのパス(マウント済みフォルダまたは別ディスク上のWindowsディレクトリ) |
<<FEATURE_NAME>> |
NetFx3 |
Windows機能名 |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
OS拡張機能名(FoD: Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
WIM/ESDイメージファイル |
<<INDEX>> |
1 |
イメージインデックス番号 |
<<MOUNT_DIR>> |
C:\mount |
マウント先ディレクトリ |
<<DRIVER_DIR>> |
D:\drivers |
INFを含むドライバ格納ディレクトリ |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
更新パッケージファイル |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
言語パックCAB |
<<SOURCE_PATH>> |
D:\sources\sxs |
NetFx3等のソースファイルパス |
<<APPLY_DIR>> |
C:\ |
展開先 |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
作業用ディレクトリ |
<<LOG_PATH>> |
C:\Temp\dism.log |
ログ出力先 |
ほぼ全コマンドで /ScratchDir:<<SCRATCH_DIR>> および /LogPath:<<LOG_PATH>> を併用可能です。
Step 1: 対象の指定方法(/Online または /Image)
DISMコマンドのほとんどは操作対象を明示的に指定する必要があります。
| オプション |
意味 |
使用例 |
/Online |
現在起動中のWindowsを対象 |
dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
オフラインWindowsまたはマウント済みイメージを対象 |
dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Step 2: Windows機能の確認(/Get-Features, /Get-FeatureInfo)
概要
インストール可能な機能の一覧や状態(Enabled / Disabled / DisabledWithPayloadRemoved)を取得します。
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
オフライン環境を対象 |
dism /Image:C:\mount /Get-Features |
/Get-Features |
機能一覧を表示 |
dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
特定機能の詳細情報を取得 |
dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
対象機能名を指定 |
NetFx3 |
/Format:Table |
表形式で出力 |
dism /Online /Get-Features /Format:Table |
使用例
dism /Online /Get-Features /Format:Table
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
DisabledWithPayloadRemoved 状態は、機能ファイルが削除されており /Source 指定が必要です。
Step 3: Windows機能の有効化・無効化(/Enable-Feature, /Disable-Feature)
概要
.NET Framework 3.5 や SMB 1.0 などのWindows機能を有効化/無効化します。
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
有効化または無効化する機能名 |
NetFx3 |
/All |
依存関係を含めてすべて有効化 |
|
/Source:<<SOURCE_PATH>> |
ペイロード削除済み機能に必要なソースパス |
dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
Windows Update や WSUS を使用しない |
|
/Enable-Feature |
指定機能を有効化 |
dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
指定機能を無効化 |
dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
ログ出力先を指定 |
|
使用例
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>
Step 4: OS拡張機能(Capabilities)の確認(/Get-Capabilities, /Get-CapabilityInfo)
概要
FoD(Features on Demand)として提供される追加コンポーネントの一覧と状態を確認します。
例:RSAT、OpenSSH.Client、Language.Basic など。
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
オフライン環境を対象 |
dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
利用可能な拡張機能一覧を表示 |
dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
特定Capabilityの詳細を取得 |
dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
表形式で整列出力 |
dism /Online /Get-Capabilities /Format:Table |
使用例
dism /Online /Get-Capabilities /Format:Table
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Capabilitiesはオンデマンド機能であり、Windows Update・WSUS・ISOなどから追加可能です。
Step 5: OS拡張機能の追加・削除(/Add-Capability, /Remove-Capability)
概要
OpenSSHやRSATツールなどのFoDを追加・削除します。
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
追加・削除対象の拡張機能名を指定 |
OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
オフライン時に使用するFoD ISOや共有パスを指定 |
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Windows UpdateやWSUSを使わず指定ソースのみ使用 |
|
/LogPath:<<LOG_PATH>> |
ログ出力先を指定 |
|
使用例
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Step 6: システムイメージ修復とストア管理(/Cleanup-Image)
概要
WinSxS(コンポーネントストア)の破損検出・修復・容量最適化を行います。
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
破損の有無を即時確認(軽量) |
|
/ScanHealth |
詳細スキャン(完全検査) |
|
/RestoreHealth |
破損修復を実行 |
dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
ソースパスを指定(オフライン修復用) |
|
/LimitAccess |
Windows Updateを使用しない |
|
/StartComponentCleanup |
古い更新を削除 |
|
/ResetBase |
全更新を固定(ロールバック不可) |
|
/AnalyzeComponentStore |
コンポーネントストアのサイズ解析 |
|
使用例
dism /Online /Cleanup-Image /CheckHealth
dism /Online /Cleanup-Image /ScanHealth
dism /Online /Cleanup-Image /RestoreHealth /Source:<<SOURCE_PATH>> /LimitAccess /LogPath:<<LOG_PATH>>
dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase /LogPath:<<LOG_PATH>>
Step 7: イメージ情報の確認(/Get-ImageInfo)
主なオプション
| オプション |
意味 |
使用例 |
/Get-ImageInfo |
WIM/ESD内のイメージ情報を表示 |
dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
対象WIMファイルを指定 |
|
/Index:<<INDEX>> |
取得対象のインデックス番号を指定 |
|
/LogPath:<<LOG_PATH>> |
ログ出力先を指定 |
|
使用例
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Step 8: オフラインイメージのマウントとアンマウント
主なオプション
| オプション |
意味 |
使用例 |
/Mount-Wim |
WIMファイルをマウント |
|
/WimFile:<<WIM_PATH>> |
対象WIMファイルを指定 |
|
/Index:<<INDEX>> |
マウントするイメージ番号 |
|
/MountDir:<<MOUNT_DIR>> |
マウント先ディレクトリ |
|
/ReadOnly |
読み取り専用でマウント |
|
/Get-MountedWimInfo |
現在マウント中のイメージ情報を確認 |
|
/Unmount-Wim |
アンマウント実行 |
|
/Commit |
変更を保存 |
|
/Discard |
変更を破棄 |
|
使用例
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
dism /Get-MountedWimInfo
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Step 9: ドライバ・パッケージ・言語パック統合
主なオプション
| オプション |
意味 |
使用例 |
/Online |
実行中のWindowsを対象 |
|
/Image:<<MOUNT_DIR>> |
編集対象のオフラインイメージを指定 |
|
/Add-Driver |
ドライバ追加 |
|
/Driver:<<DRIVER_DIR>> |
INFを含むドライバ格納ディレクトリ |
|
/Recurse |
サブフォルダも含めて処理 |
|
/Add-Package |
更新パッケージや言語パックを追加 |
|
/PackagePath:<<PACKAGE_PATH>> |
パッケージのパス |
|
/Set-AllIntl:ja-JP |
ロケール設定を日本語に変更 |
|
補足:
/Add-Driver はオフライン専用
/Add-Package と /Set-AllIntl はオンラインでも実行可能です。
使用例
dism /Image:<<MOUNT_DIR>> /Add-Driver /Driver:<<DRIVER_DIR>> /Recurse
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<PACKAGE_PATH>>
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<LANG_PACK>>
dism /Image:<<MOUNT_DIR>> /Set-AllIntl:ja-JP
Step 10: イメージのキャプチャ・展開・圧縮
主なオプション
| オプション |
意味 |
使用例 |
/Capture-Image |
指定フォルダをWIMとしてキャプチャ |
|
/ImageFile:<<WIM_PATH>> |
出力先WIMを指定 |
|
/CaptureDir:<<APPLY_DIR>> |
キャプチャ対象ディレクトリ |
|
/Name:"<任意名>" |
イメージ名を指定 |
|
/Export-Image |
既存WIMを圧縮して再出力 |
|
/Apply-Image |
WIMを展開 |
|
/Compress:max |
最大圧縮を適用 |
|
/ApplyDir:<<APPLY_DIR>> |
展開先ディレクトリ |
|
使用例
dism /Capture-Image /ImageFile:D:\Custom.wim /CaptureDir:<<APPLY_DIR>> /Name:"Custom Image"
dism /Export-Image /SourceImageFile:<<WIM_PATH>> /SourceIndex:<<INDEX>> /DestinationImageFile:D:\install_compressed.wim /Compress:max
dism /Apply-Image /ImageFile:<<WIM_PATH>> /Index:<<INDEX>> /ApplyDir:<<APPLY_DIR>>
Step 11: PowerShellでの対応コマンド
対応コマンド一覧
| 区分 |
DISMコマンド |
PowerShellコマンドレット |
目的 |
| 機能(Features)取得 |
/Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
機能一覧・個別詳細の取得 |
| 機能の有効化/無効化 |
/Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
機能の有効/無効 |
| 拡張機能(Capabilities)取得 |
/Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Capabilities一覧・個別詳細の取得 |
| 拡張機能 追加/削除 |
/Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
FoDの追加/削除 |
| パッケージ取得/統合 |
/Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
更新/LP等の確認・統合 |
| ドライバ取得/統合/削除 |
/Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
ドライバの確認/統合/削除(主にオフライン) |
| イメージ情報/マウント |
/Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
WIMの情報取得・マウント管理 |
11.1 機能(Features)
Get-WindowsOptionalFeature
| オプション |
意味 |
使用例 |
-Online |
実行中OSを対象 |
Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
オフラインイメージを対象 |
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
特定機能の詳細取得 |
-FeatureName NetFx3 |
Get-WindowsOptionalFeature -Online
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-WindowsOptionalFeature / Disable-WindowsOptionalFeature
| オプション |
意味 |
使用例 |
-Online / -Path <<IMAGE_PATH>> |
対象の指定 |
Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
機能名 |
-FeatureName NetFx3 |
-All |
依存機能も同時に有効化 |
-All |
-Source <<SOURCE_PATH>> |
ペイロード復元用のソース |
-Source <<SOURCE_PATH>> |
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 拡張機能(Capabilities)
Get-WindowsCapability
| オプション |
意味 |
使用例 |
-Online |
実行中OSを対象 |
Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
ワイルドカード指定可 |
Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
オフライン対象 |
Get-WindowsCapability -Path <<IMAGE_PATH>> |
Get-WindowsCapability -Online
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-WindowsCapability / Remove-WindowsCapability
| オプション |
意味 |
使用例 |
-Online / -Path <<IMAGE_PATH>> |
対象の指定 |
Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
追加/削除するCapability |
-Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
FoD ISO等のソース |
-Source <<SOURCE_PATH>> |
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 パッケージ(更新・言語パック)
Get-WindowsPackage
| オプション |
意味 |
使用例 |
-Online / -Path <<IMAGE_PATH>> |
対象の指定 |
Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
対象パッケージの情報 |
Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
Get-WindowsPackage -Online
Add-WindowsPackage
| オプション |
意味 |
使用例 |
-Online / -Path <<IMAGE_PATH>> |
対象の指定 |
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
.cab(推奨)/.msu |
|
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 ドライバ
Get-WindowsDriver
| オプション |
意味 |
使用例 |
-Online / -Path <<IMAGE_PATH>> |
対象の指定 |
Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
すべてのドライバを表示 |
-All |
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-WindowsDriver / Remove-WindowsDriver
| オプション |
意味 |
使用例 |
-Path <<IMAGE_PATH>> |
対象の指定 |
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
INF格納ディレクトリ |
|
-Recurse |
サブフォルダも対象 |
|
-Driver <<oem*.inf>>(Remove) |
削除対象INF |
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf |
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
11.5 イメージ情報・マウント
Get-WindowsImage
| オプション |
意味 |
使用例 |
-ImagePath <<WIM_PATH>> |
WIM/ESDのパス |
Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
特定イメージのみ |
-Index <<INDEX>> |
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-WindowsImage / Dismount-WindowsImage
| オプション |
意味 |
-ImagePath <<WIM_PATH>> |
入力WIM |
-Index <<INDEX>> |
マウント対象インデックス |
-Path <<MOUNT_DIR>> |
マウント先 |
-ReadOnly |
読み取り専用でマウント |
-ScratchDirectory <<SCRATCH_DIR>> |
作業用領域 |
-Save(Dismount) |
変更を保存してアンマウント |
-Discard(Dismount) |
変更を破棄してアンマウント |
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
まとめ
- DISM → OSコンポーネント・WIM・更新・ドライバを管理(低レベル)
- PowerShell (DISM API) → 同機能をスクリプト化可能(一覧・選択・自動化に最適)
- Capability → オンデマンド機能(OpenSSH, RSAT, 言語パック)