Windows Virtual Desktop (WVD) を構築する!

いいね!!

概要については、前回解説しましたので、今回は構築していきたいと思います。
設定を行うまえに、Windows Virtual Desktop (WVD)での全体像を確認したいと思います。

現時点でのWVDの設定は、WVD(Managed)環境に対して、PowerShellで行うため、どのような設定を何のために行うのか、把握し辛いかと思います。
先ずは、設定に必要な全体項目を把握する事から始めましょう!

【全体構造】 ※サービスメタデータ
Tenant Group:テナントグループ ※現時点では、作成/変更 不可
Tenant:識別名。 ※1つのサブスクリプションから、複数作成可能
Host Pool:仮想マシンが配置されるプール
Desktop Application Group:デスクトップ配信用グループ
OfficeApps:アプリケーション配信用グループ
UPN:ユーザーアカウント

※[UPN]あたり、[Host Pool]内のどちらかのグループ[Desktop Application Group] [OfficeApps]にしか所属できません。複数の[Host Pool]に所属する事は可能。


全体の流れ

Step1:Azure上での環境構築 ※省略します。
Step2:マスターイメージ用仮想マシンの作成 (Azure)
Step3:エンタープライズ アプリケーションの作成 (Azure)
Step4:テナントの作成 (PowerShell)
Step5:Host Poolの作成 (Azure)
Step6:RemoteAppの作成 (PowerShell)


Step1:Azure上での環境構築

事前に下記環境を作成しておきます。
・リソースグループ
仮想ネットワーク ※DNSをActive Direcotoryに向ける
仮想マシン(Active Directory) x2 ※オンプレでも可
・仮想マシン(AzureAD Connect) x1 ※オンプレでも可
・仮想マシン(マスターイメージ用) ※任意

[今回の環境]
ディレクトリ名:taushiga
AADドメイン名:taushiga.onmicrosoft.com
ADドメイン名:localad.com

AzureAD Connectを使い、Active DirectoryとAzureADを同期しておく必要があります。
※VDIデバイスの[Hybrid Azure AD join]はサポートされていません。


Step2:マスターイメージ用仮想マシンの作成

※詳細は「Windows Virtual Desktop 用のマスターイメージを作成してみる!


Step3:エンタープライズ アプリケーションの作成

自身の AzureAD テナントから、Windows Virtual Desktop (Managed)環境に対してのアクセスを許可する管理者用アカウントを設定します。

エンタープライズ アプリケーション作成の専用サイトがありますので利用します。

Consent Option:Server App / Client App ※両方ともに[Submit]
AAD Tenant GUID or Name:テナントID(ディレクトリID)を入力

AzureADを確認すると、[Windows Virtual Desktop] [Windows Virtual Desktop Client]が作成されています。

[Windows Virtual Desktop]ー[ユーザーとグループ]ー[ユーザーの追加]を選択

管理者用アカウントを選択し、[TenantCreator]を割り当てます。
※多要素認証、外部AzureAD アカウントは、使用できません。


Step4:テナントの作成

WVD (Managed)環境、[Default Tenant Group]内に自身のテナントを作成します。
※作業用端末で実施
※現時点では、PowerShell(管理者)で行う必要があります。

WVD用のモジュールをインストール
Install-Module -Name Microsoft.RDInfra.RDPowerShell
Import-Module -Name Microsoft.RDInfra.RDPowerShell

WVD(Managed)環境に(Step3で指定した)管理者用アカウントでサインイン
Add-RdsAccount -DeploymentUrl “https://rdbroker.wvd.microsoft.com”

WVDテナント作成とAzureADテナントの紐づけ
<ディレクトリ名><ディレクトリID><サブスクリプションID>
New-RdsTenant -Name taushiga -AadTenantId 77628c6c -AzureSubscriptionId 5573f89f
※ディレクトリ名は、Azure側のディレクトリ名と一致させる必要はない。単なる識別名


Step5:Host Poolの作成

WVD (Managed)環境、[Host Pool][Desktop Application Group][UPN]の設定を行います。
※[OfficeApps](RemoteApp)は、PowerShellにて行います。

[+新規]ー[検索:Windows Virtual Desktop – Provision a host pool]ー[作成]を選択

