PCショップ時代の持ち込みで「システムファイルの破損」は定番だった

PCショップで修理担当をやっていた頃、「最近パソコンの調子がおかしい」という曖昧な相談を受けたら、自分はまず信頼性モニター(perfmon /rel)を開いて、次にコマンドプロンプトで sfc /scannow を走らせていた。この2つだけで原因の方向性が見えることが多かったんですよね。

システムファイルというのは、Windowsが動くために必要な裏方のファイル群のこと。Windows Updateの失敗、突然の電源断、ドライバの競合なんかで壊れることがある。壊れると、エクスプローラーが固まる、設定アプリが開かない、ブルースクリーンが出るといった「なんか変」な症状が散発する。

Windowsにはこの破損を自動で検出・修復するコマンドが2つ用意されている。SFC(System File Checker)とDISM(Deployment Image Servicing and Management)だ。どちらもコマンドプロンプトに1行打つだけ。ただし実行する順番を間違えると意味がないので、そこだけ押さえておきたい。

SFCとDISMの役割の違い、ざっくり言うとこう

この2つ、名前も機能も似ているようで実はやっていることが違う。

SFC(sfc /scannow)は、Windows上の保護されたシステムファイルをスキャンして、壊れているものがあればキャッシュ済みのコピーで置き換えてくれるツール。修復の「実行役」だと思えばいい。

DISM(DISM /Online /Cleanup-Image /RestoreHealth)は、SFCが修復に使う「元データ」を整備するツール。Windowsのコンポーネントストア(WinSxSフォルダ)という部品倉庫を点検して、破損があればWindows Updateのサーバーから正しいファイルをダウンロードして直す。

つまり、SFCが「壊れたファイルを差し替える大工さん」なら、DISMは「大工さんに渡す建材を仕入れてくる資材屋さん」。資材が壊れていたら大工さんがいくら頑張っても直せない。だからDISMを先に実行して、そのあとSFCを走らせるのが正しい順番なんです。

自分の工房でも7台のPCを運用していて、Windows Update後に挙動がおかしくなったときはこの順番で必ず走らせている。15年やっていても、この手順だけは毎回同じ。逆に言えば、毎回これで済む程度にはよくできた仕組みだったりする。

DISM → SFC の実行手順

管理者権限のコマンドプロンプトが必要になる。開き方から順に書いていく。

Step 1:管理者としてコマンドプロンプトを開く

タスクバーの検索ボックスに cmd と入力する。検索結果に「コマンド プロンプト」が出てくるので、右クリックして「管理者として実行」を選ぶ。ユーザーアカウント制御のダイアログが出たら「はい」をクリック。

Windows 11ではスタートボタンを右クリック →「ターミナル(管理者)」でもいい。Windows ターミナルが開いたら、そのままコマンドを打てる。

Step 2:DISMを実行する

以下のコマンドをコピーして貼り付け、Enterキーを押す。

DISM.exe /Online /Cleanup-Image /RestoreHealth

処理が始まると進捗がパーセントで表示される。環境によるけど、だいたい10分から30分くらいかかる。途中で「20.0%」のまま数分止まることがあるが、裏でダウンロード中なので放っておいて大丈夫。ウィンドウを閉じないこと。

完了すると「復元操作は正常に完了しました。」と表示される。「コンポーネント ストアの破損が検出されました。」と出た場合は、DISMが破損を見つけて修復したということ。どちらにしても次のステップに進む。

Step 3:SFCを実行する

同じコマンドプロンプトで、続けて以下を入力してEnter。

sfc /scannow

sfc/ の間に半角スペースが必要。忘れると動かない)

検証が始まり、100%まで進むと結果が4パターンのどれかで表示される。

  • 「Windows リソース保護は、整合性違反を検出しませんでした。」→ 問題なし。修復の必要なし
  • 「…破損したファイルを検出し、正常に修復しました。」→ 破損があったが自動修復された。再起動して完了
  • 「…破損したファイルを検出しましたが、その一部を修復できませんでした。」→ DISMを再実行してからもう一度SFCを走らせる。それでもダメなら後述の対処法へ
  • 「Windows リソース保護は要求された操作を実行できませんでした。」→ セーフモードで再実行を試す

