Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

DISMとSFCコマンドでWindowsイメージの破損を確認・修復する完全ガイド

SFCSystem File Checker)とDISMDeployment Image Servicing and Management)のコマンドを使用すると、Windows(Windows Server)イメージのシステムファイルやコンポーネントストア(Component Store)の整合性をチェックし、破損を修復できます。これらのツールは、Windowsが不安定になったり起動しなくなったりした場合、標準アプリやサービスの実行時にエラーが表示される場合、ウイルス感染後などに非常に役立ちます。

この記事では、SFC /ScanNowDISM /Online /Cleanup-Image /RestoreHealth、または Repair-WindowsImage -Online -RestoreHealth コマンドを使用して、Windows 10/11 および Windows Server 2022/2019/2016 のイメージとシステムファイルを修復する方法を解説します。

SFC /ScanNow:システムファイルチェッカーでWindowsのシステムファイルを修復する

推奨される手順は、まずSFCツールでシステムファイルの整合性を確認し、その後にDISMコマンドでWindowsを復元することです。sfc /scannow コマンドは保護されたシステムファイルをスキャンし、ファイルが欠落していたり破損していたりする場合は、Windowsコンポーネントストア(C:\Windows\WinSxS フォルダー)から元のコピーを復元しようとします。

SFCツールはすべての動作ログを %windir%\logs\cbs\cbs.log に書き込みます。CBS.log ファイル内のSFC関連のエントリにはすべて [SR] のタグが付いています。ログからSFCに関連するエントリだけを抽出するには、次のコマンドを実行します。

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfc.txt"

sfc /scannow コマンドが「Windows リソース保護は破損したファイルを検出しましたが、一部のファイルを修復できませんでした」というエラーを返した場合、ツールがWindowsコンポーネントストアから必要なファイルを取得できなかった可能性があります。

このような場合は、DISM.exe コマンドを使用してWindowsイメージのコンポーネントストアを修復してみてください。DISM(Deployment Image Servicing and Management)ツールは、Vista以降のすべてのバージョンのWindowsに搭載されています。

Windowsイメージの修復後、改めてSFCを使用してシステムファイルを復元できます。

DISMでWindowsコンポーネントストアの状態をチェックする

DISM /Cleanup-Image /CheckHealth スイッチは、Windowsイメージのエラーをスキャンして修正するために使用します。DISMコマンドは必ず管理者権限で起動したコマンドプロンプトから実行してください。

次のコマンドを実行すると、Windowsイメージのコンポーネントストアに破損のフラグが立っていないかを確認できます(Windows 7/Server 2008 R2では使用できません)。このコマンドは、システムのメンテナンスプロセスによって設定された CBSフラグ をチェックするものです。

DISM /Online /Cleanup-Image /CheckHealth

このコマンドはコンポーネントストアの完全なスキャンを行いません。Windowsイメージに破損のフラグが立っているか、修復可能かどうかを確認するだけです。イメージへの変更は一切行われません。

実行例として、Windows 10のイメージに破損がない場合は次のように表示されます。

No component store corruption detected.
The operation completed successfully.

Windowsコンポーネントストアの状態を完全にスキャンするには、次のコマンドを実行します。

DISM /Online /Cleanup-Image /ScanHealth

このスキャンにはかなり時間がかかることがあります(10〜30分程度)。結果は以下の3つのいずれかになります。

  • No component store corruption detected – コンポーネントストアにエラーは見つかりませんでした。
  • The component store is repairable – コンポーネントストアにエラーが検出されましたが、修復可能です。
  • The component store is not repairable – DISMではコンポーネントストアを修復できません(新しいバージョンのDISMを試すか、バックアップからの復元、Windowsの初期化または再インストールが必要になります)。

なお、Windows 7およびWindows Server 2008で DISM /ScanHealth を使用するには、更新プログラム KB2966583 をインストールしておく必要があります。未適用の場合は「Error 87. The ScanHealth option is not recognized in this context」というメッセージが表示されます。

場合によっては、DISM /ScanHealth が次のようなエラーを返すことがあります。

  • DISM エラー 1726 – 「リモート プロシージャ呼び出しに失敗しました」
  • DISM エラー 1910 – 「指定されたオブジェクト エクスポーターが見つかりませんでした」

これらのエラーが出た場合は、Windowsイメージが破損していることが確実であり、修復が必要です。

DISM /RestoreHealthでWindowsイメージを修復する

