Windows Virtual Desktop (classic) #2 詳細編

この記事のWVDは”Windows Virtual Desktop Fall 2019 Release”が対象です。最新の”Spring 2020 Relase”ではありません。Spring 2020 はこちら

Azure上で仮想デスクトップを提供する”Windows Virtual Desktop”について紹介します。  個人でWindows E3やMicrosoft 365を入手する手段が無い現状テストは難しく、(2019/4/3 個人でも購入出来ました)ドキュメントベースとなっていますが一通り導入検討に必要となりそうな情報をまとめてみました。

なお文中では”Windows Virtual Desktop”をWVDとして略して記載しています。

1. 用語について

WVDを理解する上ででポイントなる用語をまとめました。 実際にテストしていないので推測にはなりますが、WIndows Server標準機能となるMicrosoft VDIがベースになっている感じでしょうかね。

URLはこちら

Tenants・主となる管理対象
・テナントは、1つ以上のホストプールを含む
Host pools次の3つを構成できる
・AzureVMのコレクション
・App groups
・Host poolsの設定
App groups次の2種類のApp groupsを作成できる
・RemoteApp
・デスクトップ
Tenant groups・CSPなどで複数のテナントを提供
End users・仮想デスクトップを利用するユーザ

2. 構成イメージ

公式ドキュメントのTutorialsやHow-toなどから構成イメージを図にしてみました。

  • Azure ADには管理者と利用者のIDを作成し権限を付与
  • Tenantsを作成し、Host Poolsを作成
  • Host Poolsの中でMaster ImageからAzureVMを展開
  • ユーザをApp Groupsに関連付け
  • Host Poolsではタイプや負荷分散ポリシー、接続数を設定

Azure ADを利用する以外、オンプレミスのMicrosoft VDI (Virtual Desktop Infrastructure)に似ている感じですね。

3. WVDの構築の流れ

公式ドキュメントのTutorialsを参考に構築の流れをまとめました。

URLはこちら

デスクトップタイプのHost Poolsを作成する手順は以下になります。Tenants作成はPowerShellのみのようですし、接続ユーザの追加やApp groupsの追加もPowerShell限定ですね。 将来的に機能が拡充することになるのか、運用管理機能を求める場合はCitrixなどがWVDに対応するソリューションを提供することになるのかなと勝手に想像しています。

No.必要な作業操作先
1WVDサービスへAzure ADの権限付与Azureポータル
2Azure ADでTenantCreators権限を付与Azure AD ポータル
3Tenantsを作成PowerShell
4MarketplaceからHost poolsをプロビジョニング
・プールの構成(タイプ、アクセスユーザなど)
・VMイメージの指定
・仮想マシンの展開
Azureポータル
5(option)アクセスユーザの追加PowerShell
6(option) App groupsの作成
※既定でデスクトップのApp Groupsを利用しない場合
PowerShell
7(option) 詳細な権限設定
・管理タスクの委譲
・サービスプリンシパルの作成
PowerShell
8クライアントからの接続
・Windowsクライアントアプリ(非RDP)
・HTML5
接続元デバイス

4. クライアントからの接続

クライアントからの接続方法は大きく2つあります。 WindowsクライアントアプリケーションとWebブラウザ(HTML5)です。

Windows クライアント

ドキュメント上でモジュールダウンロードのリンクが公開されています。接続先はありませんがインストールしてみます。

URLはこちら

ダウンロードしたインストーラを起動します。

Termを確認し、”I accept the terms in the License Agreement”のチェックボックスにチェックし、”Install”をクリックします。

警告が出ました。

Warning 1946.Property

‘System.AppUserModel.ToastActivatorCLSID’ for Shortcut

‘Remote Desktop.lnk’ could not be set.

以下のMicrosoft Support情報を見る限り、WVD特有の話ではなく無視して問題ないとのこと。無視します。

https://support.microsoft.com/en-us/help/2745126/warning-1946-message-when-you-install-a-windows-installer-package-in-w

インストールは完了しました。

起動してみます。”Remote Desktop”をクリックします。

”Subscribe”をクリックします。

WVD向けの設定は何も実施していませんが、Azure ADのアカウントでサインインします。 WVDの構築の流れのNo.1の権限付与の作業を実施していません。おそらくダメな予感がします。

予想通りダメでした。 

以下の手順から”Grant Azure Active Directory permissions to the Windows Virtual Desktop Preview service”の手順を実行します。

URLはこちら

上記に記載の手順を実施後に再度、”Remote Desktop”を起動します。 結果は同じでした。 別日にテナントの作成まで進めてみてどうなるか試してみます。 

