Windowsのアップデートによる高いCPU・ディスク・メモリ使用率を解決する方法(Windows 11/10対応)

Windows Updateのキャッシュフォルダをクリアする — 真の解決策

長い間ハマってしまったのは、Windowsのアップデートが途中で止まったり、無限ループしてしまった時の対処法です。調べた結果、原因の多くはキャッシュフォルダにあります。特に、SoftwareDistributionフォルダ(C:\Windows\SoftwareDistribution)や、Catroot2フォルダ(C:\Windows\System32\catroot2)です。これらは一時的にWindowsがアップデートファイルをためておく場所ですが、長期間放置すると破損したり不要に肥大化したりして、CPUやディスクの負荷を不自然に高めてしまいます。これが原因で、パッチ適用中にパソコンがフリーズしたり、動作が遅く感じたりすることも。このような sluggish な状態は、多くの場合これらのフォルダが関係しています。

ただし、「ただ削除すればいい」と思うのは危険です。まず、Windows Update(以下、WU)のサービスを停止させる必要があります。これらのファイルはロックされていることも多いためです。管理者権限でPowerShellかコマンドプロンプトを開き、以下のコマンドを入力します: Stop-Service wuauserv -Force。さらに、bitscryptsvcも関連しているので、こちらも停止させておきましょう:
Stop-Service bits -ForceStop-Service cryptsvc -Force

次に、やっかいなポイントですが、Catroot2フォルダ自体は削除しないこと。中身だけを空にします。なぜなら、これは暗号化処理に必要なファイル群だからです。削除や名前変更は逆に問題を引き起こす可能性があります。一方、SoftwareDistributionフォルダの中身は安全に削除できる部分です。もし内容が見えなかったりグレーアウトしている場合は、まず関連サービスを停止しきったか再確認してください。

クリーンアップが終わったら、サービスを再起動します。Start-Service wuauservを入力し、同様にbitsとcryptsvcも再起動してください。その後、アップデートがスムーズに進むかどうか試してみてください。また、「設定 > 更新とセキュリティ > トラブルシューティング > 追加のトラブルシューティング > Windows Update」の機能も使ってみると、時には自動化された修復に役立つこともあります。

SFC(システムファイルチェッカー)の実行 — 効果あり?

次に試したのは、システムファイルの整合性チェック、sfc /scannowの実行です。これは完璧ではありませんが、システムファイルの破損が原因で遅延や異常な動作が起きている場合に効果的です。管理者権限でコマンドプロンプトを開き(スタートメニューを管理者として実行)、コマンドを入力します:
sfc /scannowを入力し、しばらく完了まで待ちます。修復処理が行われ、最終的に「整合性違反はありません」や「再起動が必要です」といったメッセージが出ます。再起動後にもう一度実行してみると、より確実に改善されることがあります。場合によっては、セーフモードでの実行や、2回の繰り返しが必要なこともあります。焦らずにじっくり取り組みましょう。

DISMコマンドでイメージを修復 — それでもダメなら

SFCだけでは解決しない場合、DISM(ディスム)を使います。これはWindowsのイメージ自体を修復できるツールです。基本的なコマンドは:
DISM /Online /Cleanup-Image /RestoreHealth

このコマンドは、通常はWindows Updateから必要なファイルを取得します。しかし、インターネット接続に問題があったり、ソースが破損している場合は、インストールイメージ(ISO)をマウントして指定する方が確実です。具体的には、ISOをマウントし(右クリック > マウント)、install.wimまたはinstall.esdファイルを指定します。例えば、ISOをG:\にマウントした場合は、次のようにコマンドを入力します:

DISM /Online /Cleanup-Image /RestoreHealth /Source:G:\sources\install.wim:1 /LimitAccess

インデックス番号は、DISM /Get-WimInfo /WimFile:G:\sources\install.wimを実行して確認します。install.esdを使う場合は構文が少し変わることもあるため注意してください。時間がかかる作業なので、うまくいくか賭けのような部分もあります。最新のWindowsバージョンと一致したイメージを使うことが大切です。

更新コンポーネントの手動リセット

キャッシュクリアやDISM/SFCでも解決しない場合は、手動でコンポーネントをリセットします。これは少し乱暴な方法ですが、最終手段として有効です。管理者権限でコマンドプロンプトまたはPowerShellを開き、次のコマンドを順番に実行します:

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2  croot2.old

net start wuauserv
net start bits
net start cryptsvc
net start msiserver

これにより、Windowsのアップデートクライアントがリセットされ、新たにデータベースが作り直されます。何度か試した経験から、これを行うとほぼ確実にアップデートが再開できます。途中で再起動する必要がある場合もあるので、複数回試す価値はあります。

Delivery Optimization(配信の最適化)について

最初に見落としがちなのが、「Delivery Optimization(配信最適化)」です。これはWindowsがアップデートをネットワーク内やインターネット上の他のPCとピアツーピア方式で共有する機能ですが、帯域やCPUを大量に消費することもあります。特にネットワークが不安定な場合や制限がある場合は負荷がかかりやすいです。設定は 設定 > 更新とセキュリティ > 詳細オプション > 配信の最適化 から、「他のPCからのダウンロードを許可する」をオフにしてください。
また、アップロードやダウンロードの帯域幅も制限設定可能です。これを無効にすることで、アップデート時のCPUやネットワーク負荷を軽減できます。私の場合もこれを切るだけで、アップデート時のリソースピークが大きく改善しました。試してみてください。

最後に:忍耐と再確認の重要性

結局のところ、Windowsのアップデート問題は一筋縄ではいかないことも多いです。何度も試行錯誤しながら少しずつ解決策を積み重ねることが大切です。停止させたサービスやフォルダの状態をきちんと確認しながら作業し、コマンドは管理者権限で確実に実行してください。必要に応じてバックアップや復元ポイントも用意しましょう。Windowsは完璧ではありませんし、時には邪魔をしてくることもありますが、諦めずにじっくり取り組むことが解決の近道です。

この記事がお役に立てれば幸いです。私もかなり苦労しましたが、少しずつ改善できました。皆さんの問題解決の一助になれば幸いです。健闘を祈ります!