はじめに

Azure Virtual Desktopのセッションホスト更新において、従来は以下のような課題がありました。

①セッションホスト更新時に発生する、一時的な重複リソースによるコスト増加

②煩雑なセッションホスト更新作業

-主な更新作業の操作一覧

・移行先セッションホストVMの新規作成

・旧セッションホストVMのドレインモード設定 ※新規セッションの禁止

・旧セッションホストVMのVMリソース削除

・旧セッションホストVMのディスクリソース削除

・旧セッションホストVMのNICリソース削除

・AD上に残っている旧セッションホストのコンピューターオブジェクトの削除

これらの課題を解決するため「セッションホストの更新」の新機能が

プレビューとしてリリースされました。

本機能により、上述の課題が大幅に改善されます。

 

※AVDセッションホスト更新の新機能を利用した場合のイメージ

 

本記事では、「セッションホストの更新」機能について解説します。

注:本記事は2025年2月時点の情報に基づいているため、今後の更新によって内容変更がある可能性がございます。

 

事前作業

前提条件
・マルチセッション環境(プール型)であること。※シングルセッション環境(個人型)はサポート外です
・Hybrid Entra ID Join環境であること。
・既存のセッションホストに対して設定変更はできません
その他詳細な前提条件は下記に記載されております。

https://learn.microsoft.com/ja-jp/azure/virtual-desktop/session-host-update-configure?tabs=portal#prerequisites

 

構成は以下の流れで進めます。

  1. Azure Virtual Desktop サービスプリンシパルへのRBACロールの割り当て
  2. ドメイン参加用アカウントの作成
  3. 仮想マシンのローカル管理者アカウントの資格情報に使用するシークレットを保管するためのキーコンテナーの作成
  4. 仮想マシンのローカル管理者アカウントの資格情報に使用するシークレットの作成
  5. ワークスペース、ホストプール、アプリケーショングループの作成

 

  1. Azure Virtual Desktop サービスプリンシパルへのRBACロールの割り当て

セッションホスト更新時の動作として、Azure Virtual Desktop サービスプリンシパルが Azure Resource Managerにパラメーターを渡して作成されるような形となります。

このため、Azure Virtual Desktop サービスプリンシパルへサブスクリプションまたはリソースグループに対しての以下のアクセス許可が必要となります。

・Desktop Virtualization Virtual Machine Contributor

・デスクトップ仮想化アプリケーショングループの共同作成者

・デスクトップ仮想化の共同作成者

・デスクトップ仮想化ホスト プールの共同作成者

・仮想マシン共同作成者

下記の手順を繰り返し、上記のアクセス権をすべて付与します。

1-1. [サブスクリプション] > [{任意のサブスクリプション}] > [アクセス制御 (IAM) ] を開きます。

1-2. [追加] > [ロールの割り当ての追加] を押下します。

1-3. 「ロール」タブで該当のロールを選択して [次へ] をクリックします。

1-4. 「メンバー」タブの [メンバーを選択する] から “Azure Virtual Desktop” を選択して [次へ] をクリックします。

1-5. 「割り当てのタイプ」タブの [Permanent] を選択して [レビューと割り当て] をクリックします。

1-6. 「レビューと割り当て」タブで [レビューと割り当て] をクリックします

 

  1. ドメイン参加用アカウントの作成 ※作成済みや同等権限の既存アカウントを利用する場合、本項目はスキップしてください 

セッションホストをドメイン参加させるADサーバーにて [Active Directory ユーザーとコンピューター] を開き、ドメイン参加用のアカウントを作成します。

 

その後、ドメイン参加用アカウントに権限を割り当てます。

[Computers] を右クリックして [制御の委任] を選択し、ドメイン参加用アカウントに権限を割り当てます。

 

「オブジェクト制御の委任ウィザード」の各画面で設定する項目は以下のようになります:

「ユーザーまたはグループ」

ドメイン参加用アカウントを追加

「委任するタスク」

[委任するカスタム タスクを作成する] を選択

「Active Directory オブジェクトの種類」

[フォルダー内の次のオブジェクトのみ] を選択し、[コンピューターオブジェクト] にチェックを入れる。さらに、[選択されたオブジェクトをこのフォルダーに作成する] および [選択されたオブジェクトをこのフォルダーから削除する] も選択する。

「アクセス許可」

次のチェックボックスにチェックを入れます。

・パスワードのリセット

・アカウント制限の読み取りと書き込み

・DNSホスト名への検証された書き込み

・サービスプリンシパル名への検証された書き込み

 

 

  1. 仮想マシンのローカル管理者アカウントの資格情報に使用するシークレットを保管するためのキーコンテナーの作成

セッションホストの作成時に使用するドメイン参加用アカウントおよびローカル管理者アカウントのシークレットを構成します。

 

3-1. [キーコンテナー] > [作成] と進みます。

3-2. 「基本」タブでそれぞれ任意の値を各項目に入力して [次へ] をクリックします。

3-3. 「アクセス構成」タブで下記の項目を選択して [確認および作成] をクリックします。

・アクセス許可モデル:[Azure ロールベースのアクセス制御] を選択

・リソース アクセス:[Azure Resource Manager] にチェックが必要(他は任意です)

3-4. 「確認および作成」タブで [確認および作成] をクリックします。

3-5. 作成したキーコンテナーの [アクセス制御(IAM)] を開き、

3-6. [追加] > [ロールの割り当ての追加] を押下します。

