WVD(Windows Virtual Desktop)でマスターイメージを利用する

AzureのWindows Virtual Desktop(以下、WVD)はMicrosoftが提供しているDaaSです。
これを1台ずつ作成していくというのもありますが、同じ構成のものを配布する場合はマスターイメージを作成し、それを利用することで工数が削減できます。

今回はPersonal型を前提にして説明します。

事前準備

  1. WVDではなく、Virtual MachinesからマスターイメージとなるWindows 10 Enterpriseを1台デプロイする
  2. 上記でデプロイしたWindows 10 Enterpriseをマスターイメージ用に設定し、sysprepを行う
  3. sysprepが正常に完了したら、イメージ化を行う

マスターイメージを利用する前の掃除

マスターイメージを作成した際や、WVDで何らかの作業を行った形跡がある場合、掃除を行っておきます。
特に同じテナント名やホストプール名を利用している場合は必要です。

1.AzureADモジュールをインストールし、インポート及びアップデートまで行います
※RDSアカウントでログインもします。

Install-Module AzureAD
Import-Module -Name Microsoft.RDInfra.RDPowerShell
Update-Module -Name Microsoft.RDInfra.RDPowershell
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"

2.利用するテナント名やホストプール名にゴミが存在しないかチェックします

Get-RdsSessionHost -TenantName <テナント名> -HostPoolName <ホストプール名> | ft SessionHostName, LastHeartBeat, AllowNewSession, Status

3.ゴミがあったら掃除します

Remove-RdsSessionHost -TenantName <テナント名> -HostPoolName <ホストプール名> -SessionHostName <セッションホスト名>
Remove-RdsAppGroup <テナント名> <ホストプール名> "Desktop Application Group"
Remove-RdsHostPool <テナント名> <ホストプール名>

4.新しいホストプールを作成します

New-RdsHostPool -TenantName <テナント名> -HostPoolName <ホストプール名> -Persistent
※Personal型は「-Persistent」を加える

マスターイメージを利用してWVDを複数台デプロイする

ここまで行ったら、あとは『Windows Virtual Desktop – Provision a host pool』からWVDを必要台数デプロイします。
Personal型を利用する場合はホストプールを作成する際に、「-Persistent」を加えておかないと、デプロイされるWVDがPool型(共有型)として認識されてしまいますので、注意が必要です。

マスターイメージは『Windows Virtual Desktop – Provision a host pool』のImage Sourceを「Managed image」を選択し、Image nameにてイメージ化したファイル名を指定します。

デプロイしたWVDにユーザーを割り当てる

利用を許可するユーザー毎にWVDを割り当てます。
Personal型の場合、デプロイしたWVD1台に対し、1ユーザーしか割り当ては行えません。また1ユーザーに複数台のWVDを割り当てることもできません。

1.ホストプールの AssignmentType を Direct に変更

Set-RdsHostPool <テナント名> <ホストプール名> -AssignmentType Direct

2.ホストプールとセッションホストにユーザーを割り当て

Add-RdsAppGroupUser <テナント名> <ホストプール名> "Desktop Application Group" -UserPrincipalName <ユーザーのUPNを指定>
Set-RdsSessionHost <テナント名> <ホストプール名> -Name <セッションホスト名> -AssignedUser <ユーザーのUPNを指定>

3.セッションホストの割り当て確認

Get-RdsSessionHost <テナント名> <ホストプール名>
もしくは
Get-RdsSessionHost <テナント名> <ホストプール名> -Name <セッションホスト名>

 

おまけ

別のセッションホストにユーザーを割り当て(WVD変更)する場合は、同時割当が出来ないので
以下のコマンドにて割当を変更する。

# 利用しているセッションホストを削除
Remove-RdsSessionHost -TenantName <テナント名> -HostPoolName <ホストプール名> -SessionHostName <セッションホスト名>

# 別のセッションホストにユーザーを割り当て
Set-RdsSessionHost <テナント名> <ホストプール名> -Name <セッションホスト名> -AssignedUser <ユーザーのUPNを指定>
※利用しなくなったWVDをAzure Portalから削除

 

 

 

 

 

end