【WindowsUpdate】更新プログラムの自動更新を無効にする[WindowsServer2016以降]

Microsoft Windows
スポンサーリンク

Windows Server 2016 になってから UI も変更され、コントロールパネルとユニバーサルアプリの設定画面の 2 ラインで設定がどこにあるのかピンときませんが、従来の Windows Update の設定からは Windows Update の自動更新を無効化することができなくなってしまいました。

手動でのパッチ適用を行うような環境の場合など、自動更新を回避したいシーンがあると思いますので自動更新を停止する方法を試してみました。

スポンサーリンク

Windows Update を無効にする

Windows Server 2016 から 自動更新をオフにする設定がなくなってしまったのですが、ローカル ポリシーにて、自動更新の無効化設定を行うことができます。(Pro 以上であれば Windows 10 でも設定可能)

基本的には、ドメイン環境の場合はドメインのグループ ポリシーを構成していると思いますが、ワークグループ環境やグループポリシーで構成していない場合はローカル ポリシーで構成します。

Windows Update の無効化(ローカル ポリシー)

まず、ローカル グループ ポリシー エディター[gpedit.msc]を起動し、以下の通り展開していきます。

[コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [Windows Update]

[Windows Update] まで展開すると、右側の一覧に [自動更新を構成する] の項目がありますのでクリックしてプロパティを開きます。

「自動更新を構成する」の画面にて、設定を”未構成”から”無効” に変更して適用します。

設定変更を行った後は再起動を行いましょう。

再起動後にサーバー マネージャーの Windows Update の項目が「更新プログラムを確認しない」となっていれば設定は反映されています。

これで更新プログラムの自動更新が行われなくなりますので、必要に応じて更新プログラムを手動で適用するようにしましょう。

Windows Update の無効化(レジストリ)

ワークグループ環境で複数台のマシンがあったため、一つずつローカル ポリシーを変更していくのが面倒だったのでレジストリを直接変更する方法を試してみました。

最初にローカル ポリシーにて設定を行ったマシンで確認したところ、レジストリキーは

「HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU」
「NoAutoUpdate : 1」

で作成されていたので、同様の値になるように構成を行います。

レジストリキーの確認

まずは、何も設定していないデフォルト状態のマシンへ以下のコマンドを実行して、「HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU」のレジストリ値を確認します。

コマンド例

(Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU")

コマンド実行例

PS C:\Users\Administrator>(Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU")

   Hive: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate

Name                          Property
----                          --------
AU                            AUOptions : 3

PS C:\Users\Administrator>

デフォルト状態ではこのようになっており、「AUOptions : 3」は、「自動的にダウンロードし、インストールを通知します。」の設定となります。

レジストリ設定の投入

ローカル ポリシーにて設定したマシンでは、「AUOptions」のキーはなく「NoAutoUpdate : 1」のみとなっていましたので、同じ形になるように「AUOptions」を削除して「NoAutoUpdate : 1」を追加しました。

コマンド例

Remove-ItemProperty "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name AUOptions
Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name NoAutoUpdate -value 1

コマンド実行例

PS C:\Users\Administrator> Remove-ItemProperty "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name AUOptions
PS C:\Users\Administrator>
PS C:\Users\Administrator> Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name NoAutoUpdate -value 1
PS C:\Users\Administrator>

Remove と Set コマンドの実行後は、再度 Get で確認します。

PS C:\Users\Administrator> (Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU")

  Hive: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate

Name                          Property
----                          --------
AU                            NoAutoUpdate : 1

PS C:\Users\Administrator>

このようになっていれば、ローカル ポリシーで設定した場合と同じ状態になります。

設定完了後に再起動を行い、Windows Update の状態を確認してみましょう。

この設定を行っていても、ローカル ポリシーにて設定を行っていなければローカル ポリシー側では未構成と表示されますので、混乱を招かないためにも通常はローカル ポリシーにて管理を行っていくのが良いと思います。
※そもそも複数のマシンで自動更新の設定を行う場合は、ドメイン環境であればグループポリシーで実装することが望ましいです。

Windows 10 / Windows Server 2016 でも Windows Update の自動更新は止められます
タイトルとURLをコピーしました