Windowsアップデートをインストールした後、状況がかなり混乱することがあります。ドライバーがクラッシュしたり、プログラムが動作しなくなったり、システムが重くなったりして、新しいアップデートが原因だと確信するかもしれません。Windowsが問題のあるアップデートを何度も再インストールしようとするので、特にイライラします。まるで頑固な弟のように。では、どうすればいいのでしょうか?アップデートをアンインストールしたり、Windowsが再インストールをしないように非表示にしたり、特に状況が悪い場合はアップデートを一時的に停止したりする方法があります。このガイドでは、こうした頭痛の種を抱えている人々が実際に効果を発揮した、よくある回避策を解説します。ただし、Windowsのアップデートシステムは、猫が家に入ろうとしないように、時には協力的でないこともあります。
問題のあるWindows Updateを修正する方法
Microsoft の更新プログラムの表示と非表示ツールの使用
アップデートによってシステムが完全に破壊されたり、競合が発生したりした場合は、アップデートを削除してWindowsによる自動再インストールを防ぐのが賢明です。そのための最も簡単な方法は、公式の「Show or Hide Updates(アップデートの表示/非表示)」ツールを使用することです。このツールは からダウンロードできますwushowhide.diagcab。Windowsがこのように複雑な操作をしなければならないのは少し奇妙ですが、このユーティリティは使い方に慣れてしまえば、実際にはかなり安定して動作します。
- 表示または非表示ユーティリティをダウンロードします。
- wushowhide.diagcabファイルを実行します。(場合によっては、右クリックして「管理者として実行」を選択する必要があります。)
- 「アップデートを非表示にする」を選択します。これにより、利用可能なアップデートがシステムでスキャンされます。
- 問題の原因となっているアップデートをリストで確認し、選択してください。非表示にすると、元に戻すまで再インストールは行われません。
- 後で問題がないように思われる場合は、同じツールを開いて [非表示の更新プログラムを表示]を選択し、非表示を解除して再インストールするか、Windows が次の更新サイクルでそれを実行するまで待機します。
欠陥のあるアップデートを既にインストールしていて、Windows に再インストールをさせたくないだけなら、この方法が有効です。設定によっては、この非表示のプロセスが少し奇妙で、1~2回の再起動が必要になることもありますが、通常は比較的簡単です。
更新を一時停止する – 休憩が必要な場合
これは、不具合のあるアップデートが届き、すぐに対処したくない場合に便利です。Windows 10 と 11 では、アップデートを最大 35 日間一時停止できます。これは、修正プログラムを待っている場合や、単に時間を稼ぎたい場合に便利です。一時停止するには、[設定] > [Windows Update]に移動し、[7 日間更新を一時停止]をクリックします。これを最大 5 回繰り返すと、最大遅延時間に達する可能性があります。
その間、Windowsがバックグラウンドでこっそりとアップデートを実行していないか確認したい場合は、PowerShellを使ってレジストリを調べることができます。例えば、一時停止の期限を確認するには、次のコマンドを実行します。
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings' | Select-Object PauseUpdatesExpiryTime
また、プログラムによって一時停止を延長したい場合 (当然ながら、Windows では必要以上に複雑にする必要があるため)、次のようにして有効期限を設定できます。
$pause = (Get-Date).AddDays(35) $pause = $pause. ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings' -Name 'PauseUpdatesExpiryTime' -Value $pause
これにより一時停止期間が限界まで延長され、設定によっては再起動を1~2回繰り返しないと解除されないこともあります。なぜこのように動作するのかは分かりませんが、とりあえずこれで問題は解決しました。
PowerShell を使用して特定の更新をブロックする
特定の更新プログラムやクラッシュし続けるドライバーを永久にブロックするなど、より精密なアプローチをご希望の場合は、PowerShellが役立ちます。PSWindowsUpdateモジュールが必要です。インストールは簡単です。
Install-Module -Name PSWindowsUpdate
次に、セキュリティ設定を変更せずにスクリプト コマンドを実行できるようにして、セッションを整理します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
利用可能なアップデートを次のようにリストします:
Get-WindowsUpdate
問題のある更新プログラムを非表示にするには、次のように KB 番号を使用します。
Hide-WindowsUpdate -KBArticleID KBXXXXX -Verbose
たとえば、KB5048652 が問題の原因である場合は、次のコマンドを実行します。
Hide-WindowsUpdate -KBArticleID KB5048652
以前にその更新が非表示になっていたが、再度有効にしたい場合は、次のコマンドを実行します。
Show-WindowsUpdate -KBArticleID KB5048652
ドライバーのアップデートを非表示にする方法は少し異なります。ドライバーには必ずしもKB番号が付いていないためです。以下のコマンドで利用可能なドライバーを一覧表示し、アップデートIDを取得する必要があるかもしれません。
$Updates = Get-WindowsUpdate -WindowsUpdate -UpdateType Driver $Updates | Select Title, Description, Identity
出力から更新 ID をコピーし、次のコマンドでドライバーの更新を非表示にします。
Hide-WindowsUpdate -UpdateID "your-driver-update-ID"
非常にエレガントではありませんが、特定のハードウェア ドライバーが自動的に更新され、セットアップが再び壊れるのを防ぐのに役立ちます。
結論:問題が発生した後にアップデートを削除する、再インストールを防ぐために非表示にする、あるいは避けられない事態を遅らせるなど、これらのオプションは少しの忍耐があれば非常に効果的です。この点においてWindowsは必ずしも制御しやすいわけではありませんが、ある程度の健全性を取り戻すことは間違いなく可能です。
まとめ
- 更新の表示または非表示ツールを使用して、頑固な更新をブロックします。
- 状況が非常に悪い場合は、一時的に更新を一時停止しますが、35 日間に制限されていることに注意してください。
- PowerShell コマンドレットを使用すると、更新プログラムとドライバーを選択的に非表示にしたり表示したりできるため、インストールされるものをより細かく制御できます。
まとめ
こういうのって、特にWindowsがあの呪われたアップデートの再インストールを要求してくる時は、ちょっとイライラするんですよね。表示/非表示ツールと手動アンインストール、そしてPowerShellの魔法を組み合わせることで、ある程度はコントロールを取り戻せるようになります。完璧ではありませんが、何もないよりは断然マシです。この方法が少しでも役に立ち、Windowsのアップデートの無駄な時間と格闘していた誰かの時間を少しでも救ってくれることを願っています。頑張ってください!