更新コンポーネントの正体
Windows Updateは単一のプロセスではなく、サービスとフォルダーで構成されるパイプラインです。wuauservは更新エンジンそのもの、バックグラウンド インテリジェント転送サービス(bits)はダウンロードしたファイルを運び、cryptsvcは届いたパッケージのデジタル署名を検証します。この3つが連携して、ダウンロードキャッシュをC:\Windows\SoftwareDistributionに、署名カタログのデータをC:\Windows\System32\catroot2に保持しています。
ダウンロードが中断されたり、書きかけのファイルがキャッシュに残ったりすると、パイプラインは壊れたデータを使い続けることがあります。更新が何時間も同じパーセントで止まったり、0x80070002や0x8007000Dといったコードで失敗したりするのはこのためです。キャッシュを削除すれば、Windowsはすべてをゼロから取得し直します。リセットがこれほど多くの不可解な更新失敗を直す理由がここにあります。リセットはWindowsの再インストールでも、インストール済み更新プログラムの削除でもなく、新しいダウンロードの通り道を掃除するだけです。
- wuauserv — 更新プログラムを検索・ダウンロード・インストールするWindows Updateサービス
- bits — バックグラウンド インテリジェント転送サービス。ファイルを裏で転送する
- cryptsvc — 更新パッケージの署名を検証する
- C:\Windows\SoftwareDistribution — ダウンロードキャッシュ。大型更新後は数GBに膨れることも
- C:\Windows\System32\catroot2 — 署名カタログのデータを格納するフォルダー
コンポーネントをリセットする手順
スタートを開いてcmdと入力し、コマンド プロンプトを右クリックして「管理者として実行」を選びます。Windows 11なら、スタートを右クリックして「ターミナル(管理者)」でも構いません。次に4つのコマンドでサービスを停止します:net stop wuauserv、net stop bits、net stop cryptsvc、net stop msiserver — 最後の1つはインストーラー サービスがビジーのときにだけ必要です。続いてキャッシュ フォルダーを2つリネームします:ren %systemroot%\SoftwareDistribution SoftwareDistribution.old、ren %systemroot%\System32\catroot2 catroot2.old。
リネームがアクセス拒否で失敗したら、cryptsvcが本当に停止しているか確認し、再起動後にもう一度試します。同じ順序でサービスを再開し(net start wuauserv、net start bits、net start cryptsvc)、設定を開いてWindows Updateへ進み、「更新プログラムのチェック」をクリックします。Windowsは両方のフォルダーを数分で再構築し、すべてをダウンロードし直します。
リセットでも直らないとき
まず内蔵のトラブルシューティング ツールを実行します:設定 → システム → トラブルシューティング → その他のトラブルシューティング ツールで、Windows Updateの「実行」をクリック。コンポーネント ストア自体が壊れている場合は、DISM /Online /Cleanup-Image /RestoreHealthに続けてsfc /scannowを実行して修復し、その後リセットをやり直します。更新がインストールと失敗を繰り返すときは、そのKB番号を控えて「更新履歴」からアンインストールしてから、もう一度試しましょう。
.oldフォルダーは1〜2週間保管し、更新が正常に動くようになったら削除してディスク領域を回収します。ほぼ一杯のシステムドライブで空き容量を確保した後もリセットの価値があります。パンパンに膨れたキャッシュは、更新がダウンロードを拒む定番の原因だからです。また、どの手順でもWinSxSフォルダーには手を出さないでください。中身はWindows自身が管理するハード リンクで、そこからファイルを削除するとコンポーネント ストアが壊れます。
よくある質問
Windows Updateコンポーネントのリセットでファイルやプログラムは削除されますか?
いいえ。リセットが再構築するのは更新キャッシュだけです。個人ファイル、プログラム、設定はそのまま残り、目に見える損失は更新履歴の一覧が空になることだけです。
SoftwareDistributionフォルダーを削除しても安全ですか?
はい。ただし先に更新サービスを停止していることが条件で、それこそリセットが行うことです。削除ではなくリネームすれば、問題が起きたときに古いキャッシュへ戻せます。
更新がいつもエラー0x80070002で失敗するのはなぜですか?
このコードは通常、インストーラーが期待するファイルが見つからないことを意味し、大半はダウンロードキャッシュの破損が原因です。サービスを停止してSoftwareDistributionをリネームすれば、ほとんどのケースは解決します。
購入前にライセンスの内容をご確認ください。
一度限りの 30 分試用では基本ツールを利用できます。PRO 機能は有料ライセンスを有効にするまでロックされています。
次に読む記事
お問い合わせ: [email protected]