コンポーネント破損の修復方法

Last Update: feedback 共有

※本記事はマイクロソフト社員によって公開されております。

概要

更新プログラムの適用や機能や役割の追加に際して、OS のコンポーネント破損が原因で適用処理や追加処理が失敗してしまう場合がございます。
本ブログでは、OS のコンポーネント破損についての説明と対処方法についてご説明いたします。

コンポーネント破損の説明

OS のコンポーネント破損は、OS の動作に必要なファイルが何かしらの要因により不正な状態になってしまっている状態を指します。
不正な状態についてもう少し詳細にお伝えをさせていただくと、コンポーネントの実体が存在する C:\Windows\WinSxS のフォルダーや C:\Windows\System32 のフォルダーで管理されているファイルの欠損やファイル破損、あるいはコンポーネントに関連するレジストリの情報の欠損や無効なデータであること、など様々なパターンのコンポーネントの破損があります。
コンポーネント破損が発生した際の一般的なエラーについては Windows Update の破損とインストールエラーを修正する に記述がありますので、簡易的な方法ではございますが、更新プログラムの適用などに失敗した際のエラーコードと照らし合わせることでご自身でコンポーネント破損に起因した更新プログラムの失敗であるか、ということを切り分けを行うことができます。
なお、特殊な事例やコンポーネント破損を任意のタイミングで再現させられる場合を除き、コンポーネント破損の根本原因を事後に特定することは叶いません。
理由としては、コンポーネントの実体であるファイルやレジストリの状態が不正な状態になる瞬間を捕えなければ、なぜコンポーネントの破損が発生してしまったのかという原因を特定することが困難であるためです。

コンポーネント破損の修復方法

コマンドによるコンポーネント破損の修復

コマンドによるコンポーネント破損の修復は、大まかに以下のステップで試行します。

  1. Dism /Online /Cleanup-Image /RestoreHealth による修復
  2. sfc /scannow による修復

上記のステップの説明に先立ち、OS のコンポーネントの実体が管理されているフォルダーについて説明をします。
OS のコンポーネントの実体が管理されているフォルダーは大きく分けて、C:\Windows\WinSxS フォルダーと C:\Windows\System32 フォルダーがあります。
C:\Windows\WinSxS フォルダーはコンポーネント ストアと呼ばれる場合がありますが、コンポーネント ストアと呼ばれる通り、OS のコンポーネントはこのフォルダーへ保存されて管理されています。
このコンポーネント ストアでは、現在 OS が利用している OS のコンポーネントだけではなく、過去に適用された OS のコンポーネントも管理されています。
補足情報として、コンポーネント ストア内のコンポーネントは定期的にクリーンアップされ、ディスク容量の消費が必要最低限になるように工夫されています。
詳細については、WinSxS フォルダーのクリーンアップ に説明がございます。
対して、C:\Windows\System32 には OS が現在利用しているコンポーネントが配置されます。
なお、実際には C:\Windows\System32 配下に配置されている OS のコンポーネントは、C:\Windows\WinSxS フォルダーのファイルとのハードリンクとなっています。
例えば Windows カーネルのコンポーネントは、以下のようなハードリンクで関連付けが行われています。
更新プログラムの適用を行った際は、新しい更新プログラムのコンポーネントが C:\Windows\WinSxS に配置され、更新プログラム適用後の OS 再起動の処理の中でハードリンクが新しく追加されたコンポーネント (つまり新しく適用した更新プログラムに含まれるコンポーネント) に貼りなおされるような動作となります。

1
2
3
C:\>fsutil hardlink list C:\Windows\System32\ntoskrnl.exe
\Windows\WinSxS\amd64_microsoft-windows-os-kernel_31bf3856ad364e35_10.0.22621.1992_none_4be8e35c2fda8a91\ntoskrnl.exe ★ リンクされているパス
\Windows\System32\ntoskrnl.exe ★ システムが利用するパス

上記をもとにコマンドについて説明をすると、Dism /Online /Cleanup-Image /RestoreHealth コマンドでは C:\Windows\WinSxS を対象に修復を試みます。
対して、sfc /scannow のコマンドでは C:\Windows\System32 を対象に修復を試みます。
各コマンドは、本記事の冒頭のステップに記載の順序で実行いただく必要がございます。
理由として、sfc /scannowC:\Windows\WinSxS をもとに C:\Windows\System32 の修復を試みるため、Dism /Online /Cleanup-Image /RestoreHealth にて先に C:\Windows\WinSxS を修復する必要がある点にございます。

なお、ある程度の範囲であれば、手動でのコンポーネントの修復が可能である場合もございますが、推奨されている手順ではない点についてご留意ください。
理由として、C:\Windows\WinSxS などのフォルダーは TrustedInstaller と呼ばれる OS コンポーネントを管理するための特殊なビルトイン アカウントによって所有されており、アクセス権の制限により書き込みができないよう保護されております。
OS として TrustedInstaller (Windows Modules Installer サービス) 以外からのファイル操作は許可しないよう保護しているにもかかわらず、OS の標準機能を利用せずにアクセス権を変更してファイル操作を行うことは、より重大な問題を引き起こす可能性があります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\>icacls C:\Windows\WinSxS
C:\Windows\WinSxS NT SERVICE\TrustedInstaller:(OI)(CI)(F) ★フルコントロール権限は TrustedInstaller サービスのみで、その他は読み込みのみ
BUILTIN\Administrators:(RX)
BUILTIN\Administrators:(OI)(CI)(IO)(GR,GE)
NT AUTHORITY\SYSTEM:(RX)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(GR,GE)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケーション パッケージ:(RX)
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケーション パッケージ:(OI)(CI)(IO)(GR,GE)