修復が完了したらPCを再起動する。再起動しないと修復内容が反映されないことがある。

24H2で「毎回破損が見つかる」バグに注意

Windows 11 24H2にアップグレードした直後の時期に、sfc /scannow を実行するたびに「破損したファイルを検出し、正常に修復しました」と表示されるバグが発生していた。何度走らせても同じ結果が出る。自分の工房の検証機でもこの症状を確認した。

Microsoftはこの問題を認め、2024年10月のプレビュー更新プログラムKB5044384(Build 26100.2152)で修正している。2026年6月時点で最新のWindows Updateを適用していれば、このバグは解消済み。

もし24H2で sfc /scannow が毎回破損を報告する場合は、まずWindows Updateで未適用の更新がないか確認してほしい。「設定」→「Windows Update」→「更新プログラムのチェック」で最新まで当てたあと、もう一度SFCを走らせて結果が変わるかどうかを見る。

SFC・DISMでも直らないときの次の手

SFCとDISMを何度回しても「修復できませんでした」が出る場合、破損がシステムファイルの範囲を超えている可能性がある。そういうときに試せる手段は3つ。

1. システムの復元で「おかしくなる前」に戻す

復元ポイントが残っていれば、調子が悪くなる前の状態に巻き戻せる。「設定」→「システム」→「バージョン情報」→「システムの保護」→「システムの復元」から実行する。自分は工房の全7台で、レジストリ編集やドライバ更新の前に手動で復元ポイントを作るルールにしている(ちなみに説明欄に日付と作業内容を書いておくと、あとから探すときに助かる)。

2. 上書きインストール(インプレースアップグレード)

Windowsのインストールメディア(USBまたはISO)からセットアップを起動して、「個人用ファイルとアプリを引き継ぐ」を選んでインストールし直す方法。アプリも設定もファイルもそのままで、システムファイルだけが新品に置き換わる。SFC・DISMで直らない深刻な破損でも、これで直るケースは多い。

Microsoftの公式ページからインストールメディアを作成できる。ダウンロードには数十分かかるので、時間があるときに用意しておくと安心。

3. 「このPCをリセット」のクラウドダウンロード

「設定」→「システム」→「回復」→「PCをリセットする」から実行する。「個人用ファイルを保持する」を選べばデスクトップやドキュメント内のファイルは残るが、インストール済みのアプリと設定は全部消えるので注意。

リセット方法は「ローカル再インストール」と「クラウドダウンロード」の2択が出る。ぶっちゃけ、光回線がある環境なら最初からクラウドダウンロードを選んだほうが確実。ローカル再インストールはシステムファイルが壊れている状態だとそもそも失敗しやすい。工房でも何度かローカルで失敗して結局クラウドに切り替えた経験がある。

FAQ

SFCとDISM、どちらを先に実行すべき?

DISMが先。DISMがSFCの修復に使う「元データ」を整備するツールなので、先にDISMでコンポーネントストアを直してからSFCを走らせるのが正しい順序。Microsoftの公式サポートページでもこの順序が案内されている。

sfc /scannow はどれくらい時間がかかる?

環境にもよるが、SSD搭載機で5分から15分程度。HDD搭載機だと30分近くかかることもある。DISMは10分から30分が目安。どちらも途中でウィンドウを閉じたり電源を切ったりしないこと。

SFCで「修復できませんでした」と出た場合、データは消える?

SFC自体はシステムファイルだけを対象にするので、ユーザーのデータ(写真、文書、動画など)には影響しない。ただし、SFCで直せないほどの破損がある場合は上書きインストールやリセットが必要になることがあり、その場合はアプリの再インストールが必要になる。念のためバックアップは取っておくのが安全。

セーフモードでSFCを実行する方法は?

「設定」→「システム」→「回復」→「今すぐ再起動」(PCの起動をカスタマイズする)でWindows回復環境に入る。「トラブルシューティング」→「詳細オプション」→「スタートアップ設定」→「再起動」で、セーフモード(コマンドプロンプトを有効にする)を選択。起動後にコマンドプロンプトが開くので、そこで sfc /scannow を実行する。

参考文献