【WindowsUpdate】「更新プログラムが一時停止しています」を解消しました

Active Directoryで構成されたドメインに参加し、WSUSでWindowsUpdateを管理していた端末をメンテナンスしていたら、この事象に遭遇しました。

「更新プログラムのチェック」ボタンは押せるが…

事象が発生した端末の環境と発生までの主な流れ

「更新プログラムが一時停止しています」という表示が出て、アップデートが実行できなくなりました。

この端末の環境としては、Active Directoryのグループポリシーで、WSUSをデフォルトで参照させるという設定になっていたものでした。今回、最新のWindows10に更新する必要があったため、一度ドメインを外れたところ、このような状況になりました。

この事象に遭遇した後、あちこち調べて回りましたが、WindowsUpdateの問題が発生するときは、大きく分けると以下のどれかのようです。

  • Windows Updateのキャッシュが破損している
  • レジストリの設定が適切ではない
  • ローカルグループポリシーまたはローカルセキュリティポリシーの設定に問題がある

色々調べてみたところ、今回はレジストリだった

レジストリの以下の場所に存在している二つの値を変更したところ、解消しました。以下の手順で解消できます。

以下の手順はWindowsの根幹を握るレジストリを変更します。非常に危険な作業で、失敗した場合は最悪Windowsを起動できなくなるなどが起こりますので、実行の際は自己責任でお願いいたします。

レジストリエディタを起動する。

スタートボタンを押した後キーボードで、「regedit」と入力すると「レジストリエディタ」がヒットするはずですので、起動して、以下の場所を探します。

レジストリの場所

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

考え方はエクスプローラと同じです。

値を変更する

今回の環境では右ペインにあった値は3つ、ひとつはカラなので無視して、以下の二つが対象です。

  • DisableOSUpgrade
  • PauseFeatureUpdates

それぞれの値をダブルクリックして、「値のデータ」を0にしてOKを押します。

DisableOSUpgradeの値のデータを0にする
PauseFeatureUpdatesも同様に0にする

値を変更した後は、特に再起動は不要で、「更新プログラムのチェック」ボタンを押すか、WindowsUpdateを開きなおせばリロードされて、問題が解消しました。

今回色々なサイトを探しましたが、なかなかこれに該当する事例は見つからず、かなり苦労しました。

最終的にはレジストリの名前がそれっぽいなと思い、ほぼカンで設定変更したところうまくいきました。同じ事象で困っている方の参考になれば幸いです。