DISMでStorageManagement機能追加が失敗する原因と対処法(0x800f081f・ソース不一致・コンポーネントストア修復)

DISMでRSAT(例:Rsat.WSUS.Tools)は追加できるのに、StorageManagement(Microsoft.Windows.StorageManagement / Microsoft.OneCore.StorageManagement)だけが「ソースが見つからない」「コンポーネントが壊れている」などで失敗し、修復に詰まってインプレース再インストールへ進みがちなケースを、原因の切り分けと現実的な修復手順として整理します。

目次

起きていることを整理する(この症状の“クセ”)

まず前提として、同じ「/add-capability」でも、機能ごとに取得元(Windows Update / WSUS / ローカルソース)や依存関係が微妙に異なります。そのため「ある機能は入るのに、特定の機能だけ入らない」は珍しくありません。

観測される状況ポイントよくある落とし穴
Rsat.WSUS.Tools は追加できるDISM自体が壊れているとは限らないStorageManagementが別ソース(FOD)依存/依存パッケージ不足
StorageManagementだけ「ソースが見つからない」最優先はソース不一致の疑い/LimitAccess の有無より、ソースの中身が合っていない
AnalyzeComponentStore / StartComponentCleanup は正常WinSxSの大規模破損とは限らない“整合性OK”でも、機能追加に必要なpayloadが手に入らないことがある
sfc /scannow も問題なしシステムファイルは概ね健全“修復用ソース”と“追加する機能のソース”は別問題になりやすい
SeaGateツールだけ容量を誤認っぽいストレージAPI/ドライバー側の線も残るディスクは正常でも、管理層(ドライバー/フィルター/RAID)でズレが出る

質問にある「System Volume Information(SVI)や些細な不整合が原因では?」という発想は筋が悪くありません。ただし実務的には、“ちょっとした不整合だけ”でStorageManagementのCapabilityだけが継続的に落ちるよりも、次のような複合要因で説明できることが多いです。

  • Capability名や指定記号(~~~~)のミス
  • ISO/メディアのビルド不一致、またはFOD(Features on Demand)不足
  • コンポーネントストアは整合していても、追加に必要なpayload取得経路が詰まっている
  • WSUS/ポリシーで「オプション機能の取得」だけブロックされている
  • ストレージ管理系のWMI/Storageサービス、またはストレージコントローラ周りの歪み

DISMでやっている操作の種類を押さえる

似た言葉が多いので、混乱を防ぐために整理します。

操作代表コマンド意味つまずきポイント
Capability追加dism /online /add-capability“Windowsの追加機能(FOD含む)”を追加ソースの中身・WSUS制御・依存関係で失敗しやすい
Windows機能(Feature)ONdism /online /enable-feature既にある機能を有効化(.NETなど)payloadが未取得だとソースが必要
パッケージ直入れdism /online /add-packageCAB/MSUを直接投入依存CABが複数必要な場合がある

最短で切り分けるためのチェックリスト

闇雲に修復を回すより、「存在確認 → エラーの種類 → ソース一致 → 修復 → 強制投入」の順で詰める方が早いです。

チェック確認内容判断
CapabilityがOSに存在するかGet-WindowsCapability / DISMで一覧確認一覧に出ないなら、そもそも対象ビルドでは扱いが違う可能性
エラーコード(0x800f…)dism.log / 画面出力0x800f081fならソース不備が濃厚
ソース(ISO/FOD)がビルド一致かinstall.wim/esdのビルド・エディションここがズレると“特定の機能だけ”失敗しやすい
WSUS/ポリシーで取得経路が詰まっていないか社内PC/ドメイン配下で多発RSATが入っても、別系統が落ちることがある
コンポーネントストア修復RestoreHealth + SFC“軽微な破損”やpending状態を除去
CAB直指定で回避できるか/add-packageCapability解決に失敗しているだけなら突破口

機能名・書式の再確認(ここで直ることもある)

初歩に見えて、現場で一番多いのがここです。特にStorageManagementのCapability名は見た目が似ていて、記号の打ち間違いが起きがちです。

  • 区切りは「~~~~」です(ハイフンや三つ線ではありません)。
  • 管理者権限のコマンドプロンプト/PowerShellで実行します。
