WSUS (Windows Update Services) のサポートチームの以下の記事で情報が発信されていますが、WSUS から Windows 10 1511 にアップグレードするための、更新プログラムを配信することができるようになっています。
Windows Server 2012 / 2012 R2 の WSUS の重要な更新 (KB 3095113) について
WSUS サーバーからの Windows 10 へのアップグレードの配信
週末、この辺の検証をしていた際のメモを。
まだ、検証しているため、内容は随時変更していると思います。
一応、以下のパターンの配信はできました。
- Windows 10 x64 Enterprise (10240) → Windows 10 x64 Enterprise 1511 (10586)
- Windows 7 x64 Professional SP1? (Retail) → Windows 10 x64 Pro 1511 (10586)
- Windows 8.1 x64 Enterprise Update → Windows 10 x64 Enterprise 1511 (10586)
Contents
■KB 3095113 の WSUS へのインストール
WSUS から Windows 10 1511 へのアップグレードを行うことができますが、アップグレードを行うためには、WSUS に KB 3095113 をインストールしておく必要があります。
これは、WSUS から、Windows 10 のアップグレード用に分類を配信するために必要となる更新プログラムとなります。
WSUS で、Windows 10 1511 (もしくはそれ以降にリリースされたビルド) は配信せず、修正プログラムのようなもののみを配信する場合は、KB 3095113 はインストールする必要がありません。
この KB は Windows 10 のアップグレードを行うために必要となります。
インストールをするタイミングについては「Upgrades」の分類の情報を同期する前に必要となるようですので、Upgrade を配信する準備をする前に導入しておく必要があります。
また、この KB は WSUS 4.0 が動作する、Windows Server 2012 / R2 向けのものとなっています。
Windows Server 2008 R2 では、WSUS 3.0 となるかと思います。
この場合、該当の KB を適用することができませんので、アップグレード用のプログラムを配信することができないかと思います。
- Windows 10 向けの更新プログラムを配信 : WSUS 3.0 でも可能
- Windows 10 10240 / Windows 8.1 / Windows 7 を Windows 10 1511 にアップグレードするためのプログラムを配信 : WSUS 4.0 が必要
というような形になるかと。
WSUS 3.0 では、Windows 10 on WSUS Shows as Windows Vista で解説されているような、Windows 10 の端末が? WSUS のコンソール上、Windows Vista として認識される問題があります。
# 10 向けの更新プログラムは配信できるようですが。
Windows 10 を使用している環境では、WSUS 4.0 の導入を検討する必要があるのかもしれないですね。
ちなみに、今回の投稿の検証は、Windows Server 2016 TP4 を使って実施してしまっています。
■WSUS の設定
WSUS の基本的な設定としては、「Updates」の分類を取得して、「Upgrades」のカテゴリの中にある、Windows 10 1511 にアップグレードするためのプログラムを同期すれば良い形になります。
現状は、以下のパターンのアップグレード用のプログラムを入手できるようです。
- Retail 版の Windows 7 SP1 / Windows 8.1 / Windows 10 を Windows 10 Pro 1511 にアップグレード
- Volume ライセンス版の Windows 7 SP1 / Windows 8.1 / Windows 10 を Windows 10 Enterprise 1511 にアップグレード
- Volume ライセンス版の Windows 7 SP1 / Windows 8.1 / Windows 10 を Windows 10 Education 1511 にアップグレード
- Volume ライセンス版の Windows 7 SP1 / Windows 8.1 / Windows 10 を Windows 10 Pro 1511 にアップグレード
エディションについては同一のエディション間での以降となるのかなと思っているのですが、そこまで細かな検証はできていません。
アップグレード用のモジュールについては、通常の WSUS の操作で、インターネット経由でダウンロードすればよいのですが、配信のための IIS の設定については変更をする必要があります。
WSUS サーバーからの Windows 10 へのアップグレードの配信 / Important update for WSUS 4.0 (KB 3095113) のコメント欄で解説されていますが、Windows 10 のアップグレード用のプログラムは、「.esd」で配信されてきます。
これを IIS で配信するための MIME の設定が行われていませんので、WSUS の IIS で MIME の設定を行っておきます。
MIME の設定をしておかないとクライアントから 1511 を更新しに行った際にエラーとなります。
■クライアントへの配信
コンシューマー向けの Windows 10 のアップグレードは、Get Windows 10 アプリ (GWX) で実施されていたかと思いますが、WSUS の場合は WSUS 側の承認状況に依存するようです。
アップグレードを承認してから数10分、時間をおかないと、WSUS 上は配信対象となっているのですが、クライアント側で「waucult /detectnow」「wuauclt /updatenow」を実行しても、適用可能なプログラムとして認識されなかったため、このタイムラグが何に起因して発生しているのかも調査しないといけなさそうですが。
WSUS で配信をする場合、どの OS でも、「C:\$Windows.~BT」に esd を展開したものを配置して、それを適用するというパターンになっていそうでしたが、「C:\Windows\System32\GWX」は作成されておらず、WSUS 側から配信されるプログラムでアップデートの実施を行う形となっていそうでした。
また、インターネット経由でのアップグレードについては Windows 10 の通知とアップグレードのオプションを管理する方法 で説明されているような、「Enterprise Edition については対象外となる」というようなエディション的な制約があったかと思います。
今回、Windows 8.1 の Enterprise Edition に配信が行われるかも試してみたのですが、Enterprise Edition でも配信が行われましたので、WSUS 側の承認状態で制御ができるようになっているようです。
■Windows 10 10240 → 1511 へのアップグレード
WSUS からの配信の準備が整うと、以下のように 1511 のアップグレードが表示されるようになります。
グループポリシーによるアップグレードの制御
WSUS からのアップグレードは、WSUS 側での承認とコンピューターグループでの制御が一般的ですが、
Windows 10 については、「コンピューターの構成」→「Windows コンポーネント」→「Windows Update」の中の「アップグレードおよび更新を延期する」のポリシーでも制御はできていそうでした。
グループポリシーでアップグレードを延期し、
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
- DeferUpgrade (REG_DWORD) : 1
が設定されている場合は、WSUS 側で承認されていても、アップグレードを適用しないという制御になっていそうです。
設定は、GUI の「アップグレードを延期する」と対応しているレジストリとなるかと思いますが、GUI へ反映は「更新プログラムのチェック」を実行した後に反映されるようです。
グループポリシーやレジストリを直接設定しただけでは、GUI が以下のようになりませんでした。
しかし、Windows Update for Businessってどうなったの? (2/2)? で解説されている、以下の話があります。
Windows Update for Businessを利用する場合は、極めて重要な点が一つあります。それは、WSUS 4.0(KB3095113を更新済みであっても)やSystem Center 2012 R2以前のConfiguration Managerとの組み合わせでは機能しないということです。
この辺は、どこまでが制御できて、どこからができないのかをもう少し検証する必要があるかと思っています。
「アップグレードを延期する」の「DeferUpgrade」は使えるが、「アップグレードおよび更新を延期する」で追加されたオプションが使用できないというような違いがあるのかも知れません。
1511 のグループポリシーでは、「アップグレードを延期する」が以下のようになります。
「有効」にした場合は、「DeferUpgrade」が有効になりますが、その他の設定については、新規に追加されたレジストリが変更されます。
- アップグレード及び更新を一時停止する : PauseDeferrals
- 以下についてアップグレードを延期する : DeferUpgradePeriod
- 以下について更新を延期する : DeferUpdatePeriod
これらのポリシーが Windows Update for Business 向けに 1511 で追加されているものとなりますので、触っていた感じでは、WSUS で制御ができないのは、上記の WU4B 向けの 3 点になるのでしょうかね。
1511 の次のアップグレードのリリース (Threshold2 → Redstone) がリリースされたタイミングで、この辺のテストを実施することになるのではと考えています。
詳細については、Windows Update for Business explained でしょうか。
■Windows 7 SP1 / Windows 8.1 Update の Windows 10 へのアップグレード
アップグレードのプログラムは対象 OS に 7 / 8.1 も含まれているため、7 SP1 (6.1.7601.17514)/ 8.1 Update (6.3.9600.16500 以降 (KB2919355 適用済み)) であれば配信の対象となるプログラムとなっています。
Windows 10 10240 → 1511 (10586) へのアップグレードはさほど問題なく終わったのですが、Windows 7 SP1 / Windows 8.1 Update については、まだ検証中です。
Windows 10 の場合は、「DeferUpgrade」で制御ができましたが、Windows 7 SP1 / Windows 8.1 Update の場合は、Windows 10 の通知とアップグレードのオプションを管理する方法 に記載されている、「DisableOSUpgrade」の制御が実施できるようです。
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
- DisableOSUpgrade (REG_DWORD) : 1
グループポリシーとしては、上記で紹介した KB を適用した環境下での「Turn off the upgrade to the latest version of Windows through Windows Update」による制御となるかと。
最初の問題点としては、素の Windows 7 SP1 / Windows 8.1 Update では、1511 の更新が、「インストール済みまたは該当しないコンピューター」となってしまっていました。
twitter で教えていただいたのですが、これらの OS を Windows 10 にアップグレードするためには、KB3123862 がそもそもの話として必要ではというアドバイスをいただきました。
KB3123862 は、「更新」の分類を同期することで、配信が可能となるのですが、この KB を入れるためには、他の依存関係がありそうで、単純に KB3123862 を承認した状態では、配信対象となりませんでした。
そのため、今回は各 OS に「更新」の分類をすべて適用してしまいました。
少なくとも、すべての、更新の分類が適用された状態であれば、Windows 10 のアップグレード用のプログラムが WSUS からの適用対象として認識が行われ WSUS 経由でアップグレードを配信することができました。
ただし、「wuauclt /updatenow」を実行しないとうまく、降ってこないような動作をしていました。
通常の「更新プログラムの確認」では、WSUS 上は必要な更新プログラムとして認識されていても、利用できる更新プログラムはありませんという表示となり、アップグレードがうまくできませんでした。
ただし、「wuauclt /updatenow」(または、updatenow をしてから、更新プログラムの確認) を実行すると、以下の画像なような Windows 10 のダウンロードが開始されました。
今回試した方法、正常な適用の流れになっていない気もするのですよね。。。。
updatenow を使用する方法、コンシューマー向けの Windows 10 のアップグレード時にも使われることがあったかと思いますが、これ、正規の手順ではないはずですので。
WSUS からの配信を行った場合は、アップグレードの準備が整うと、以下のような画面が表示されるようになります。
ただし、私の環境では配信はできたのですが、「今すぐアップグレードを開始」をクリックしても再起動後に、イベントログに以下の画像のような「0x8007139F」のエラーが発生してしまい、うまくアップグレードができないケースが多発しました…。
うまく適用できなかった際には、以下のフォルダーを削除して、再度「wuauclt /updatenow」を実行を繰り返していたら、何度かチャレンジしてアップグレードできました。
- C:\$WINDOWS.~BT
- C:\Windows\SoftwareDistribution\Download
アップグレードが成功する場合は、Windows 7 の場合は「シャットダウンしています」、Winodws 8.1 の場合は「再起動しています」の表示の後に、以下のような適用の画面となり、WSUS から配信された Windows 10 1511 へのアップグレードが開始されます
2016/3/5 追記
「wuauclt.exe /Updatenow」をしなくても、
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade
- AllowOSUpgrade (REG_DWORD) : 1
を有効にすることで、「更新プログラムの確認」をクリックして、Windows 10の入手ができるようになりました。
これは、コンシューマー向けでも実施できたものですが、WSUS 経由で Windows 10 を配信される条件としては、このレジストリ値が影響してくるようですね。
Windows Update 80240020 のエラーでインストールに失敗する
アップグレードが完了すると、以下のように Windows 10 にようこそが表示されます。
アップグレード環境ですので、「回復」に元の OS に戻すが表示されます。
Windows 10 周りの管理、いろいろとみているのですが、正直これ結構難しいですね…。