【Windows】ファイル破損をコンポーネントストアの修復(DISM)で解決する手順 | エラーコード:0x80070246

【Windows】ファイル破損をコンポーネントストアの修復(DISM)で解決する手順 | エラーコード:0x80070246
🛡️ 超解決

Windowsのシステムファイル破損は、OSの不安定化やアプリケーションの起動失敗など、業務に深刻な影響を及ぼすことがあります。

特にエラーコード0x80070246が表示される場合、Windowsコンポーネントストアの破損が原因である可能性が高いです。

この記事では、DISM Deployment Image Servicing and ManagementコマンドとSFC System File Checkerコマンドを使い、この問題を解決する具体的な手順を解説します。

【要点】DISMコマンドでWindowsシステムファイルを修復する手順

  • SFCコマンド: システムファイルの整合性チェックと軽微な破損の修正を行います。
  • DISMコマンドのCheckHealth: Windowsコンポーネントストアの状態を診断し、問題の有無を確認します。
  • DISMコマンドのRestoreHealth: Windowsコンポーネントストアの破損を修復し、システムを正常な状態に戻します。

ADVERTISEMENT

Windowsシステムファイル破損とコンポーネントストアの役割

Windowsのシステムファイルは、OSの起動や基本的な機能の実行に不可欠な要素です。

これらのファイルが破損すると、システムが不安定になったり、特定の機能が期待通りに動作しなくなったりします。

コンポーネントストアは、Windowsのシステムファイルを管理するための重要なデータベースです。

Windows Updateの適用失敗や予期せぬシャットダウン、マルウェア感染などにより、このコンポーネントストア自体が破損することがあります。

エラーコード0x80070246は、ファイルシステムの破損やセキュリティアクセス権の問題を示唆することが多く、DISMコマンドによるコンポーネントストアの修復が特に効果的です。

DISMコマンドは、Windowsのシステムイメージ(OSの基本構成)を管理し、破損を修復するためのコマンドラインツールです。

エラーコード0x80070246が発生する主な原因

このエラーコードは、Windowsが特定のファイルまたはディレクトリにアクセスしようとした際に、アクセス拒否が発生したことを意味します。

主な原因としては、ファイルシステムの論理的な破損、システムに必要なファイルのセキュリティアクセス権の欠如、またはディスク自体の物理的な問題が挙げられます。

コンポーネントストアが破損していると、システムファイルへのアクセスが阻害され、このエラーが発生しやすくなります。

DISMコマンドは、このようなコンポーネントストアの不整合を修復し、システムファイルが正しく機能する状態に戻すことで、エラーの解決に繋がります。

DISMコマンドとSFCコマンドでシステムファイルを修復する手順

Windowsのファイル破損やコンポーネントストアの問題を解決するには、SFCコマンドとDISMコマンドを組み合わせて使用することが推奨されます。

以下の手順で実施してください。

  1. 管理者としてコマンドプロンプトまたはWindowsターミナルを起動する
    タスクバーの検索ボックスに「cmd」または「ターミナル」と入力します。
    検索結果に表示される「コマンドプロンプト」または「Windowsターミナル」を右クリックし、「管理者として実行」を選択します。
    ユーザーアカウント制御のダイアログが表示されたら、「はい」をクリックして許可します。
  2. SFCコマンドを実行してシステムファイルの整合性を確認する
    管理者コマンドプロンプトまたはWindowsターミナルで、sfc /scannowと入力し、Enterキーを押します。
    このコマンドは、保護されているすべてのシステムファイルの整合性をスキャンし、問題が検出された場合は破損したファイルを正しいバージョンに置き換えます。
    完了までには時間がかかる場合があります。
  3. DISMコマンドでコンポーネントストアの状態をチェックする
    SFCコマンドの実行後、次にDISMコマンドでコンポーネントストアの状態を確認します。
    DISM /Online /Cleanup-Image /CheckHealthと入力し、Enterキーを押します。
    このコマンドは、コンポーネントストアに破損があるかどうかを素早くチェックし、問題の有無を報告します。
    破損が検出された場合は、次のステップに進みます。
  4. DISMコマンドでコンポーネントストアのスキャンを実行する
    さらに詳細なスキャンを行うため、DISM /Online /Cleanup-Image /ScanHealthと入力し、Enterキーを押します。
    このコマンドは、コンポーネントストアをより深くスキャンし、破損の程度を詳細に診断します。
    完了までに数分から数十分かかる場合があります。
  5. DISMコマンドでコンポーネントストアを修復する
    破損が検出された場合は、DISM /Online /Cleanup-Image /RestoreHealthと入力し、Enterキーを押します。
    このコマンドは、Windows Updateを通じて修復に必要なファイルをダウンロードし、コンポーネントストアの破損を自動的に修復します。
    インターネット接続が必要であり、完了までに時間がかかります。修復の進捗状況が表示されます。
  6. PCを再起動する
    DISMコマンドによる修復が完了したら、PCを再起動します。
    これにより、修復された変更がシステムに完全に適用されます。
  7. 再度SFCコマンドを実行し最終確認を行う
    PCの再起動後、再度管理者としてコマンドプロンプトまたはWindowsターミナルを起動し、sfc /scannowを実行します。
    コンポーネントストアが修復されたことで、SFCコマンドが以前修復できなかったシステムファイルを正しく修復できるようになる可能性があります。
    「Windowsリソース保護は、整合性違反を検出しませんでした。」と表示されれば、修復は成功です。

