Windows: 「システム修復が保留中で再起動が必要です」エラーの対処方法
このガイドは、Windows の組み込み修復ツール(例: SFC、DISM)を使ったときに表示される「there is a system repair pending which requires a reboot to complete」(システム修復が保留中で再起動が必要です)エラーを解決するための手順を、初心者〜中級者向けに整理したものです。画像、コマンド、注意点、代替案を含みます。
このエラーの要点
エラーは過去の修復処理が完全に終了しておらず、再起動が保留されている状態で発生します。典型的な原因は以下の通りです。
- C:\Windows\WinSxS フォルダーにある pending.xml に未完了の操作が記録されている
- レジストリの RebootPending キーに再起動保留のフラグがある
- OS イメージが破損しており、DISM がファイルの取得に失敗している
- ブート不能状態で手動修復が必要なケース
重要: 操作の前に必ず重要データのバックアップを取ってください。レジストリ編集や所有権の変更はシステムに影響を与える可能性があります。
手順 1: Pending.xml を削除する
Pending.xml は、保留中の構成変更を示すファイルです。多くの場合、再起動で解決しますが、再起動しても同じエラーが出る場合は手動で削除します。
手順:
- Win + E を押してエクスプローラーを開きます。エクスプローラーは Windows のファイル管理アプリです。
- アドレスバーに次のパスを入力して移動します:
C:\Windows\WinSxS
- フォルダー内で pending.xml を検索します。
- 見つかったら、まず名前を変更して(例: pending.xml.bak)から始め、問題が解決するか確認します。削除しても構いませんが、念のためバックアップがおすすめです。
- 削除または名前変更後、PC を再起動し、管理者特権のコマンドプロンプトで次を実行して確認します:
sfc /scannow
所有権エラーが出る場合は、WinSxS フォルダーの所有権を取得してから再試行します。所有権取得の一例:
takeown /f C:\Windows\WinSxS /r /d y
icacls C:\Windows\WinSxS /grant administrators:F /t
注: 上記コマンドは管理者権限のコマンドプロンプトで実行してください。
手順 2: DISM の /RestoreHealth を実行する
DISM はイメージサービスのためのコマンドラインツールです。オンラインイメージを修復するには /RestoreHealth を使います。実行にはインターネット接続が必要な場合があります。
手順:
- スタートメニューで「cmd」と入力します。
- 「コマンドプロンプト」を右クリックし「管理者として実行」を選択します。UAC の確認では [はい] を押します。
- 管理者コマンドプロンプトで次を実行します:
DISM.exe /Online /Cleanup-Image /RestoreHealth
- プロセスが完了するまで待ちます。完了後、再起動して以下を実行して状況を確認します:
sfc /scannow
注意: DISM が Windows Update からファイルを取得できない環境(ファイアウォールやプロキシ制限、切断状態)では失敗することがあります。その場合はオフラインのソースを指定する方法(ISO マウントやソースの指定)を使います。
オフラインソースを指定する例:
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:WIM:X:\sources\install.wim:1 /LimitAccess
X: は ISO をマウントしたドライブに置き換えてください。install.wim のパス・インデックスは環境によって異なります。
手順 3: DISM の /RevertPendingActions を使う(WinRE から)
Windows に通常起動できない場合、WinRE(Windows 回復環境)で DISM の /revertpendingactions を実行して保留中アクションを取り消します。ここでは F11 キーを使った起動例を示しますが、機種により F9/F12、または自動的に回復環境に入る場合があります。
手順:
- ノート PC を完全に電源オフにします。
- 電源ボタンを押して起動し、すぐに F11(または機種により F9/F12)を連打して WinRE に入ります。
- 「トラブルシューティング」>「詳細オプション」>「コマンドプロンプト」を選びます。
- コマンドプロンプトで次を実行します(OS が C: 以外にインストールされている場合はドライブ文字を変更してください):
DISM.exe /image:C:\ /cleanup-image /revertpendingactions
- 成功した場合は「操作が正常に完了しました」などのメッセージが表示されます。完了後、再起動して管理者で sfc /scannow を実行します。
重要: WinRE ではドライブ文字が通常と異なる場合があります。コマンドプロンプトで diskpart
→ list vol
などで対象ドライブを確認すると安全です。
手順 4: レジストリの RebootPending を削除する
レジストリに残る再起動保留フラグを削除して SFC を許可する方法です。レジストリ編集はリスクがあるため、手順をよく読み、バックアップを取ってから実行してください。
手順:
- 重要データをバックアップします。システムの復元ポイントを作成することを推奨します。
- Win + R を押し、regedit と入力してレジストリエディタを開きます。UAC の確認で [はい] を選びます。
- 次のパスに移動します:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
- 右側ペインに RebootPending キーがあるか確認します。見つかったら、右クリックして「削除」を選び、確認します。
削除できない場合は、該当キーのアクセス許可を変更してフルコントロールを取得する必要があります。GUI での所有権取得が難しい場合、管理者コマンドプロンプトで次を実行してレジストリから削除することも可能です(自己責任で実行してください):
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RebootPending" /f
注: キーの存在は環境に依存します。削除後、再起動して sfc /scannow を実行して問題が解決したか確認します。
代替案と最終手段
- 修復アップグレード: ブート可能な状態であれば、Windows の ISO をマウントして setup.exe を実行し、「個人用ファイルとアプリを引き継ぐ」オプションで OS を再インストールできます。データを残したい場合の最小限の侵襲な方法です。
- クリーンインストール: OS イメージが深刻に破損している場合の最終手段です。バックアップを必ず取ってください。
- セーフモードでの操作: 通常起動できる場合はセーフモードで作業するとファイル使用中による排他エラーを回避できます。
コマンドチートシート
管理者権限で実行する代表コマンド一覧:
# システムファイル検査
sfc /scannow
# DISM オンライン修復
DISM.exe /Online /Cleanup-Image /RestoreHealth
# DISM 保留アクションを元に戻す(オフライン/イメージ指定)
DISM.exe /image:C:\ /cleanup-image /revertpendingactions
# WinSxS の所有権取得(必要な場合)
takeown /f C:\Windows\WinSxS /r /d y
icacls C:\Windows\WinSxS /grant administrators:F /t
# レジストリの RebootPending を削除(慎重に)
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RebootPending" /f
役割別チェックリスト
管理者向け:
- 重要データのバックアップを取る
- 管理者権限でコマンド実行
- DISM /RestoreHealth のログを確認
- オフラインソース(ISO)を準備する
一般ユーザー向け:
- まずは完全な再起動を行う
- 再起動後にエラーが続く場合は IT 管理者に連絡
- 自分で操作する場合は画面の指示をよく読む
サポート担当者向け:
- 手順を順に案内する(再起動 → pending.xml → DISM → レジストリ)
- 回復環境での操作は事前に同意を得る
- ログや出力を記録してエスカレーションに備える
決定フローチャート
flowchart TD
A[エラーが表示された] --> B{PCが通常起動するか}
B -- はい --> C[まず再起動]
C --> D{エラー解消?}
D -- はい --> Z[完了]
D -- いいえ --> E[WinSxS の pending.xml を確認/削除]
E --> F{解消?}
F -- はい --> Z
F -- いいえ --> G[管理者で DISM /RestoreHealth 実行]
G --> H{解消?}
H -- はい --> Z
H -- いいえ --> I[レジストリの RebootPending を確認/削除]
I --> J{解消?}
J -- はい --> Z
J -- いいえ --> K[WinRE で DISM /revertpendingactions 実行]
K --> L{解消?}
L -- はい --> Z
L -- いいえ --> M[修復アップグレードまたはクリーンインストール検討]
M --> Z
よくある失敗例と対処
失敗例: DISM がファイルをダウンロードできずに失敗する。
- 対処: ネットワーク、プロキシ、ファイアウォールを確認する。オフラインソースの ISO を使用して /Source を指定する。
失敗例: pending.xml を削除できない。
- 対処: 所有権を取得してから削除する、またはセーフモードで処理する。
失敗例: レジストリキーが削除できない。
- 対処: レジストリのアクセス許可を変更するか、管理者でコマンドを実行する。操作前に必ずバックアップを取る。
リスクマトリクスと緩和策
- 誤ったレジストリ編集: 高リスク → 復元ポイント作成、レジストリのエクスポート
- 所有権変更で他ユーザーに影響: 中リスク → 必要最小限で実施、操作ログを残す
- DISM の失敗で長時間待つ: 低リスク → ログを確認し、オフラインソースを用意
1行用語集
- SFC: システムファイルチェッカー。システムファイルの整合性を検査・修復するツール。
- DISM: イメージの修復・管理ツール。/RestoreHealth や /revertpendingactions を利用。
- WinRE: Windows 回復環境。ブート修復やコマンド実行が可能。
- pending.xml: WinSxS 内にある保留中の構成変更を表すファイル。
まとめ
このエラーは、ほとんどの場合「再起動」や「保留中フラグの削除」で解決します。まずは安全な操作(再起動、バックアップ、SFC と DISM の順)から試し、解決しない場合は WinRE での復旧や最終的に修復アップグレード/クリーンインストールを検討してください。作業前には必ずデータのバックアップを行い、レジストリ編集や所有権変更は慎重に行ってください。
重要: 本記事のコマンドは管理者権限が必要です。操作に不安がある場合は専門家に相談してください。