dism /online /add-capability /capabilityname:Microsoft.OneCore.StorageManagement~~~~0.0.1.0
dism /online /add-capability /capabilityname:Microsoft.Windows.StorageManagement~~~~0.0.1.0

加えて「そのCapabilityが本当に“今のOSで扱える状態”か」を確認します。

dism /online /get-capabilities | findstr /i storagemanagement
dism /online /get-capabilityinfo /capabilityname:Microsoft.Windows.StorageManagement~~~~0.0.1.0

PowerShellが使える場合は、一覧・状態確認が見やすいです。

powershell -NoProfile -Command "Get-WindowsCapability -Online | Where-Object {$_.Name -like '*StorageManagement*'} | Select-Object Name, State | Format-Table -Auto"

ここでStateが「NotPresent」なら追加対象、「Installed」なら既に入っています。「Staged」は“取り込み済みだが完全有効化前”のような中間状態として現れることがあります(環境差あり)。

エラーコードの意味をざっくり掴む(次の一手が変わる)

「ソースが見つからない」「コンポーネントが壊れている」といった文言は、実際には複数の原因が同じ見え方をします。エラーコードで方向性を決めるのが安全です。

代表的なコード見え方濃厚な原因優先対応
0x800f081fソースファイルが見つからないソース不足/FOD不足/ビルド不一致ISO/FODの一致確認、/Source見直し
0x800f0954取得に失敗(環境依存)WSUS配下でオプション機能取得が詰まるポリシー変更(WUから直接取得)
0x80073712コンポーネントストア破損扱いWinSxSの破損・更新の中途半端RestoreHealth(正しいソース指定)→SFC
0x800f0831必要な更新/依存がない依存パッケージ不足、更新の欠落最新CU適用、ログで依存特定
0x80070002 / 0x80070003ファイル/パスがない指定パス誤り、メディア構成違いメディア構造確認、パス再指定

どのコードか分からない場合は、後述の「ログの見方」でdism.logから拾うのが確実です。

ソース(ISO/メディア/FOD)の一致確認が最重要

StorageManagementだけが落ちるケースで一番多いのは、追加に必要なパッケージが“そのソースに入っていない”、またはビルドが一致していない状態です。

結論:「WindowsのインストールISOをマウントした」だけでは、Capability追加に必要なものが揃わないことがあります。特にオプション機能は、FOD(Features on Demand)ISOが別で必要になる環境があります。

OS側のバージョン・エディションを固定する

まず対象PCの情報を採取します。

winver
systeminfo | findstr /b /c:"OS 名" /c:"OS バージョン"
dism /online /get-currentedition

インストールメディア側のビルド・エディションを確認する

ISOをマウントしてドライブ文字を仮にG:とします(環境に合わせて読み替えてください)。install.wim が無く install.esd の場合もあります。

dism /get-wiminfo /wimfile:G:\sources\install.wim

ここで表示されるインデックス(Index)とエディション(例:Pro/Enterprise)が、OSと噛み合っているかを見ます。エディションが違う・世代が違う(例:21H2のPCに22H2のメディア)だと、特定パッケージだけ解決できずに落ちることがあります。

メディア構造の目安(よくある見落とし)

「sources\sxsがあるからOK」と思いがちですが、そこに入っているのは主に“Windows機能(Feature)向けのコンポーネント”で、Capabilityすべてを賄えない場合があります。

ソースの種類よくあるパス得意な用途注意点
通常のWindowsインストールISOG:\sources\install.wim / G:\sources\sxsRestoreHealthの修復ソース、Featureの有効化Capabilityのpayloadが不足することがある
FOD ISO(Features on Demand)(ISO内のCab群)RSATや言語、オプション機能のpayloadOSのビルド/言語に厳密に合わせる必要がある
Windows Update(インターネット)オンライン取得不足分を自動取得/LimitAccessで遮断される。企業NWだと到達できないことも
WSUS社内更新サーバー更新配布オプション機能の取得が制限され、0x800f0954系が出やすい

コンポーネントストア修復(“正常”でも一度揃え直す)

AnalyzeComponentStoreやSFCが問題なしでも、更新の取り込み順payload解決の齟齬で、特定Capabilityだけが失敗することがあります。ここは“やり直し”の価値があります。

クリーンアップ

dism /online /cleanup-image /startcomponentcleanup