1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

以上がコンポーネント修復のステップです。
補足情報として弊社の公開情報にて システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する でも同様の記載がございますのでぜひご参考にしていただければと思います。

しかしながら、上記の対応をいただいてもコンポーネント破損を修復できない場合もあります。
その場合は、後述のインプレース アップグレードによるコンポーネント修復を行います。

インプレース アップグレードによるコンポーネント破損の修復

インプレース アップグレードによるコンポーネント破損の修復とは、現在の Windows と同じバージョンの OS メディアを利用してアップグレードを行うことで、コンポーネント破損の修復を行う方法です (インプレース アップグレードも上記のコマンドによるコンポーネント破損修復と同等にサポート範囲内の対処方法でございます)。
例を挙げると、Windows 11 バージョン 24H2 でコンポーネント破損が発生している環境に対して、Windows 11 バージョン 24H2 の OS メディアを利用して、同一バージョンでのアップグレードを行います。
インプレース アップグレードを用いることで、個人設定やアプリケーションやドライバーなどを可能な限り引継ぎながら、OS 領域のみ初期状態に上書きすることができ、結果的に破損や欠損が発生していた部分を広範囲に修復することができます。
ブログ執筆時点 (2025 年 4 月) では、最新版のコンシューマー版の Windows OS のメディアは Windows 11 のダウンロード にてダウンロード可能です。
ビジネス版の Windows OS のメディアは Microsoft 365 管理センター (旧称: ボリューム ライセンス サービス センター (VLSC)) にて入手する必要がございますので、ご利用の OS に応じて適切なメディアをご利用ください。
それでは、以下にインプレース アップグレードの手順を記載します。

  1. ご利用の Windows と同じバージョンの OS イメージ (ISO ファイルでも、メディアでも可) を用意します。
  2. 対象となるマシンへ OS イメージをマウントします。
  3. OS イメージ内の setup.exe を実行します。
  4. 「セットアップ」の画面が立ち上がりますので、画面にしたがって進めていきます。
  5. 「インストール準備完了」という画面で、ユーザー情報およびアプリケーションが引き継がれる形となっているかを確認します。
  6. 引き継がれる設定となっている場合は「インストール」を選択し、インプレース アップグレードを進めます。
  7. インプレース アップグレードの完了を待ちます。処理中は複数回の OS 再起動が発生します。

なお、現在ご利用中の OS のシステム言語とメディアの言語が一致しない場合や、コンシューマー版やビジネス版などのメディアのエディションの情報が現在ご利用中の OS メディアと一致しない場合は、インプレース アップグレードの際に個人設定やアプリケーションを引き継ぐことはできません。
その際は、ご用意いただいた OS メディアの言語やエディションの観点で問題ないかを確認します。

加えて、インプレース アップグレードの際は主に以下の留意点がございます。

・インプレース アップグレードを実施した場合、OS 領域 (C:\Windows 配下) が初期状態に戻るため、更新プログラムの適用レベルはインストールを実施したメディアのレベルに依存します。ただし、外部インターネット アクセス可能な状態でインプレース アップグレードを実施した場合は、動的更新 (Dynamic Update) により最新の更新プログラムの適用が同時に行われます。
・原則的に役割と機能については引き継がれますが、サーバー OS の場合、その役割や機能によっては事前に作業が必要となる場合があるため注意点などが弊社技術情報参照ください。
・サービスの状態などを変更されている場合は既定値に戻る可能性があります。
・インプレース アップグレードの際、原則として各ユーザーの個人設定やアプリケーションやドライバーを移行しますが、何らかの要因で移行に失敗する可能性がございます。インプレース アップグレード後、重要なユーザーの設定やアプリケーションやドライバーが利用できる状態となっているかご確認をお願いします。また、意図しない問題が発生した場合に備えて、事前に OS のバックアップも取得しますとより安心であるものと存じます。
・プロキシ設定などによりインターネット上の弊社サーバーへのアクセスが制限されている環境では、動的更新 (Dynamic Update) が動作できないことに起因し OS のインストール言語以外の追加した言語パックが引き継がれません。そのため、インプレース アップグレードを行う際はインターネット上の弊社サーバーへのアクセス可能環境でアップグレードを実施いただくか、アップグレード後に再度言語パックのインストールをご検討ください。

OS 初期化によるコンポーネントの修復方法

通常、OS のコンポーネント破損がコマンドで修復できない場合はインプレース アップグレードによる修復を行うケースが大半でございますが、クラウド ダウンロード を用いた Windows の初期化を行うことでも OS のコンポーネント修復を行うことができます。
Windows を初期化する方法は PC を初期状態に戻す に詳細な記述がございます。
この方法を行った場合、アプリや設定は削除されてしまいますが、ユーザー データを保持させた状態で OS 初期化をさせることができますので、OS メディアの用意ができない場合に実施できる手段としてご紹介いたします。