おそらく、この”Remote Desktop”アプリケーションではFQDNやIPアドレスを接続先に指定するのではなく、Subscribeで指定したAzure ADアカウントに紐づいているApp groupsに自動的に接続する動作なのかもしれません。 今は、その接続先が存在しないために失敗しているのかなと。

マニュアルにも”After successfully authenticating, you should now see a list of resources available to you.”とあるので、利用可能なリソースが未作成な現状、失敗するのは妥当なのだと思います。

Webブラウザからの接続

公式ドキュメントには対応する環境が以下の通り紹介されています。HTML5対応が条件となりますが幅広い環境に対応していますね。と思ったらAndroidがありませんね。

URLはこちら

BrowserSupported OSNotes
Microsoft EdgeWindows
Internet ExplorerWindows
Apple SafarimacOS
Mozilla FirefoxWindows, macOS, LinuxVersion 55 or later
Google ChromeWindows, macOS, Linux, Chrome OS

5. ユーザープロファイルの構成

仮想デスクトップ環境では注意が必要なユーザープロファイルの構成についても公式ドキュメントに構成方法が記載されています。

URLはこちら

上記ドキュメントの冒頭に以下の記載があります。 FSLogixのプロファイル管理を利用しましょう、UPD(Microsoft VDIのソリューションですね)は推奨しませんとのこと。 非推奨ということでUPDも利用は出来るが将来提供が停止されるようですね。

The Windows Virtual Desktop Preview service offers FSLogix profile containers as the recommended user profile solution. We don’t recommend using the User Profile Disk (UPD) solution, and it will be deprecated in future versions of Windows Virtual Desktop.

https://docs.microsoft.com/en-us/azure/virtual-desktop/create-host-pools-user-profile

このFSlogixを使う方法ですが、同じドキュメント内にエージェントのダウンロードリンクがあり、ダウンロードしたエージェントを仮想マシンにインストールするとのこと。 無償で利用できるようですが、設定はregeditから直接レジストリを編集してくださいとのこと。 ある意味シンプルで良いですね。

対象のキーは”HKEY_LOCAL_MACHINE\software\FSLogix\Profiles”

NameTypeData/Value
EnabledDWORD1
VHDLocationsMulti-String Value“Network path for file share”
VolumeTypeStringVHDX
SizeInMBsDWORD“integer for size of profile”
IsDynamicDWORD1
LockedRetryCountDWORD1
LockedRetryIntervalDWORD0

パラメータを見る限り、CitrixやVMwareの同じようなソリューションに比べて調整できるパラメータが大分少ないですね。 場合によってはお金を出してLiquidware ProfileUnityを使った方がよいかもしれませんね。

なお、ダウンロードしたFSlogixのZIPは162MBで展開したフォルダにあるReadmeファイルも参考までにのせておきます。 

fslogix.adm/admxはグループポリシーのテンプレートですね。これがあればレジストリを直接編集しなくとも変更出来そうです。

FSLogix Apps Rule EditorもあるようなのでこのFSlogixの提供元サイトなどにあるだろうドキュメントを調べれば上記の少ないレジストリ設定以外のことも色々と出来そうな感じです。

