Windows Resource Protection が実行できないときの対処法

Windows の診断ツールである System File Checker(SFC)は、システムの整合性違反を修復するためによく使われます。しかし、sfc /scannow を実行したときに「Windows Resource Protection could not perform the requested operation」というエラーが表示されることがあります。診断ツール自身の診断が必要になる、やや扱いにくい状況です。この記事では原因の切り分けと段階的な対処法を、初級から上級まで整理して解説します。
目次
- はじめに — Windows Resource Protection とは
- 原因の切り分け
- 主要な修復手順(6つのステップ)
- 追加の上級トラブルシューティング
- いつ失敗するか(反例)と代替手法
- 現場用チェックリストと SOP
- よくある質問
- 要点まとめ
Windows Resource Protection とは
Windows Resource Protection(WRP)は、重要なシステムファイル、フォルダー、レジストリのキーを置き換えや変更から保護する Windows の仕組みです。WRP は誤った変更によるアプリや OS の故障を防ぐことを目的としています。
1 行定義: WRP は重要リソースの上書きや削除を防ぐシステム保護層です。
もし WRP が操作を拒否するなら、それは「現在の実行がシステムに害を及ぼす可能性がある」と判断しているためです。ただし、SFC 自体は通常安全な操作です。実行に自信がある場合は以下の手順で進めてください。
原因の切り分け
エラーの一般的な原因は次のいずれかです。
- ディスク(ファイルシステム)に不整合がある
- SFC 自身が異常/競合状態にある
- 別のプロセスやサービスがファイルをロックしている
- Windows Modules Installer(TrustedInstaller)が無効になっている
まずは各原因を一つずつ切り分け、最もリスクの低い手順から実行します。
主要な修復手順
以下は推奨される順番での対処法です。各手順は完了後に sfc /scannow を再度実行して確認してください。
1. CHKDSK でディスクをチェックする
他の診断ツールで SFC を直すことができる場合があります。chkdsk はディスクの不良セクタやファイルシステムの不整合を修復します。
管理者特権のコマンドプロンプトを開き、次を実行します。
chkdsk /r
注意点:
- ボリュームが使用中だと、再起動時にスケジュールされます。Y を押して再起動時に実行してください。
- chkdsk は時間がかかることがあるので、終了するまで電源を切らないでください。
再起動後、chkdsk が完了したら sfc /scannow を再実行します。
2. セーフモードで SFC を実行する
常駐プロセスが原因の場合、セーフモードなら最小限のプロセスしか動作しません。
- Win + R を押して、msconfig と入力し Enter。
- ブート タブを開き、Boot options の下で Safe boot にチェックを入れ、Minimal を選択。
- OK して再起動。
セーフモードで起動したら管理者としてコマンドプロンプトを開き、sfc /scannow を実行します。
3. Windows Recovery Environment(WinRE)で SFC を実行する
セーフモードに入りたくない、あるいは通常の Windows が起動しない場合は WinRE から実行します。
- Win + I → 更新とセキュリティ → 回復。
- 高度な起動の下で「今すぐ再起動」を選択。
- トラブルシューティング → 詳細オプション → コマンドプロンプト を選ぶ。
WinRE のコマンドプロンプトでは、オフラインイメージに対して SFC を実行できます(後述のオフライン SFC を参照)。
4. Windows Modules Installer(TrustedInstaller)を有効にする
TrustedInstaller サービスが無効だと、SFC が WRP を復元できません。サービスの状態を確認します。
- Win + R → services.msc → Enter。
- Windows Modules Installer を探してダブルクリック。
- スタートアップの種類が無効になっている場合は手動に変更して OK。
設定を変更したら sfc /scannow を再実行します。
5. 自動修復を試す
Windows RE の自動修復は、問題のある起動構成や破損したシステムファイルを自動的に検出・修復しようとします。ファイルを消去したり設定を初期化したりはしません。
WinRE → トラブルシューティング → 詳細オプション → 自動修復 を選択して実行してください。
自動修復が成功したら再起動して sfc を試します。
6. Windows の再インストール(最後の手段)
上記のいずれでも解決しない場合は、クリーンインストールやリフレッシュを検討します。作業前に必ず重要データをバックアップしてください。再インストールは最終手段です。
追加の上級トラブルシューティング(価値追加)
ここからは、上級者向けの追加手法です。状況に応じて試してください。
DISM でイメージを修復する(推奨)
SFC がイメージからファイルを復元できない場合、DISM(Deployment Image Servicing and Management)を使ってイメージを修復します。管理者権限で次を順に実行してください。
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
RestoreHealth が失敗する場合は、Windows の正常なイメージをソースとして指定して実行する必要があります(例: /Source:WIM:X:\sources\install.wim:1)。
注意: /Online は稼働中の OS に対して実行します。WinRE や別ディスクからはオフライン修復も可能です。
オフライン SFC(イメージを指定して実行)
WinRE のコマンドプロンプトで次のように実行できます(例):
sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
オフライン SFC は、起動中の OS に依存せずにファイルを検査・復元できます。
CBS.log の確認と手動修復
SFC の詳細ログは C:\Windows\Logs\CBS\CBS.log に出力されます。問題のあるファイル名が記録されていれば、別の正常なシステムから該当ファイルを持ってきて置き換えたり、パーミッションを調整できます。
ログは非常に冗長です。検索キーワード: “SR” や “cannot repair” を使って関連エントリを絞ります。
クリーンブートで競合検証
常駐ソフトやドライバーが原因の場合、クリーンブートでの SFC 実行で切り分けできます。
- msconfig → サービス タブ → Microsoft のサービスを隠す → すべて無効化。
- タスクマネージャーでスタートアップアプリを無効化。
- 再起動して sfc を実行。
権限と所有権の修正
一部のシステムファイルの所有者や ACL が壊れている場合、TrustedInstaller に戻す必要があります。takeown や icacls、そして SC コマンドでサービス登録を確認します。
例: 所有者を TrustedInstaller に戻すには、まず TrustedInstaller の SID を使用するか、手作業で操作します。操作はリスクがあるため、実施前に必ずバックアップしてください。
システムの復元またはバックアップからの復旧
最近の復元ポイントやイメージバックアップがある場合、そこに戻すのが確実で安全な手段です。データの整合性を保ちながら、既知の良好な状態に復帰できます。
いつこの方法が失敗するか(反例)と代替手段
- ディスクが物理的に故障している場合: chkdsk やソフトウェア修復では治りません。ハードウェア交換が必要です。
- システムイメージ自体が重大に破損している場合: DISM や SFC でも回復できないことがあります。その場合はバックアップから復元、またはクリーンインストールが必要です。
- セキュリティ製品(アンチウイルス/エンドポイント保護)がファイルを監視/隔離している場合: 一時的に無効化して試すか、保護ログを確認してください。
代替アプローチ:
- 別の正常な同バージョンの Windows から必要ファイルを持ってきて置換する(上級者向け)
- システムイメージでリカバリを行う
- ハードウェア診断ツールで物理的な不良を確認する
現場用チェックリスト(役割別)
管理者向け:
- 管理者権限でコマンドプロンプトを開く
- chkdsk /r を実行・再起動して完了させる
- DISM の /RestoreHealth を実行する
- TrustedInstaller サービスを確認する
- sfc /scannow を実行して結果を確認する
エンドユーザー向け:
- 重要ファイルのバックアップを取得する
- 再起動してセーフモードで試す
- セキュリティソフトの一時無効化を検討する(管理者に相談)
運用担当者向け:
- CBS.log を保存して解析用に確保する
- システムイメージとバックアップの有無を確認する
- 変更記録(誰がいつ何を実行したか)を残す
SOP(簡易手順)
- バックアップ取得
- chkdsk /r を実行し再起動
- DISM /RestoreHealth を実行
- sfc /scannow を実行
- 必要なら WinRE でオフライン SFC を実施
- 解決しない場合はシステム復元または再インストール
マインドセットとヒューリスティクス(判断基準)
- まず安全策(バックアップ)を取る。
- 低リスク・低侵襲の手順から試す(ディスクチェック → イメージ修復 → セーフモード)。
- 物理的な問題かソフトウェア的な問題かを早期に切り分ける。
トラブルシューティング フローチャート
flowchart TD
A[エラー発生: sfc /scannow エラー] --> B{ディスク不良の可能性}
B -- Yes --> C[chkdsk /r を実行 -> 再起動 -> sfc 再実行]
B -- No --> D{TrustedInstaller が有効か}
D -- No --> E[Services: Windows Modules Installer を手動に設定 -> sfc 再実行]
D -- Yes --> F{競合プロセスの可能性}
F -- Yes --> G[セーフモードまたはクリーンブートで sfc 実行]
F -- No --> H[DISM /RestoreHealth 実行 -> sfc 再実行]
H --> I{解決}
I -- Yes --> J[完了]
I -- No --> K[WinRE でオフライン SFC またはシステム復元]
K --> L{解決}
L -- No --> M[再インストールを検討]
よくある質問
Q: sfc /scannow はデータを消しますか?
A: いいえ。sfc /scannow はシステムファイルの整合性をチェックし、必要なら復元します。ユーザーデータを削除するものではありません。ただし操作前にバックアップを取ることを推奨します。
Q: DISM を実行しても RestoreHealth が失敗しました。どうする?
A: ネットワークに接続できる環境であれば、/Source を指定して正常な install.wim や Windows 更新ソースから修復する方法を検討します。最終的にはイメージの復元や再インストールが必要になることがあります。
Q: TrustedInstaller を手動で無効にしていました。戻す方法は?
A: services.msc で Windows Modules Installer のスタートアップの種類を「手動」に変更し、サービスを開始してください。その後 sfc を実行します。
Критерии приёмки
- sfc /scannow を実行して “Windows Resource Protection did not find any integrity violations” または “Windows Resource Protection found corrupt files and successfully repaired them” のいずれかが表示されること。
- システムが通常通り起動し、アプリやサービスに異常がないこと。
要点まとめ
- まずバックアップを取る。
- chkdsk と DISM を順に試す。
- セーフモードや WinRE を利用して競合を排除する。
- TrustedInstaller サービスを確認する。
- それでもだめならシステム復元や再インストールを検討する。
重要: 物理的ハードウェア故障や重大なイメージ破損の場合はソフトウェア修復で解決しないことがあります。その場合はハードウェア交換やバックアップからの復元が必要です。
FAQ と手順は現場での初動に使えるようにまとめました。問題が長引く場合は、ログ(CBS.log)を保存して詳しい解析者に引き継ぐことを推奨します。