Hostpool name:表示名
Desktop type:[Pooled / Personal]
Default desktop users:アクセスを許可するAzureADユーザー
Subscription:Azureサービスの提供範囲
Resource group:中身が空である必要があるので、Host PoolごとにRGを作成する事になる
Location:デプロイするAzureのリージョン

Usage Profile:[Light(6) / Medium(4) / Heavy(2) / Custom(1)]
※サーバー台数算出のための接続数の目安。Personalの場合は、表示されません。
Total users:VDI利用者の数
Virtual machine size:デフォルト[D8s v3]
Virtual machine name prefix:Pool-VDI-0,Pool-VDI-1,

Image source:[Blob storage / Managed image / Gallery]
Image OS version:[Server 2016 / Win10 Multi-session] ※現時点
Disk Type:[HDD / SSD]
AD domain join UPN:ドメイン参加用のユーザーを指定
Admin Password:
Specify domain or OU:[no / yes]
ーDomain to join:ドメイン名
ー(Optional) OU path:※OU=WVD,DC=localad,DC=com
Virtual network:VDIを展開する仮想ネットワークを指定
Subnets:VDIを展開するサブネットを指定

Windows Virtual Desktop tenant group name:変更不可
Windows Virtual Desktop tenant name:AzureADのディレクトリ名
Windows Virtual Desktop tenant RDS Owner:[UPN / Service principal]で指定が可能
UPN:(Step2で指定した)管理者用アカウント
Password:

下記リソースが作成されます。 ※節約のためサーバー2台構成に変更しています。

これにて、デスクトップ配信の環境が整いました。


Step6:RemoteAppの作成

WVD (Managed)環境、[OfficeApps](RemoteApp)の設定を行います。
※作業用端末で実施
※現時点では、PowerShell(管理者)で行う必要があります。

RemoteAppグループの作成
New-RdsAppGroup -TenantName “taushiga” -HostPoolName “Pool-VDI” -Name “officeApps” -ResourceType RemoteApp

インストールされているアプリケーション一覧を表示
※指定したHost Pool内のVMが起動している必要がある
Get-RdsStartMenuApp -TenantName “taushiga” -HostPoolName “Pool-VDI” -AppGroupName “officeApps”

配信するアプリケーションを設定
New-RdsRemoteApp -TenantName “taushiga” -HostPoolName “Pool-VDI” -AppGroupName “officeApps” -Name “IE” -AppAlias “internetexplorer
-name:表示名なので自由に設定可能
-AppAlias:Get-RdsStartMenuAppで表示された、[AppAlias]を記入

アプリケーション配信グループ[officeApps]に、ユーザーを追加
Add-RdsAppGroupUser -TenantName “taushiga” -HostPoolName “Pool-VDI” -AppGroupName “officeApps” -UserPrincipalName “user01@taushiga.onmicrosoft.com


おまけ

Host Poolへの、負荷分散方法と最大接続数の変更を行いたいと思います。
デフォルトだと、[負荷分散方法:BreadthFirst] [最大接続数:999999]となっているので、PowerShellにて変更します。

[負荷分散方法:DepthFirst] [最大接続数:10]
Set-RdsHostPool -TenantName “taushiga” -HostPoolName “Pool-VDI” –DepthFirstLoadBalancer -MaxSessionLimit 10

[負荷分散方法:BreadthFirst] [最大接続数:10]
Set-RdsHostPool -TenantName “taushiga” -HostPoolName “Pool-VDI” –BreadthFirstLoadBalancer -MaxSessionLimit 10


おまけ2

[デスクトップFriendlyNameの変更]
Set-RdsRemoteDesktop -TenantName “taushiga” -HostPoolName “Pooled-Win10-Master” -AppGroupName “Desktop Application Group” -FriendlyName “CSA

[アプリケーションFriendlyNameの変更]
Set-RdsRemoteApp -TenantName “taushiga” -HostPoolName “Pooled-Win10-Master” -AppGroupName “officeApps” -Name “IE” -FriendlyName “CSA-IE


お疲れ様でした!!
これにて、デスクトップ&アプリケーション配信の環境が整いました。
次回は作成した”デスクトップ”と”アプリケーション”に接続してみたいと思います。