3-7. 「ロール」タブで “キーコンテナーシークレットユーザー“ を選択して [次へ] をクリックします。

3-8. 「メンバー」タブの [メンバーを選択する] から “Azure Virtual Desktop” を選択して [次へ] をクリックします。

3-9. 「レビューと割り当て」タブで [レビューと割り当て] をクリックします。

 

  1. 仮想マシンのローカル管理者アカウントの資格情報に使用するシークレットの作成

セッションホストのローカル管理者アカウントとドメイン参加用アカウントのシークレットをそれぞれ作成します。

それぞれの設定値は以下のようになります。

 

ローカル管理者アカウントのアカウント名:

名前:表示名を入力

シークレット値:セッションホストで使用するローカル管理者アカウントのアカウント名を入力

ローカル管理者アカウントのパスワード:

名前:表示名を入力

シークレット値:セッションホストで使用するローカル管理者アカウントのパスワードを入力

ドメイン参加用アカウントのUPN:

名前:表示名を入力

シークレット値:セッションホストで使用するドメイン参加用アカウントのUPNを入力

ドメイン参加用アカウントのパスワード:

名前:表示名を入力

シークレット値:セッションホストで使用するドメイン参加用アカウントのパスワードを入力

 

4-1. 作成したキーコンテナーの [シークレット] 画面を開き、[生成/インポート] をクリックします。

4-2. 名前とシークレット値をそれぞれ入力して [作成] をクリックします。

以下の例のようにシークレットは4つ作成することになります。

  1. ワークスペース、ホストプール、アプリケーショングループの作成

ワークスペース、ホストプール、アプリケーショングループを作成していきます。

 

5-1. [Azure Virtual Desktop] > [ホストプール] に進み、[作成] をクリックします。

5-2. 「基本」タブで各項目を入力し、[次へ] をクリックします。

「セッションホストの更新」機能を有効にするため、「セッションホスト構成の作成」の項目は “はい” にします。(ホストプールの種類が “プール” の場合のみ可能)

5-3. 「セッションホスト」タブで [仮想マシンの追加] を “はい” にして各項目を入力し、[次へ] をクリックします。

「参加するドメイン」および「仮想マシンの管理者アカウント」の項目には、手順2で作成したシークレットを選択していきます。

5-4. 「ワークスペース」タブで [デスクトップアプリグループの登録] を “はい” にして新規ワークスペースを作成し、[作成と確認] をクリックします。

5-5. 「作成と確認」タブで [作成と確認] をクリックします。

作成できたホストプールを確認すると、概要の部分に「セッションホストの構成」の欄でセッションホストの構成が確認できるようになります。

 

セッションホスト更新の新機能を試してみる

セッションホスト構成の管理

[ホストプール] > [セッションホスト] で [セッションホストの更新の管理] > [新しい更新プログラム] をクリックすると、セッションホストの構成を編集できます。

「基本」タブ:セッションホストが更新される際のバッチサイズを変更できます。

例えばセッションホストが10台あったとして、バッチサイズを “3” に設定した場合を考えます。この場合、更新時の処理としてまず初めに1台だけが対象として更新が実施されます。この1台の更新処理が完了すると、バッチサイズで指定した台数分ずつ更新処理が実施されます。更新中のセッションホストは使用できないため、7台のみ使用可能な状態となります。
下記にイメージ図を記載します。

「セッションホスト」タブ:セッションホストの情報を変更できます。2025年1月時点で変更可能な項目は以下になります。

・セキュリティの種類

・仮想マシンのイメージ

・仮想マシンのサイズ

・OSディスクの種類

・ADドメイン参加ユーザーのUPNおよびパスワードのシークレット

・参加するドメインおよびOU

・ローカル管理者アカウントのアカウント名およびパスワードのシークレット

・カスタム構成スクリプト

 

特に、仮想マシンのイメージを変更(OSやアプリケーションのアップデート時など)する際によく使用されることになると思います。

「スケジュール」タブ:セッションホストの更新処理を開始する日時を指定できます。基本的には最もアクティブなユーザーが少ない時間(02:00など)で設定するのが一般的になるかと思います。

「通知」タブ:セッションホスト更新時にユーザーがサインアウトするまでの猶予時間とサインアウトを促すメッセージを変更できます。

※0~60分の間で指定可能です。

「レビュー」タブで [確認 + 更新] をクリックして更新を開始します。

更新中のセッションホストは「ドレインモード」になります。また、更新は「一時停止」または「キャンセル」できます。

更新時、ユーザーがセッションにログインしていると、サインアウト通知が来ます。

その後、クライアントは強制的に切断されます。

 

更新完了後ログインすると、簡単にカスタマイズした新セッションホストに更新されていることが確認できました。

・更新前

 

・更新後

 

おまけ

セッションホスト追加手順も簡易化されていました。

[ホストプール] > [セッションホスト] で [追加] をクリックすると、以下のように入力する項目はセッションホストの数のみです。

これまでは追加するたびにイメージやネットワーク、ドメイン参加アカウント、ローカル管理者アカウントなどなど、毎度入力する必要がありましたが、その手間がなくなりました。

 

 

まとめ

「セッションホストの更新」機能により、Azure Virtual Desktopの運用管理が大きく改善されました。

・セッションホストの追加が容易になり、運用負荷が軽減

・構成変更がワンストップで可能

・バッチ処理とスケジュール機能により、業務影響を最小限に抑えた更新が可能

 

今後の運用では本機能を活用することで、より効率的なセッションホスト管理が実現できます。