Contents of ZIP file
README.txt – This file
fslogix.adml/admx – FSLogix group policy definitions
Win32\Release (subfolder) – for 32 bit systems
FSLogixAppsSetup.exe – FSLogix Apps Agent installer
FSLogixAppsRuleEditorSetup.exe – FSLogix Apps Rule Editor installer
FSLogixAppsJavaRuleEditorSetup.exe – FSLogix Apps Java Rule Editor installer
x64\Release (subfolder) – for 64 bit systems
FSLogixAppsSetup.exe – FSLogix Apps Agent installer
FSLogixAppsRuleEditorSetup.exe – FSLogix Apps Rule Editor installer
FSLogixAppsJavaRuleEditorSetup.exe – FSLogix Apps Java Rule Editor installer
Applications Included On Install
Default location: ‘C:\Program Files\FSLogix\Apps’
FrxTray.exe – FSLogix Profile system tray status utility
ConfigurationTool.exe – FSLogix Profile Configuration Tool
FrxContext.exe – FSLogix vhd(x) context manager
FSLogix Apps Windows Versions Supported
Windows 7 (and later), Windows Server 2008 R2 (and later), 32 and 64 bit
Note: Multi-user Search Database Roaming is supported on Windows 8 (and later), Windows Server 2012 (and later), 32 and 64 bit
Office 365 Container ADMX Template
To use the ADMX template, copy “fslogix.admx” to C:\Windows\PolicyDefinitions, and “fslogix.adml” to C:\Windows\PolicyDefinitions\en-US. Remove any previous versions of these files.
Online Documentation
The latest version of the documentation is located on our website at: http://docs.fslogix.com
Installation instructions: Section “FSLogix Apps Agent Installation”
Unattended installation instructions: Section “FSLogix Apps Agent Installation | Agent Unattended Installation”
Quick Start Guides: Section “Quick Start Guides”
Best Practices
The best practices document is located on our website at: http://www.fslogix.com/best-practices
Support Forum and Known Issues
The support forum is located on our website at: https://support.fslogix.com
The list of Known Issues with the product is maintained there
New versions of this product are announced in the Announcements section of the Forum
Sample Rule Files
Sample Rule Files are available for download from our website at: http://www.fslogix.com/downloads
Acknowledgements (Please see the links for copyright and license restrictions)
This software makes use of the pugixml library (http://pugixml.org).
pugixml is Copyright (C) 2006-2014 Arseny Kapoulkine.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software makes use of the SimpleOpt library (http://code.jellycan.com/simpleopt-doc/SimpleOpt_8h.html)
Copyright (c) 2006-2013, Brodie Thiesfield
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software makes use of QT (http://qt-project.org/doc/qt-5/lgpl.html)
The Qt Toolkit is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies) and other contributors.
This software makes use of the WiX Toolset (http://wixtoolset.org/documentation/manual/v3/main/license.html)
This software makes use of the C++ REST SDK (https://casablanca.codeplex.com/license)

とりあえず、使ってみないことには標準のRoaming Profile+Folder RedirectやCitirixやVMwareのソリューションとどう違うのかなんとも言えないです。

6. 負荷分散ポリシーの構成

WBDのHost poolsには負荷分散ポリシーを設定出来ます。 方式は2つです。 Citrixと比べると機能は大分劣ります。

depth-firstは適用シーンを見極める必要があると思います。 接続数と仮想マシンの負荷はかならずしも比例、相関しないためです。

  1. readth-first load balancing
    • 既定の方式
    • 日本語訳が怪しいですが満遍なく分散する方式
  2. depth-first load balancing
    • 接続数に余裕があるターゲットに優先して割り当てる方式

7. マスターイメージの準備

仮想デスクトップで最も重要で苦労するマスターイメージの準備についてです。 

URLはこちら

他の章は内容はシンプルというか必要最低限の情報にとどまっていたのですがこのマスターイメージの準備については情報が豊富で具体的です。 WVDに限らずに有用な情報もありました。

  • Windows 10 マルチセッションはAzure Image Galleryから入手可能
    • イメージをダウンロードしローカルのHyper-Vでカスタマイズも可能
  • OfficeはProPlusのみサポート
    • Office展開ツールで必要なXML設定も具体例をもとに説明あり
    • 話は変わりますがOffice ProPlusはパッチ適用などでWSUSを利用出来ないなど色々と大変ですよね
  • OneDriveのマシンモードでのインストール手順の紹介
    • 以前、ユーザモードでしか構成できず苦労したのですが今は出来るのですね。
  • Skype for BusinessとTeamsは未サポート
  • Windows Defenderの構成方法の紹介
  • Storage Senseを無効にする

8. まとめ

一通りドキュメントを確認しました。 実際に触っていないので不正確なところがあるかもしれませんがやはりMicrosoft VDIがベースとなっているようです。また、Public Previewということで管理機能を中心にこれからの機能拡充が期待されるところです。 

一方、Windows 7の延長サポートやコネクションブローカーを追加コスト無しで利用できる点、具体的にはわかっていないのですがOffice ProPlusに最適化(パッチ配信のトラフィックをMSのCDNで近いところから取得できるのでしょうかね?勝手な期待ですが)など、世の中に既にあるDaaSでは実現出来ないユニークな特徴をもっていることも事実です。 管理機能が充実すればDaaSの第一候補はWVDになっていくのではとも思いました。

今回の記事で紹介出来ていないことは自動スケールとHost poolsの詳細です。 前者はAzureVMのライセンスコストを最適化するために自動的に起動VMを制御する方法についてです。 後者は、Windowsマルチセッションの話やServerOSのいわゆるSBC方式の話です。あと、個人で1台のVMを占有する”Personal”とCitrixでいうMCSやPVS、VMwareでいうLinked Cloneに相当する”Pooled”の構成の話です。 後日まとめて記事にしてみます。

以上