Windows 10での操作の違い

Windows 10でも、上記のSFCコマンドおよびDISMコマンドは同様に機能します。

管理者コマンドプロンプトの起動方法は、Windows 11と同様に検索ボックスから行うか、スタートボタンを右クリックして表示されるメニューから「コマンドプロンプト 管理者」または「Windows PowerShell 管理者」を選択することで実行できます。

コマンドの内容や実行結果も基本的に同じです。

修復がうまくいかない場合の追加対処と確認点

上記の手順を試しても問題が解決しない場合や、特定の状況下でエラーが発生する場合は、以下の点を確認してください。

インターネット接続がない環境で修復に失敗してしまう

DISMコマンドのRestoreHealthは、修復に必要なファイルをWindows Updateからダウンロードすることがあります。

そのため、インターネット接続がない環境では修復が完了できない場合があります。

オフライン環境で修復を行う場合は、Windowsインストールメディア(ISOファイルやUSBメモリなど)をソースとして指定する必要があります。

例えば、インストールメディアがDドライブにマウントされている場合、以下のコマンドを使用します。

  1. WindowsインストールメディアをPCに接続する
    WindowsのISOファイルをマウントするか、起動可能なUSBメモリを接続します。
  2. DISMコマンドでソースを指定して修復を実行する
    管理者コマンドプロンプトまたはWindowsターミナルで、DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccessと入力し、Enterキーを押します。
    ここで「D:」はインストールメディアのドライブレターに置き換えてください。
    /LimitAccessオプションは、Windows Updateからのダウンロードを禁止し、指定したソースのみを使用するよう指示します。

SFCコマンドで「Windowsリソース保護は、整合性違反を検出しませんでした」と表示される

このメッセージは、SFCコマンドがシステムファイルの整合性チェックを行い、破損したファイルが見つからなかったことを意味します。

SFCコマンドは個々のシステムファイルの整合性を確認しますが、コンポーネントストア自体の破損は直接修復しません。

そのため、SFCコマンドで問題がないと表示されても、DISMコマンドによるコンポーネントストアの修復が必要な場合があります。

必ずDISMコマンドのRestoreHealthを実行し、コンポーネントストアの健全性を確保してください。

エラーコード0x80070246が引き続き表示される

DISMコマンドによる修復後もエラーコード0x80070246が継続して表示される場合、問題の原因がファイルシステムやディスクの物理的な破損など、より深いレベルにある可能性があります。

以下の追加手順を検討してください。

  1. ドライブのエラーチェックを実行する
    ファイルシステムの論理的な破損をチェックし、修復するためにchkdskコマンドを使用します。
    管理者コマンドプロンプトまたはWindowsターミナルで、chkdsk C: /f /rと入力し、Enterキーを押します。
    システムドライブC:のチェックは、次回のPC起動時に実行されるよう設定されます。
    PCを再起動して、エラーチェックが完了するまで待ちます。
  2. 重要なデータをバックアップし、Windowsのクリーンインストールを検討する
    上記の手順をすべて試しても問題が解決しない場合は、OSの根深い問題やハードウェアの故障が考えられます。
    重要なファイルを外部ストレージにバックアップした後、Windowsのクリーンインストールを行うことで、OSを初期状態に戻すことができます。
    それでも問題が再発する場合は、ストレージデバイスの故障の可能性も検討し、専門家への相談も視野に入れてください。

ADVERTISEMENT

SFCコマンドとDISMコマンドの比較

Windowsのシステム修復に用いられるSFCコマンドとDISMコマンドには、それぞれ異なる目的と機能があります。

適切に使い分けることで、効率的なトラブル解決が可能です。

項目 SFCコマンド DISMコマンド
主な目的 保護されたシステムファイルの整合性をチェックし、破損を修復する Windowsイメージやコンポーネントストアを管理し、破損を修復する
対象範囲 個々のWindowsシステムファイル Windowsのコンポーネントストア、システムイメージ全体
実行時間 比較的短時間で完了する 状況により数十分から数時間かかることがある
インターネット接続 通常は不要 RestoreHealthオプションで修復ファイルをダウンロードする場合に必要
推奨される使用順序 DISMコマンドの前に実行する SFCコマンドで解決できない場合に実行する

まとめ

この記事では、Windowsのファイル破損やエラーコード0x80070246が発生した際のDISMコマンドを用いた解決手順を解説しました。

SFCコマンドとDISMコマンドを適切に利用することで、Windowsのシステムファイルやコンポーネントストアの健全性を回復できます。

これらの修復作業により、システムの安定性が向上し、業務の継続に役立ちます。

万が一のトラブルに備え、定期的なシステムバックアップや重要なファイルの保存も検討してください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。