作成日: 2025/4/18
最終更新日: 2025/6/18
※本記事はマイクロソフト社員によって公開されております。
概要
Windows Update の際の品質更新プラグラムの適用や手動での更新プログラムでの適用、機能および役割の追加に際して、OS のコンポーネント破損が原因で適用処理や追加処理が失敗してしまう場合がございます。
本ブログでは、OS のコンポーネント破損についての説明と対処方法についてご説明いたします。
ただし、本ブログ内でご説明をするコンポーネント破損の修復を試行しても修復ができないケースもございます。
その場合はインプレース アップグレードやクラウド ダウンロードを用いた OS の初期化によるコンポーネント修復を行う必要がございます。
インプレース アップグレードやクラウド ダウンロードを用いた OS の初期化についても本ブログの後半に記載をしておりますのでご参考にしていただければと思います。
コンポーネント破損の説明
OS のコンポーネント破損は、OS の動作に必要なファイルが何かしらの要因により不正な状態になってしまっている状態を指します。
不正な状態についてもう少し詳細にお伝えをさせていただくと、コンポーネントの実体が存在する C:\Windows\WinSxS
のフォルダーや C:\Windows\System32
のフォルダーで管理されているファイルの欠損やファイル破損、あるいはコンポーネントに関連するレジストリの情報の欠損や無効なデータであること、など様々なパターンのコンポーネントの破損があります。
コンポーネント破損が発生した際の一般的なエラーについては Windows Update の破損とインストールエラーを修正する に記述がありますので、簡易的な方法ではございますが、更新プログラムの適用などに失敗した際のエラーコードと照らし合わせることでご自身でコンポーネント破損に起因した更新プログラムの失敗であるか、ということを切り分けを行うことができます。
なお、特殊な事例やコンポーネント破損を任意のタイミングで再現させられる場合を除き、コンポーネント破損の根本原因を事後に特定することは叶いません。
理由としては、コンポーネントの実体であるファイルやレジストリの状態が不正な状態になる瞬間を捕えなければ、なぜコンポーネントの破損が発生してしまったのかという原因を特定することが困難であるためです。
コンポーネント破損の修復方法
コマンドによるコンポーネント破損の修復
コマンドによるコンポーネント破損の修復は、大まかに以下のステップで試行します。
Dism /Online /Cleanup-Image /RestoreHealth
による修復sfc /scannow
による修復
具体的なコマンドの実行手順は以下の通りでございます。
以下のコマンドを実行しましたら、発生している事象が改善されるかを確認します。
1 | 1. コマンド プロンプトを管理者権限で起動します。 |
実行するコマンドは上記でございますが、ここで上記のコマンドについて以下で詳細にご説明をさせていただきます。
今回修復を行う 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 | C:\>fsutil hardlink list C:\Windows\System32\ntoskrnl.exe |
上記をもとにコマンドについて説明をすると、Dism /Online /Cleanup-Image /RestoreHealth
コマンドでは C:\Windows\WinSxS
を対象に修復を試みます。
対して、sfc /scannow
のコマンドでは C:\Windows\System32
を対象に修復を試みます。
各コマンドは、本記事の冒頭のステップに記載の順序で実行いただく必要がございます。
理由として、sfc /scannow
は C:\Windows\WinSxS
をもとに C:\Windows\System32
の修復を試みるため、Dism /Online /Cleanup-Image /RestoreHealth
にて先に C:\Windows\WinSxS
を修復する必要がある点にございます。
なお、上記の Dism /Online /Cleanup-Image /RestoreHealth
コマンドではインターネット上のリソースを用いて修復を行います。
本コマンドでは修復ソースを指定することができ、Windows 修復ソースの構成 の公開情報が参考になりますので、修復ソースを指定する必要がある場合はご参考にしていただければと思います。
加えて、ある程度の範囲であれば、手動でのコンポーネントの修復が可能である場合もございますが、推奨されている手順ではない点についてご留意ください。
理由として、C:\Windows\WinSxS
などのフォルダーは TrustedInstaller と呼ばれる OS コンポーネントを管理するための特殊なビルトイン アカウントによって所有されており、アクセス権の制限により書き込みができないよう保護されております。
OS として TrustedInstaller (Windows Modules Installer サービス) 以外からのファイル操作は許可しないよう保護しているにもかかわらず、OS の標準機能を利用せずにアクセス権を変更してファイル操作を行うことは、より重大な問題を引き起こす可能性があります。
1 | C:\>icacls C:\Windows\WinSxS |
以上がコンポーネント修復のステップです。
補足情報として弊社の公開情報にて システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する でも同様の記載がございますのでぜひご参考にしていただければと思います。
しかしながら、コンポーネント破損が多岐にわたる場合や上記の対応で解決できない場合は、上述の通りインプレース アップグレードやクラウド ダウンロードを用いた Windows の初期化を行う必要があります。
インプレース アップグレードによるコンポーネント破損の修復
インプレース アップグレードによるコンポーネント破損の修復とは、現在の Windows と同じバージョンの OS メディアを利用してアップグレードを行うことで、コンポーネント破損の修復を行う方法です (インプレース アップグレードも上記のコマンドによるコンポーネント破損修復と同等にサポート範囲内の対処方法でございます)。
例を挙げると、Windows 11 バージョン 24H2 でコンポーネント破損が発生している環境に対して、Windows 11 バージョン 24H2 の OS メディアを利用して同一バージョンでのアップグレードを行います。
インプレース アップグレードを用いることで、個人設定やアプリケーションやドライバーなどを可能な限り引継ぎながら OS 領域のみ初期状態に上書きすることができ、結果的に破損や欠損が発生していた部分を広範囲に修復することができます。
ブログ執筆時点 (2025 年 4 月) では、最新版のコンシューマー版の Windows OS のメディアは Windows 11 のダウンロード にてダウンロード可能です。
ビジネス版の Windows OS のメディアは Microsoft 365 管理センター (旧称: ボリューム ライセンス サービス センター (VLSC)) にて入手する必要がございますので、ご利用の OS に応じて適切なメディアをご利用ください。
それでは、以下にインプレース アップグレードの手順を記載します。
- ご利用の Windows と同じバージョンの OS イメージ (ISO ファイルでも、メディアでも可) を用意します。
- 対象となるマシンへ OS イメージをマウントします。
- OS イメージ内の
setup.exe
を実行します。 - 「セットアップ」の画面が立ち上がりますので、画面にしたがって進めていきます。
- 「インストール準備完了」という画面で、ユーザー情報およびアプリケーションが引き継がれる形となっているかを確認します。
- 引き継がれる設定となっている場合は「インストール」を選択し、インプレース アップグレードを進めます。
- インプレース アップグレードの完了を待ちます。処理中は複数回の OS 再起動が発生します。
なお、現在ご利用中の OS のシステム言語とメディアの言語が一致しない場合や、コンシューマー版やビジネス版などのメディアのエディションの情報が現在ご利用中の OS メディアと一致しない場合は、インプレース アップグレードの際に個人設定やアプリケーションを引き継ぐことはできません。
その際は、ご用意いただいた OS メディアの言語やエディションの観点で問題ないかを確認します。
Azure 環境ではご利用いただいている環境によって、個人設定やアプリケーションを引き継ぐことはできないこと場合やインプレース アップグレードがサポートされない場合がございますのでご留意ください。
加えて、インプレース アップグレードの際は主に以下の留意点がございます。
・インプレース アップグレードを実施した場合、OS 領域 (C:\Windows 配下) が初期状態に戻るため、更新プログラムの適用レベルはインストールを実施したメディアのレベルに依存します。ただし、外部インターネット アクセス可能な状態でインプレース アップグレードを実施した場合は、動的更新 (Dynamic Update) により最新の更新プログラムの適用が同時に行われます。
・原則的に役割と機能については引き継がれますが、サーバー OS の場合、その役割や機能によっては事前に作業が必要となる場合があるため注意点などが弊社技術情報参照ください。
・サービスの状態などを変更されている場合は既定値に戻る可能性があります。
・インプレース アップグレードの際、原則として各ユーザーの個人設定やアプリケーションやドライバーを移行しますが、何らかの要因で移行に失敗する可能性がございます。インプレース アップグレード後、重要なユーザーの設定やアプリケーションやドライバーが利用できる状態となっているかご確認をお願いします。また、意図しない問題が発生した場合に備えて、事前に OS のバックアップも取得しますとより安心であるものと存じます。
・プロキシ設定などによりインターネット上の弊社サーバーへのアクセスが制限されている環境では、動的更新 (Dynamic Update) が動作できないことに起因し OS のインストール言語以外の追加した言語パックが引き継がれません。そのため、インプレース アップグレードを行う際はインターネット上の弊社サーバーへのアクセス可能環境でアップグレードを実施いただくか、アップグレード後に再度言語パックのインストールをご検討ください。
OS 初期化によるコンポーネントの修復方法
通常、OS のコンポーネント破損がコマンドで修復できない場合はインプレース アップグレードによる修復を行うケースが大半でございますが、クラウド ダウンロードを用いた Windows の初期化を行うことでも OS のコンポーネント修復を行うことができます。
Windows を初期化する方法は PC を初期状態に戻す に詳細な記述がございます。
この方法を行った場合、上記のインプレース アップグレードと比較して、アプリや設定は削除されてしまいますがユーザー データを保持させた状態で OS 初期化をさせることができますので、OS メディアの用意ができない場合に実施できる手段としてご紹介いたします。
補足情報
本ブログ中でも、コンポーネント破損が発生した際の一般的なエラーは Windows Update の破損とインストールエラーを修正する へ記載がある点について言及しておりますが、エラー コードでのブログの検索しやすさの観点から本ブログでも同じ表を掲載いたします。
Code | Error | Description |
---|---|---|
0x80070002 | ERROR_FILE_NOT_FOUND | The system cannot find the file specified. |
0x800f0831 | CBS_E_STORE_CORRUPTION | CBS store is corrupted. |
0x8007000D | ERROR_INVALID_DATA | The data is invalid. |
0x800F081F | CBS_E_SOURCE_MISSING | The source for the package or file not found. |
0x80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT | The component store is in an inconsistent state. |
0x800736CC | ERROR_SXS_FILE_HASH_MISMATCH | A component’s file does not match the verification information present in the component manifest. |
0x800705B9 | ERROR_XML_PARSE_ERROR | Unable to parse the requested XML data. |
0x80070246 | ERROR_ILLEGAL_CHARACTER | An invalid character was encountered. |
0x8007370D | ERROR_SXS_IDENTITY_PARSE_ERROR | An identity string is malformed. |
0x8007370B | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME | The name of an attribute in an identity is not within the valid range. |
0x8007370A | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE | The value of an attribute in an identity is not within the valid range. |
0x80070057 | ERROR_INVALID_PARAMETER | The parameter is incorrect. |
0x800B0100 | TRUST_E_NOSIGNATURE | No signature was present in the subject. |
0x80092003 | CRYPT_E_FILE_ERROR | An error occurred while Windows Update reads or writes to a file. |
0x800B0101 | CERT_E_EXPIRED | A required certificate is not within its validity period when verifying against the current system clock or the time stamp in the signed file. |
0x8007371B | ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE | One or more required members of the transaction are not present. |
0x80070490 | ERROR_NOT_FOUND | Windows could not search for new updates. |
0x800f0984 | PSFX_E_MATCHING_BINARY_MISSING | Matching component directory exist but binary missing |
0x800f0986 | PSFX_E_APPLY_FORWARD_DELTA_FAILED | Applying forward delta failed |
0x800f0982 | PSFX_E_MATCHING_COMPONENT_NOT_FOUND | Can’t identify matching component for hydration |
0x8024002E | WU_E_WU_DISABLED | Windows Update Client service is disabled |