パッチオーケストレーションオプションについて

Azure の仮想マシンを作成する際のオプションとして、パッチオーケストレーションオプション という設定があります。この設定によって、振る舞いにどのような差があるのかを調べてみました。
さらには、Azure で VM を展開した場合と オンプレミス（メディアからインストール）の場合で差がありました。これは 大変興味深い結果となっています。

# 検証してみて分かったこと
Azure仮想マシン作成時の規定値は、「OSによる自動処理（Windowsの自動更新）」です。
この設定は、新しい更新プログラムがあると、勝手にダウンロードされ OSの未使用時や再起動時に勝手にインストールが行われてしまいます。パッチセキュリティの観点では 常に最新が維持されますが、停止しておいた VM を起動した際に、更新が始まって 利用するまで待たされる・・という影響を受けます。
私も、すぐ使いたいのに、RDP接続ができずに待たされてイライラした経験があります。

上記の動作が好ましくない人は「手動」に設定しておいた方が良いでしょう。ただし、セキュリティが心配ですので、適宜 手動でパッチを適用してください。

オンプレミス環境へインストールした Windows Server の場合は、上記のどちらの構成とも違う動作となります。新しい更新プログラムが見つかると、自動でダウンロードが行われて、利用者へ通知が行われます。基本的には、利用者の指示によってインストールされるようになっています。
このため、Windows Update の適用されるタイミングが オンプレミスのOS と AzureVM とでは違っている点に注意が必要になる事が判りました。

# 設定する場所は どこにあるのか？
パッチオーケストレーションの設定は、Azure Portal で 仮想マシン作成時の「管理」タブの一番下にあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b1740082-c53a-60ef-366f-6a30ebda608a.png)

パッチオーケストレーションオプションで設定できる値は、以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ec612077-e3a1-b68a-d745-7136ad431b9d.png)
(1) OSによる自動処理（Windowsの自動更新） = (English : AutomaticByOS)
(2) Azure オーケストレーション（プレビュー）= (English : AutomaticByPlatform)
(3) 手動で更新 = (English : Manual)
(4) イメージの規定値 = (English : ImageDefault)

上記のうち、標準で選択が可能なのは (1) と (3) です。今回は (1) と (3) の違いを見ていきます。
(2) は、「可用性優先のパッチ適用」とも呼ばれていますが、この機能は別の機会に解説したいと思います。(4) は、OS が Linux の場合の選択肢です。

詳細は、以下の公開情報に記載されています

【パッチオーケストレーションのモード】
https://docs.microsoft.com/ja-jp/azure/virtual-machines/automatic-vm-guest-patching#patch-orchestration-modes

【可用性優先のパッチ適用】
https://docs.microsoft.com/ja-jp/azure/virtual-machines/automatic-vm-guest-patching#availability-first-patching

# 仮想マシン作成後 に差がみられた箇所
(1) OSによる自動処理（Windowsの自動更新）と (3) 手動で更新 のそれぞれで 仮想マシンを作成して、違いを見てみたところ、以下の３か所に違いが見受けられました。
- サーバーマネージャーの Windows Update 欄の表記
- 設定（歯車アイコン）から、更新とセキュリティ、Windows Update 配下の構成
- レジストリ値

## サーバーマネージャの表記
###  Azure：OSによる自動処理（Windowsの自動更新）(AutomaticByOS) および オンプレミスの OS
日本語：Windows Update を使用して更新プログラムを自動的にインストールする
English : Install updates automatically using Windows Update
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/903c3760-a61b-2cde-6776-585554b23fef.png)

### Azure：手動 (Manual) 
日本語：更新プログラムを確認しない
English : Never check for updates
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/980c3731-8918-12cd-44cf-a5774b0f7041.png)

## 設定(歯車アイコン)－更新とセキュリティ－Windows Update
下図の赤枠部分をクリックした際の設定画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b076cd74-ae77-1b80-07e3-7bd37d2509fa.png)

###  Azure：OSによる自動処理（Windowsの自動更新）(AutomaticByOS)
赤字で、「一部の設定は組織によって管理されています」という注釈が出ています。
この構成の場合は、パターン１～３ まで時系列に変化していきます。
#### パターン１：利用できる更新プログラムはありません
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/35795927-f583-6f10-b2d1-d978a22dfc9c.png)
※「OSによる自動処理（Windowsの自動更新）」の設定でも、仮想マシン作成直後は この画面になっている時がありますが、暫く時間が経つと パターン２へ遷移します。

