Winodws Update (Intune) + 配信の最適化

# WSUSの廃止

色々なところで記事になっておりますが、WSUSが廃止となります。一応Windows Server 2025では機能追加が可能なものの、移行を考える必要があります。

https://blogs.windows.com/japan/2024/09/25/windows-server-update-services-wsus-deprecation/

Intuneでの更新プログラム管理は昔からあったようですが、さらに自動化をするための仕組みとして近年登場したのが、Autopatchということになります。

https://azuread.net/archives/12345

https://learn.microsoft.com/ja-jp/windows/deployment/windows-autopatch/overview/windows-autopatch-overview?tabs=business-premium-a3-communications

# Autopatch

まずはIntuneの画面からautopatchグループを作成する。展開リングを必要な数だけ作成する。

https://learn.microsoft.com/ja-jp/windows/deployment/windows-autopatch/deploy/windows-autopatch-groups-overview

次に展開リングに適用するEntraグループを作成してコンピュータデバイスをメンバーとして登録する。セキュリティグループで作成するところがポイントのようです。作成したグループを、それぞれの展開リングの割り当て済みグループに指定します。

https://learn.microsoft.com/ja-jp/autopilot/tutorial/user-driven/azure-ad-join-device-group#create-a-device-group

https://zenn.dev/takuyaot/books/45d4f4494a63ce/viewer/1fb508


Windows Update設定を行います。デプロイリングの設定として延期期間、期限、猶予期間の設定をします。多分以下でよいはず。

延期期間：更新プログラムがリリースされてからダウンロードするまでの期間
期限：ダウンロード後インストールを行うまでの期間
猶予期間：インストール後再起動するまでの期間

ドライバー更新のリング設定を行う。
手動にすることで、特定のドライバーを展開することが可能。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/cfdc0cb7-af2e-7ed9-44f4-48fc8615091d.png)
　
機能更新プログラム タブで、Global DSS Policyが自動作成されているので「展開する機能更新プログラム」で指定したビルドが展開するビルドとなる。
https://learn.microsoft.com/ja-jp/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-feature-update-policies#global-release-policy-configuration
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/d9ccca1c-60b5-085b-bc3e-9ce1755747e2.png)
　
autopatchの対象として、Officeを有効化すると自動的に構成プロファイルが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/614cee27-987e-d038-14a1-10a4967f48fa.png)

セキュリティグループも自動的に作成されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/28303afc-1355-8700-bf80-971b0f24f1d2.png)

それぞれの構成プロファイルに、自動的に作成されたグループが適用されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/63231878-e075-7715-4a7a-4907d781c19d.png)



# 配信の最適化

一方、autopatchとセットで考える必要があるのが、配信の最適化となります。遍歴は以下リンク先が参考になります。

https://www.youtube.com/watch?v=GFHIhEXM6c8

https://www.docswell.com/s/takuyaot/K3GMYD-PR24-windows-network

簡単に言うと、すでに更新プログラムをダウンロード済みのパソコンから、更新プログラムを取得することにより、インターネットアクセスを削減できるという仕組み。直近ではキャッシュサーバーという仕組みがプレビュー版になり、WSUSのようにサーバーから更新プログラムを配信することが出来るようになった。

最初に取得する先はローカルのピア、次にキャッシュサーバー、次にインターネットという順番が一番インターネットの負荷を下げられる構成になるかと思います。

https://learn.microsoft.com/ja-jp/windows/deployment/do/whats-new-do

https://learn.microsoft.com/ja-jp/mem/intune/configuration/delivery-optimization-settings

https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-faq

https://jpwinsup.github.io/blog/2024/08/30/WindowsUpdate/DO/DeliveryOptimization_QA/

https://learn.microsoft.com/ja-jp/microsoft-365-apps/updates/delivery-optimization

https://msendpointmgr.com/2024/06/20/delivery-optimization-troubleshooting-reporting/

https://msendpointmgr.com/2022/03/25/delivery-optimization-configuration-monitoring/

|項目|設定値|
|---|---|
|ダウンロード モード|グループ (2)|
|ピアの選択を制限する方法を選択します|ローカル ピア検出|
|キャッシュの最大有効期間|14日(or7日?)|
|ピア キャッシュを使用できる最小 RAM (包括的)|4GB|
|ピア キャッシュを使用できる最小ディスク サイズ|128GB|
|最大キャッシュ サイズ|10%|
|ピア キャッシュ コンテンツ ファイルの最小サイズ|1MB|
|月間アップロード データ上限|1|
|最小バックグラウンド QoS|64(or500?)|
|デバイスが VPN 経由で接続している間にピア キャッシュを有効にする|無効|
|設定されたバッテリ レベルの下でデバイスがバッテリに搭載されている間にアップロードを許可する|40|
|HTTP からのバックグラウンドダウンロードを遅延する (秒)|3600|
|HTTP からのフォアグラウンドダウンロードを遅延する (秒)|60|
|バックグラウンド ダウンロード キャッシュ サーバー フォールバックを遅延する(秒)|3600|
|フォアグラウンド ダウンロード キャッシュ サーバー フォールバックを遅延する (秒)|60|


※それぞれの詳細は以下リンクを参照
https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-reference

・「ダウンロードモード」と「ピアの選択を制限する方法」について
ADを構築している場合は、ダウンロードモードはグループ(2)モードが推奨。

**グループ(2)モードにすることで「Active Directory Domain Services (AD DS) サイト、またはデバイスが認証されるドメインに基づいてグループが自動的に選択」される**。