正しいインストールイメージをソースにしてRestoreHealth

インデックス番号は、先ほどの /get-wiminfo で確認して合わせます。

dism /online /cleanup-image /restorehealth /source:G:\sources\install.wim:1 /limitaccess

install.esdの場合の例:

dism /online /cleanup-image /restorehealth /source:G:\sources\install.esd:1 /limitaccess

最後にSFC

sfc /scannow

この流れの狙いは、「壊れているかどうか」ではなく、“現在のOS状態”と“修復ソース”の整合を取り直すことです。StorageManagementだけが落ち続ける場合でも、ここで復帰することがあります。

WSUS/社内ポリシーが絡む場合の対処(RSATが入っても油断しない)

ドメイン参加端末や社内ネットワークでは、Windows Updateの経路が制御されていて、更新は取れているのにオプション機能だけ取得できないことがあります。典型例が0x800f0954系です。

管理対象端末でよく見るのが、グループポリシー「オプションコンポーネントのインストールとコンポーネント修復の設定」による挙動差です。可能なら次の方針に寄せます。

  • オプション機能の修復コンテンツをWSUSではなく、Windows Updateから直接取得する設定を許可する
  • または、FOD ISOを社内共有し、/Sourceで必ずそこを参照する運用に寄せる

レジストリで一時的にWSUS参照を切り替える手法もありますが、組織ポリシーに抵触する場合があるため、運用ルールに従ってください(ここでは詳細は割愛します)。

System Volume Information(SVI)とVSSの観点(“原因になり得る”範囲を見極める)

SVIは復元ポイントやシャドウコピー(VSS)などが利用する領域で、権限や内部データの不整合があると、更新やバックアップ周りで副作用が出ることがあります。ただし、StorageManagementのCapability追加失敗の主因は、SVI単体よりもソース不一致・取得経路詰まりであるケースが多いです。

まずは“破壊的でない”確認から

chkdsk /scan
vssadmin list writers
vssadmin list shadows
  • vssadmin list writersでエラーが多い場合、SVIやVSS周りの整合が崩れている可能性があります。
  • chkdskが短時間で正常でも、VSS writer側で詰まるケースはあります。

復元ポイント/シャドウコピーの整理(影響はあるが比較的コントロールしやすい)

注意:復元ポイントが消えます。運用上問題がない状況でのみ実施してください。

vssadmin delete shadows /all /quiet

SVIの権限リセット(takeown / icacls)は、環境によっては副作用が大きく、復元機能の挙動に影響することがあります。実施するなら「最終手段寄り」として、バックアップと影響範囲の理解が前提です。まずは上の“非破壊チェック”と“シャドウ削除”までで状況が変わるかを見た方が安全です。

CapabilityがダメならCAB直入れで突破する(/add-package)

/add-capability が「名前解決」や「取得経路」で詰まっているだけなら、メディア内のCABを直接指定して回避できることがあります。

CABを探す

マウントしたISOやFODメディア内から、StorageManagementを含むCABを検索します。

dir /s /b G:\*.cab | findstr /i storagemanagement

PowerShell例:

powershell -NoProfile -Command "Get-ChildItem -Path G:\ -Recurse -Filter *.cab -ErrorAction SilentlyContinue | Where-Object {$_.Name -match 'StorageManagement'} | Select-Object -First 30 FullName"

見つけたCABを指定して追加

dism /online /add-package /packagepath:"G:\(見つけたパス)\xxxxxx.cab"

この方法は強力ですが、パッケージによっては依存CABが複数必要な場合があります。追加後は、次のように状態を確認し、必要に応じて追加の依存パッケージを投入します。

dism /online /get-capabilities | findstr /i storagemanagement

ストレージドライバー/ハードウェア側の診断(SeaGateツールの違和感を放置しない)

SeaGateツールだけが容量や空き領域を誤って読んでいるように見える場合、ディスク自体の故障だけでなく、ストレージ管理APIに渡る情報がどこかで歪んでいる可能性があります。特に以下の条件があると差が出やすいです。

  • Intel RST / RAID / ストレージコントローラの独自ドライバーを利用している
  • フィルタードライバー(暗号化、バックアップ、仮想化系)が挟まっている
  • パーティション構成が特殊(多重ブート、ベンダー領域、ストレージスペース)

ドライバーの棚卸し(最低限)