Windowsイメージのコンポーネントストアの破損を修正するには、DISMコマンドの RestoreHealth オプションを使用します。このオプションにより、Windowsイメージで検出されたエラーを修正し、破損または欠落しているコンポーネントのファイルを、Windows Updateから自動的にダウンロードした正規のファイルと置き換えることができます(コンピューターがインターネットに直接接続できる必要があります)。次のコマンドを実行します。

DISM /Online /Cleanup-Image /RestoreHealth

コンポーネントストアのスキャンと修復の処理にはかなり時間がかかります(30分以上)。DISMは破損または欠落しているコンポーネントのファイルを、Windows Updateサーバーから取得した正規のファイルバージョンで自動的に置き換えます。

修復が成功すると、次のメッセージが表示されます。

The restore operation completed successfully.

DISM /RestoreHealthで「ソースファイルが見つからない」エラーが出る場合の対処法

コンピューター(サーバー)がインターネットに直接接続できない環境(プロキシ経由、社内WSUS経由で更新プログラムを配布している環境など)にある場合や、Windows Updateサービスが無効化・破損している場合は、コンポーネントストアの修復中に次のようなエラーが発生します。

  • 0x800f0906 – ソースファイルをダウンロードできませんでした。「ソース」オプションを使用して、機能の復元に必要なファイルの場所を指定してください。
  • 0x800f0950 – DISMに失敗しました。操作は実行されませんでした。
  • 0x800F081F – ソースファイルが見つかりませんでした。「ソース」オプションを使用して、機能の復元に必要なファイルの場所を指定してください。

これらの場合は、代わりのソースからコンポーネントストアのファイルを入手できます。利用できるのは以下の通りです。

  • インストールディスク/USBメモリ/ISOイメージ
  • マウントした wim/esd ファイル
  • インストールディスク内の \sources\SxS フォルダー
  • Windowsインストールイメージを含む install.wim(esd)ファイル

システムファイルの修復ソースとして、正規のWindowsインストールイメージを含むWIMまたはESDファイルを指定できます。たとえば、Windows 11のインストールISOを仮想ドライブ D: にマウントしたとします。

注意: ローカルソースからコンポーネントストアの破損ファイルを修復するには、WIM/ESDイメージ内のWindowsのビルド番号とエディションが、修復対象のシステムと一致している必要があります。

次のPowerShellコマンドで、コンピューターにインストールされているWindowsのバージョンを確認できます。

Get-ComputerInfo |select WindowsProductName,WindowsEditionId,WindowsVersion, OSDisplayVersion

インストールwimイメージに含まれるWindowsエディションの一覧を表示します。

Get-WindowsImage -ImagePath "D:\sources\install.wim"

この例では、install.wim ファイル内のWindows 11 Proイメージの ImageIndex = 6 です。

ローカルのWIM/ESDファイルをソースとして使用し(Windows Updateのオンラインサービスを使わずに)、コンポーネントストアを修復するには、次のコマンドを実行します(イメージファイル内のWindowsバージョンのインデックス番号を忘れずに指定してください)。

DISM /online /cleanup-image /restorehealth /source:WIM:D:\sources\install.wim:6 /limitaccess
または
DISM /online /cleanup-image /restorehealth /source:ESD:D:\sources\install.esd:6 /limitaccess

DISM /RestoreHealth コマンドの実行時には、次のようなエラーが発生することがあります。

  • Error: 50: DISM does not support servicing Windows PE with the /Online option – DISMがWinPEイメージ上で実行されていると認識していることを意味します。この問題を解決するには、レジストリキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT を削除してください。
  • DISM Error 87: DISMコマンドの記述が正しいか確認し、お使いのWindowsバージョンに対応したDISMのバージョンを使用しているか確認してください(WinPE/WinREで起動した場合によく発生します)。

システムファイルのスキャンと修復に関するDISMのログは、C:\Windows\Logs\CBS.log で確認できます。

コンポーネントストアの修復後、システムファイルチェッカー(sfc /scannow)を再度実行できます。今度は破損または欠落していたシステムファイルを正常に復元できるはずです(「Windows リソース保護は破損したファイルを検出し、それらを正常に修復しました」と表示されます)。

SFC.exeがシステムファイルの破損を検出しなかった場合は、次のメッセージが表示されます。

Windows Resource Protection did not find any integrity violations.

Repair-WindowsImage:PowerShellでWindowsイメージのコンポーネントストアを修復する

Windows 10/11 および Windows Server 2016/2019/2022 のPowerShellには、前述のDISMコマンドに相当するコマンドレットが用意されています。Windowsコンポーネントストアをスキャンして破損を検索するには、次のコマンドを実行します。

Repair-WindowsImage -Online –ScanHealth

