Windowsの更新後に自動再起動を停止する方法

マイクロソフトは、更新を実行するたびにWindowsコンピュータを再起動させることを強制します。** 一見すると、Linuxシステムにはそのような要件がないため、異常に思えるかもしれません。更新はバックグラウンドで行われ、現在の作業フローを妨げるべきではありません。このガイドでは、更新を完了した後にWindowsで自動再起動を停止するためのいくつかの回避策を示します。
1. サービスメニューを使用する
これはWindowsの更新後に自動再起動を防ぐ最も簡単な方法です。servicesをWin + Rに入力するか、Windowsメニューの検索を使用してサービスメニューを開きます。項目リストの下までスクロールしてWindows Updateを見つけます。右クリックしてプロパティを選択し、全般タブに移動します。スタートアップの種類を無効に変更します。適用をクリックし、次にOKをクリックします。

この方法にはいくつかの問題がありますが、自由にオフにすることができます。更新関連の活動を一律に禁止することは、現代の脅威環境において必要不可欠なWindowsアプリの更新やセキュリティパッチに影響を与える可能性があります。つまり、ダウンロードも更新のリマインダーもありません。以下には、より細やかなアプローチを提供するより良い方法があります。
2. ローカルグループポリシーエディタを使用する
Windows Pro/Enterpriseデバイスで、実行コマンドを開き、Win + Rを押してgpedit.mscと入力し、Enterを押します。
ローカルグループポリシーエディタウィンドウが開いたら、ローカルコンピュータポリシー-> コンピュータの構成-> 管理用テンプレート-> Windowsコンポーネント-> Windows Updateに移動します。右側のペインで、エントリ: ログインユーザーがいるときの自動再起動を無効にするをダブルクリックします。
有効にチェックを入れ、適用 -> OKをクリックして、将来の更新のために自動再起動機能を完全に無効にします。この方法ではWindowsの更新ダウンロードは許可されますが、強制再起動はありません。

FYI: 最近のWindows更新後に問題が発生している場合は、次に進む方法を学んでください。
3. PowerShellを使用する
PowerShellには、NoAutoRebootWithLoggedOnUsersというレジストリ設定があり、ユーザーはWindowsの更新後に強制再起動を防ぐことができます。この方法はWindows 10では簡単に実行できますが、Windows 11では特定の調整が必要です。正確なレジストリパスが存在しない場合、「パスが見つかりません」のエラーが発生することがあります。
まず、管理者モードでPowerShellを開きます。Windows 11のユーザーは、次のPowerShellスクリプトを実行して上記のレジストリ設定を配置します。
$registryPath="HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"
# レジストリパスが存在するか確認
if(-not(Test-Path $registryPath)){
# レジストリパスを作成
New-Item -Path $registryPath -Force | Out-Null
}
# NoAutoRebootWithLoggedOnUsersを1に設定
Set-ItemProperty -Path $registryPath -Name "NoAutoRebootWithLoggedOnUsers" -Value 1 -Type DWord
# 自動更新の設定 (NoAutoRebootWithLoggedOnUsersが機能するために必要)
Set-ItemProperty -Path $registryPath -Name "AUOptions" -Value 4 -Type DWordこの後、以下のコマンドを入力します。Windows 10のユーザーは、直接入力できます。「パスが見つかりません」のエラーが発生しないはずです。
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -Value 1
後で考え直した場合は、上記のレジストリ値を「0」に設定することで自動再起動を再び有効にできます。
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -Value 0
関連: PowerShellを使用して更新を非表示にすることもできます。
4. レジストリエディタを使用する
PowerShellを使用して更新の再起動を強制停止する上記の方法も、レジストリエディタを使用して行うことができます。この方法はWindows 10では自動的に機能しますが、Windows 11では特定の調整が必要です。
実行コマンドを開き、Win + Rを押してregeditと入力してデバイス上でレジストリエディタを開きます。次のパスをレジストリエディタウィンドウに挿入します。
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateWindowsUpdate -> AU (自動)キーの下に「NoAutoRebootWithLoggedOnUsers」というD-WORD (32ビット)値を探します。デフォルトでは0に設定されていますが、それを1に設定する必要があります。

上記のPowerShellスクリプトを実行していれば、必要に応じてレジストリエントリをこの方法で作成する必要はありません。
注意: 何らかの調整を行う前に、レジストリをバックアップすることをお勧めします。
5. タスクスケジューラを使用する
Windowsの検索ボックスからタスクスケジューラを開きます。タスクスケジューラ -> タスクスケジューラライブラリ -> Microsoft -> Windows -> UpdateOrchestratorに移動します。UpdateOrchestratorサービスはバックグラウンドでWindowsの更新をスキャン、ダウンロード、インストールするために操作します。
UpdateOrchestratorの右側のパネルに再起動オプションが表示されている場合は、右クリックして無効にします。再起動オプションが表示されない場合は、再起動タスクが作成されていないことを意味します。回避方法は、スケジュールスキャンオプションの基本的な再起動パラメータを変更することです。そのプロパティを右クリックして選択します。

条件タブから再起動パラメータを変更します。

FYI: タスクスケジューラが機能していない? 私たちのガイドで修正方法を学びましょう。
6. アクティブ時間の変更
Windowsには、アクティブ時間と呼ばれる機能があり、その名の通り、オペレーティングシステムが自動的に更新をインストールしたり、システムを再起動したりしない期間をユーザーが指定できます。
Windows 11では、設定 -> Windows Update -> 詳細オプション -> アクティブ時間に移動します。Windows 10の場合は、設定 -> 更新とセキュリティ -> Windows Updateを選択します。次に、アクティブ時間の変更を選択します。
アクティブ時間を自動的に調整するボタンが設定されている場合は、手動に変更します。システムが再起動を求めない時間帯を指定します。これらの設定を簡単に調整して、1日のうち最低でも23時間再起動通知を受け取らないようにします。
7. メーター接続を使用する
メーター接続を使用することは、自動再起動を停止しながら、重要な更新をインストールするための素晴らしい方法です。これは、グループポリシーやレジストリエディタを調整したくない人にとって良い方法です。
設定 -> ネットワークとインターネット -> Wi-Fiに移動します。希望するWi-Fiネットワークを選択し、メーター接続スイッチをオンにします。
ここに示されているように、更新がダウンロードされた後にWindowsで自動再起動を停止できます。同様に、Windowsの自動ドライバー更新をオフにすることもできます。Windows Updateサービスが見つからない場合、それをコンピュータに戻す方法があります。