さらに、**ピア制御選択で「サブネット」または「ローカルピア検出」を指定すればサブネット内でピアを探す動作となります**。ローカルピア検出は以下のような効果があるようです。
「This is important as the DNS-SD option is used to allow local peer discovery, removing the clients need to contact the backend Microsoft Delivery Optimization service in order to be informed about the peers which have content.」
「so the is no seeding slot limits imposed and this can help you achieve much higher DO figures.」
　
・取得先の優先順位をつける
https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-reference#policies-to-prioritize-the-use-of-peer-to-peer-and-cache-server-sources
「ピアツーピアと接続済みキャッシュの両方が構成されている場合、ピアツーピア遅延設定がキャッシュ サーバーの遅延設定よりも優先されます。 **この設定を使用すると、配信の最適化でピアを検出してから、接続キャッシュ キャッシュ サーバーのフォールバック設定を認識できます。** 」
　
・配信の最適化が適用される対象
https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization#windows-client
-- 一部抜粋 --
Windows Update (機能更新プログラム、品質更新プログラム、言語パック、ドライバー)
Microsoft 365 Appsと更新プログラム
Edge Browser Updates
Teams (MSIX インストーラー経由)
　
・配信の最適化のエンドポイント
https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-faq#----------------------------------------------
*.prod.do.dsp.mp.microsoft.com
*.dl.delivery.mp.microsoft.com
*.windowsupdate.com
　
・配信の最適化で受信許可が必要なポート
https://learn.microsoft.com/ja-jp/windows/deployment/do/waas-delivery-optimization-faq#---------------------
TCP/UDP 7680
　
・配信の最適化をZscalerを使用するときの注意点
https://msendpointmgr.com/2024/06/27/delivery-optimization-zscaler-a-how-to-guide/


# Microsoft Connect Cashe

MCCサーバーを用意することで、WSUSのように社内のサーバーから配信という構成にできる。社内ではMCCサーバー、社外ではhttpからダウンロードという構成にできる。また、更新プログラムだけでなく、Microsoft 365 Appsもキャッシュしてくれる。

https://learn.microsoft.com/ja-jp/windows/deployment/do/mcc-ent-create-resource-and-cache?tabs=portal

https://learn.microsoft.com/ja-jp/windows/deployment/do/mcc-ent-edu-overview

https://learn.microsoft.com/ja-jp/windows/deployment/do/mcc-isp-faq

サーバーマネージャーの役割と機能から、Windows Subusystem for Linuxをインストール。
その後、再起動。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/72f6a2eb-9303-6eef-1dbc-9d395e0bdb37.png)

Powershellを管理者モードで開きコマンドを実行。
`WSL.exe --update`を実行。
`wsl.exe --install --no-distribution`を実行し再起動。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/7dfcb34f-b5d4-4ce3-94ca-561b30230d67.png)

以降のコマンドを実行する前にシステムロケールを英語(米国)に変更しておく。
多分英語環境以外？だとバグがあるっぽい。

以下を見ると`provisionmcconwsl.ps1`実行時のPowerShellが英語表示になっている
https://zenn.dev/microsoft/articles/b500e95a7312c2#2.-windows-server-%E3%81%AB%E5%B1%95%E9%96%8B%E3%81%99%E3%82%8B

こちらでは日本語環境は失敗と書いてあります
https://sccm.jp/2024/11/24/post-6657/

こちらでも英語環境にしろという回答があります
https://techcommunity.microsoft.com/discussions/connected-cache-enterprise-education/error-installation-mcc-on-server-2022/4356578

以下コマンドを実行。
`$User = "$env:computername\Administrator"`
`$myLocalAccountCredential = "$env:computername\Administrator"`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/a9a1b747-1f3a-c88b-49d2-11b29ad2ec60.png)

次に、以下ページからコピーして実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/37c94a69-5db8-2db7-6bcf-47f663ee5dd3.png)

再起動しろと出てきたら再起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/751e1188-bbdb-65bb-9360-e678c9a17fdd.png)

無事インストール完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/431ed8f6-649e-08ec-835e-21ea968718b4.png)

しばらく待つとStatusが「Healthy」となる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/4b7f4050-83a8-763a-175a-1fa1a440acf9.png)

インストールが完了後はロケールを戻しても大丈夫みたいです。ロケール変更後以下ページの確認方法で確認
https://learn.microsoft.com/ja-jp/windows/deployment/do/mcc-ent-verify-cache-node#steps-to-verify-functionality-of-connected-cache-node
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/bec55cd5-63fa-4e48-02e5-61b7222f6a2b.png)

クライアントでキャッシュサーバー指定してみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/b6e59678-a939-08f1-29b7-5787909d0787.png)

キャッシュサーバーからデータを取得していることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/1d3ef5d5-f733-cb89-a015-655b6abe190c.png)



注意点
・検索欄で`winver`を実行。ビルドが20348.2227以降であることを確認。
https://learn.microsoft.com/ja-jp/windows/deployment/do/mcc-ent-prerequisites
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/a9ba2e7d-18ca-080f-2d15-efddbd27464c.png)

・仮想ゲストOSの場合「入れ子の仮想化(Nested Virtualization)」対応をする必要あり
自分の環境はEsxiのため以下を有効化する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70042/a548d376-46cb-c15f-bcfd-b26f1f8d6e8d.png)

Hyper-Vの場合は以下コマンドらしい
`Set-VMProcessor -VMName [VMname] -ExposeVirtualizationExtensions $true`

・URL許可
以下がブロックされている場合インストールが途中で失敗する
http://assets1.xboxlive.com/Z/routing/up.txt