コンポーネントストアにエラーが見つからなかった場合は、次のように表示されます。

ImageHealth State: Healthy

Windowsコンポーネントストアのファイルを修復するには、次のコマンドを実行します。

Repair-WindowsImage -Online -RestoreHealth

インターネットに直接接続できない環境では、このコマンドが修復処理中にハングすることがあります。その場合は、Windows 10のインストールISOイメージからコピーしたローカルのWindowsイメージファイル(install.wim/install.esd)からシステムコンポーネントを復元できます。この場合も、復元ソースとしてwimファイル内のWindowsバージョンのインデックスを指定する必要があります。

Repair-WindowsImage -Online -RestoreHealth -Source F:\sources\install.wim:5 -LimitAccess

DISMをオフラインで使用してWindowsイメージを修復する

Windowsが正常に起動しない場合は、DISMを使用してオフライン状態でWindowsイメージのシステムファイルをチェック・修復できます。更新プログラムのインストール後にWindowsが起動しなくなった場合は、まず最新の更新プログラムのアンインストールを試みてください。

  1. Windowsインストールイメージからデバイスを起動し(Media Creation Toolで起動可能なUSBメモリを作成できます)、Windowsセットアップの初期画面で Shift + F10 を押します。
  2. WinPEで割り当てられたドライブ文字を確認するには、diskpartlist vol コマンドを実行します(この例では、Windowsがインストールされているディスクにドライブ文字 C:\ が割り当てられており、以降のコマンドでこれを使用します)。
  3. 次のコマンドでシステムファイルをチェックし、破損したファイルを修復します:sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
  4. オフラインのWindowsイメージを修復するには、次のコマンドを使用します(ここでは、起動に使用したWindows 10インストールイメージのWIMファイルを、オフラインイメージの復元ソースとして使用しています):
    Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim
  5. 対象ディスクの空き容量が不足している場合は、別のドライブ(例:F:\)が必要です。そこに空のフォルダー mkdir F:\scratch を作成し、スクラッチディレクトリを指定してコンポーネントストアの修復を実行します:Dism /image:C:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /ScratchDir:F:\scratch

ヒント: 管理者が知っておくべき便利なDISMパラメーターを紹介します。

  • DISM /Add-Package – MSU/CAB形式の更新ファイルをインストールし、セキュリティ更新プログラムをWindowsイメージに統合します。
  • DISM /Get-Drivers – インストール済みドライバーの一覧を取得します。
  • DISM /Add-Driver – Windowsインストールイメージにドライバーを注入します。
  • DISM /Add-Capability – Features on Demand(FoD)経由で追加のWindows機能をインストールします(例:RSAT、OpenSSHサーバー、Windows SSHクライアントなど)。
  • DISM /Enable-Features/Disable-Features – Windowsコンポーネントの有効化・無効化を行います(例:SMBv1プロトコルなど)。
  • Dism.exe /StartComponentCleanup – コンポーネントストアをクリーンアップし、古いコンポーネントのバージョン(WinSxSフォルダー内)を削除します。
  • Dism /set-edition – 再インストールせずに評価版から製品版へWindowsをアップグレードします。
  1. Windows 11を修復する6つの方法|フリーズや不具合を解消する対処法まとめ

    Windows 11にアップグレードした後、何らかの問題が発生していませんか?「Windows 11の修復方法を知りたい」とお探しの方は、まさにうってつけの記事です。 システムクラッシュ、アプリが応答しない、いつもより動作が遅いといったトラブルに直面している場合でも、いくつかのトラブルシューティング手法を使えば、PCを素早く修理して、短時間で再び快適に使い始めることができます。 本記事では、Windows 11を修復し、デバイスのパフォーマンスを最適化して、エラーやバグを解消するための6つの方法をご紹介します。 それでは早速見ていきましょう。 Windows 11を修復する方法 方法1:デバ

  2. Windows 11とWindows 10を修復する5つの必須コマンド|コマンドプロンプトでの直し方

    最新のWindows 11には数多くの新機能と改善が盛り込まれ、対応デバイス向けに無料アップグレードとして提供されています。お使いのデバイスがWindows 11の最小システム要件を満たしていれば、アップグレードして最新OSを快適に利用できます。しかし、長期間の使用により不具合が発生したり、マルウェアに感染したり、カーソルだけが表示されるブラックスクリーンやブルースクリーンエラーが発生することもあります。「Windows 11の更新後にノートPCがフリーズする」「起動時に黒い画面のまま進まない」といった報告も多く寄せられています。Windows 11の問題を解決する方法はいくつかありますが、本