pnputil /enum-drivers
driverquery /v | findstr /i "stor"

できればデバイスマネージャーで以下を重点的に確認します。

  • 「記憶域コントローラー」「IDE ATA/ATAPI コントローラー」配下のデバイス名
  • ドライバー提供元(Microsoft / Intel / メーカー独自)とバージョン

SMART/診断の追加観点

chkdskが正常でも、SMARTの生値やエラーカウントに兆候が出ていることがあります。SeaToolsやsmartmontools(smartctl)で確認し、異常があれば先にディスク/ケーブル/ケース(USB-SATA変換等)まで含めて切り分けます。

観測疑うべき層やること
OSは正常、特定ツールだけ誤認ツールの互換性 / API依存ツールを最新版へ、別ツールでも再現確認
複数ツールで値がブレるドライバー / フィルターストレージコントローラ更新、不要フィルターの除外検証
SMARTに警告兆候ディスク本体バックアップ優先、交換判断

ログで“どのファイル/パッケージで死んでいるか”を特定する

最終的にはログが一番確実です。StorageManagementの追加が失敗する場合、dism.logに「どの段階で」「何を探して」「見つからなかったか」が出ます。

  • DISMログ:C:\Windows\Logs\DISM\dism.log
  • コンポーネント(CBS)ログ:C:\Windows\Logs\CBS\CBS.log

GUIで追うより、フィルタして“当たり”を拾うのが早いです。

findstr /i /c:"error" /c:"0x800f" C:\Windows\Logs\DISM\dism.log > "%USERPROFILE%\Desktop\dism_error.txt"
notepad "%USERPROFILE%\Desktop\dism_error.txt"

ログに「探しているcab名」「参照しているパス」「失敗コード」が出るので、次の判断ができます。

  • 参照パスがISOではなくWindows Updateを向いている → /LimitAccess や /Source の設計を見直す
  • 参照パスは正しいがcabが無い → そのソースにStorageManagementのpayloadが無い(FOD不足)
  • cabはあるのに適用で落ちる → 依存パッケージ不足、またはコンポーネントストア側の問題

Windows Updateコンポーネントのリセット(修復が進まないときの現実解)

DISM/SFCを正しいソースで回しても改善せず、ログ上も更新コンポーネント周りの詰まりが疑われる場合は、Windows Update関連フォルダーの再初期化が効くことがあります。

注意:更新履歴表示などに影響が出る場合があります。業務PCでは運用ルールに従ってください。

net stop wuauserv
net stop bits
net stop cryptsvc

ren C:\Windows\SoftwareDistribution SoftwareDistribution.bak
ren C:\Windows\System32\catroot2 catroot2.bak

net start cryptsvc
net start bits
net start wuauserv

この後に再度、RestoreHealth → add-capability を試します。

どうしても直らないときの判断(インプレース再インストールの位置付け)

ここまでの「ソース一致の再確認 → RestoreHealth/SFC → 取得経路(WSUS/ポリシー) → CAB直入れ → ドライバー周り」までやっても、StorageManagementだけが頑固に失敗し続ける場合、インプレースアップグレード(上書きインストール)は現実的な選択肢です。

ただし、インプレースは“万能薬”ではなく、原因がソース不一致や取得経路にある場合は、同じ設計のまま繰り返すと再発します。実行前に次の2点だけは押さえておくと、やり直しが減ります。

  • 使用するISOは、対象PCのエディション/言語/ビルドに揃える
  • 企業環境なら、オプション機能の取得がWSUSで詰まるかどうかを事前に確認する

まとめ(この記事の結論)

  • StorageManagementだけが落ちる現象は、SVIの“些細な不整合”単体よりも、ソース不一致・FOD不足・取得経路詰まり(WSUS/ポリシー)の影響が濃厚です。
  • 最短ルートは、Capabilityの存在/状態確認 → エラーコード把握 → ソース一致確認 → RestoreHealth(正しいソース)です。
  • /add-capabilityが詰まるなら、CAB直指定(/add-package)が突破口になります。
  • SeaGateツールの誤認があるなら、ストレージコントローラ/フィルタードライバーも並行して疑い、診断と更新を進めるのが安全です。
  • 上記を尽くしても改善しない場合に、最後のカードとしてインプレース再インストールを検討します。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次