#### パターン２：利用可能な更新プログラム
新しい 更新プログラムの情報が検知されると、この画面になり、ダウンロードが行われます。
ただし、インストールは 即時には行われず 「アクティブ時間」で設定された時間帯を避けたタイミングや OSを再起動したときに自動的に行われます。
日本語：利用可能な更新プログラムと表示され、インストールの保留中、[今すぐインストール] ボタン
English : Updates available, Pending install, [Install now] Button
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7a2ee197-1db0-2c59-7114-a1b0031a2cbd.png)

#### パターン３：最新の状態です
更新プログラムが全てインストールされると、この画面になります。
再び、新しい更新プログラムが検知されると、パターン２ の画面に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8721235e-c4c1-7874-e046-0da7b7ac8b9f.png)

### Azure：手動 (Manual) 
赤字で、「一部の設定は組織によって管理されています」という注釈が出ています。
手動の場合は、何もしなければ 更新プログラムは一切入りません。
日本語：利用できる更新プログラムはありません
English : No updates available
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/35795927-f583-6f10-b2d1-d978a22dfc9c.png)
※この画面で「更新プログラムのチェック」を押してしまうと、チェック＆ダウンロード＆インストールが実行されます。このボタンを押さない限り、更新プログラムの導入は行われません。

### オンプレミスの OS
「一部の設定は組織によって管理されています」という赤字の注釈が出ていません。
この点が、Azureから展開したサーバとの差異となっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/28879083-90a5-02f8-ac1b-4f5a1a2e9305.png)
※オンプレミスのマシンがインターネットに接続されていると、このあと 更新プログラムが自動でダウンロードされて、インストール待ちの状態になりますが、検証した環境は インターネットに繋がっていないので上記の画面になっています。ご承知おきください。

## 設定(歯車アイコン)－更新とセキュリティ－Windows Update－構成されている更新ポリシーを表示
下図の赤枠部分をクリックした際の設定画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b428bf01-b626-4ae8-595f-1abc498468a8.png)

###  Azure：OSによる自動処理（Windowsの自動更新）(AutomaticByOS)
デバイスに設定されているポリシーは、以下の２つ
（日本語）
　- 更新プログラムを自動的にダウンロードし、指定されたスケジュールでインストールする
　- 自動更新オプションの設定
(English)
　- Automatically download updates and install them on the specified schedule
　- Set Automatic Update Options
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bc634105-63f8-8f0a-87de-0fa194a86354.png)

### Azure：手動 (Manual)
デバイスに設定されているポリシーは、以下の３つ
（日本語）
　- 自動更新を無効にする
　- その他の Microsoft 製品の更新プログラムの入手
　- 自動更新オプションの設定
(English)
　- Disable automatic updates
　- Get updates for other Microsoft products
　- Set Automatic Update options
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/14b71aff-6037-e8bc-667f-fe55fd8dc42b.png)

### オンプレミスの OS
この設定画面はありません。

## レジストリ値
\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

###  OSによる自動処理（Windowsの自動更新）(AutomaticByOS)
- AUOptions = 4　（4 の場合は、自動的にダウンロードしスケジュールされている時間にインストール）
- NoAutoUpdate = 0 （0 の場合は、自動更新を有効化）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/dc4464ba-3c96-1671-62d3-9273acf55141.png)

### 手動 (Manual)
- AUOptions = 3（3 の場合は、自動的にダウンロードしインストールを通知）
- NoAutoUpdate = 1（1 の場合は、自動更新を無効化）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b9872e0e-be78-9202-1454-ccf0afb7ae25.png)

### オンプレミスの OS
- AUOptions = 3（3 の場合は、自動的にダウンロードしインストールを通知）
- NoAutoUpdate = 未設定（未設定の場合は、規定値として 0 つまり、自動更新が有効化）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/051dfa0d-542c-e70f-5662-f616af67228e.png)

【レジストリの設定値による動作の違い】
レジストリ値の詳細は、以下の公開情報を参考にしてみてください。

https://docs.microsoft.com/ja-jp/windows/deployment/update/waas-wu-settings#configuring-automatic-updates-by-editing-the-registry

# 参考URL

https://docs.microsoft.com/ja-jp/azure/virtual-machines/automatic-vm-guest-patching