
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. Azure Update Managerのメンテナンス期間の考慮点|セミナーフォローアップ
2025年09月30日配信
執筆者:山内 和朗
2025年9月18日に開催されたオンラインセミナー「セイテク・シス管道場 第5回 WSUSにさよなら、これからのサーバー更新管理~クラウド/オンプレはAzure Update Managerにお任せ! でも、閉域網はどうする?~」(アーカイブ公開中)のフォローアップです。Azure Update Managerのメンテナンス構成のメンテナンス期間について。
Azure AutomationのRunbookをWebhookで呼び出して、Azure VMの起動から、メンテナンス(更新プログラムのインストールと再起動)、Azure VMの停止(シャットダウンして割り当て解除)までを自動化するメンテナンス構成を紹介したところで、直近の9月10日の更新プログラム(2025-09 B)のインストールが失敗(Failed)ステータスで終了していることをお見せしました。
更新が失敗した理由は、メンテナンス期間内に終了しなかったことです。メンテナンス期間は最大3時間55分に設定できますが、問題のAzure VMは3時間0分で運用していました。先月まではそれで問題なかったのですが、今月は更新プログラムのダウンロードとインストールに予想以上に時間がかかったようです。問題のAzure VMは、当日、次に起動したときに、最新のOSビルドへの更新が完了していたことを確認済みです。デモでは、メンテナンス期間を最大の3時間55分に変更する操作を見ていただきました。
セミナー終了後に、Runbookの実行履歴やゲストOSのイベントログなどを合わせて詳しく確認したところ、メンテナンス後の最初の起動時に更新プログラムのインストールが完了していたことがわかりました。
以下のドキュメントで説明されているように、再起動が必要な場合、メンテナンス期間に10分残っていないと、再起動がスキップされる仕様です。
Azure portal と Azure Policy を使用してマシンの定期的な更新をスケジュールする|Azure(Microsoft Learn)
今回のケースでも時間が足りずにシャットダウンはスキップされたのだと思います。しかし、メンテナンス期間を超えて、進行中のインストール処理が終わった時点で、Runbookの呼び出しによりAzure VMがシャットダウン、停止されたという状況にありました。そして次に起動したときに、再起動中のインストール処理が継続され、更新プログラムのインストールは正常に完了したというわけです(画面1)。
画面1 メンテナンス期間内に再起動は行われず、Runbookで停止されたAzure VMは、次回起動時に更新プログラムのインストールの後半(再起動後の処理)が実施されていた
なお、上記ドキュメントで説明されているように、(Windowsの場合)再起動が行われた場合、Azure VMでは最大15分間、Azure Arcマシンでは最大25分間、再起動の完了を待ちます。メンテナンス期間内にメンテナンス(更新プログラムのインストールと必要に応じて再起動)が完了しなかった場合、そして再起動が最大待ち時間までに完了しなかった場合、いずれの場合もAzure Update Managerは失敗とマークするようです。
WindowsやWindows Serverの場合、原因不明で更新プログラムのインストールや再起動に時間がかかる、更新プログラムのインストールに関係なく再起動に時間がかかるといったことは、珍しくないかもれません。しかし、Azure Update Managerのメンテナンス構成のメンテナンス期間の最大は3時間55分という制約があります。
更新プログラムのインストールや再起動に時間がかかりがちな場合は、メンテナンス構成で「再起動の設定:再起動しない」を選択することで、Azure Update Managerのメンテナンス期間の制約を回避できます(画面2)。Azure Update Managerでは、その更新タスクは失敗とマークされるかもしれませんが、進行中のインストールがメンテナンス期間を理由に中断されることはありません。
画面2 メンテナンス構成で「再起動の設定:再起動しない」を選択する
メンテナンス構成では再起動させずに、保留中となった再起動については、再起動しても良い日時に実施すればよいのです。次のPowerShellスクリプトは、保留中の再起動がある場合は、強制的に再起動する例です。
if ((Test-Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired") ` -or (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending")) { Write-Host "Reboot Now" Sleep 30 Restart-Computer -Force } else { Write-Host "No pending reboot" } |
このようなスクリプトをAzure Update Managerのメンテナンス構成とは別の方法、例えばローカルのタスクスケジューラーやAzure Runbook(ハイブリッドWorkerで以下のスクリプトを実行)のスケジュールへのリンク(画面3)で定期的に実行させることで、保留中の再起動に自動的に対処することができます。
画面3 保留中の再起動を検出して再起動するスクリプトをハイブリッドWorkerで定期実行させる