【Windows Virtual Desktopのディープな技術情報を解説】#6 Teamsでのビデオ会議設定

Microsoft Teams(以下、Teams)とWindows Virtual Desktop(以下、WVD) はコロナ禍で人々の在宅勤務を支援してきましたが、今までTeamsはWVDで完全にはサポートされていませんでした。
AVストリームがデバイスからホストVMに送信され、通話の相手側に届く前に エンコードとデコードが何度も行われていたことが要因です。

しかし、WVDを経由するためにクラウドで生じる余分な待ち時間と処理がなくなり、オーディオとビデオのデータが通話中のクライアント双方の間で直接送受信できるようになりました。

とうとうすべての機能が一体化されたWVDとTeams。どのように活用できるのか解説していきます。

※この記事は、Microsoftが提供する WVD TEAMS AV Redirections | WVD #13 を要約したものです。

▼「Windows Virtual Desktopのディープな技術情報を解説」記事一覧
https://qiita.com/official-columns/tag/wvd/

WVDでTeamsを使用する

もちろんTeamsを使用するためにネットワークを準備する必要があります。Teamsクライアントをインストールする必要があるので、インストール先のWindows 10プラットフォームがTeamsの必要最低条件をハードウェア面で満たしている必要があります。
さらにWindows 10マルチセッションまたはWindows 10 Enterpriseを仮想マシンのプラットフォームとして使用する必要があります。基本的なプロセスとしては、Teamsをインストールしてレジストリキーを追加し、続いてVMイメージに最新のWebSocket Serviceをインストールし、環境に合った Teams MSI パッケージをダウンロード、Teamsをサポートできるようにホストプールを設定します。
詳細はこちらのページをご覧ください。このページには既知の問題と制限事項も記載されています。

テストを実行してAP機能が実際にどのように動作するかお見せしましょう。

WVD管理ポータルで2つのホストプールを設定してあります。1つは個人用デスクトップのもので、もう1つはプーリングされるホストプールです。これは私のリモートアプリのホスティング用です。Teams用のリモートアプリグループが1つだけあり、これは同じワークスペースで共有されます。

今はその個人用ホストプールにWVD経由ではなく、管理者としてログインしています。これでTeamsをインストールできますが、その前に1つ面白いものをお見せします。

スタートを右クリックして [ファイル名を指定して実行] を選択し、winverと入力するとWindows 10の最新バージョンであるバージョン2004を使用中と表示されます。このバージョンのWindowsで追加された新機能の中に、「MSIXとアプリのアタッチのネイティブサポート」があります。

WindowsエクスプローラーでDFS共有に進むとアプリのアタッチ用のフォルダーがここにあります。

3つのハードディスクがあり、これらはすでにアプリのアタッチ用に設定済みです。
スクリプトディレクトリがあって、このスクリプトをPowerShellで開くと、MicroDicomというアプリケーション用のものということが分かりますが、まだインストールされていません。そこで仮想ハードディスクをマウントする最初のスクリプトを実行してみましょう。続いてアプリのアタッチを実行すると、スタートメニューにMicroDicomが追加されていることが分かります。

そしてこのアプリが実行され、Windows ディスクマネージャーを開くと仮想ハードディスクとして接続されています。そのため他の作業は必要なく、すべてがあらかじめ事前設定されており、接続されて実行されます。すべてアンマウントすることも簡単で仮想ハードディスクの設定も解除できます。また、実行が自動化されるようにこれらをグループポリシースクリプトに追加できます。

Teamsのインストール

それではTeamsに戻りましょう。最初に行うのはWebSocket Serviceのインストールです。 問題が起きた場合に備えてMicrosoft Visual C++ 再頒布可能パッケージもダウンロードし、さらにTeams MSIパッケージをダウンロードします。

WebSocketをクリックした際に、このMSIがブロックされているという表示が出た場合は、保持を選択します。 [Show more] の下に進んで [Keep anyway] を選択してから再頒布可能パッケージを新しいタブで開きます。
下の方にTeams MSIパッケージがあり、これを選択するとドキュメントの別のページに進み、TeamsをVDI環境にインストールする方法の説明が表示されます。
右側の [Install or update Teams desktop app to the VDI] をクリックして、もう少し下にスクロールすると [Deploy the Teams desktop app to the VM] が見つかるので、ダウンロードします。

インストーラーをすべてダウンロードしたので、次はレジストリキーを追加する必要があります。HKEY_LOCAL_MACHINEの下のSOFTWAREに進み、MICROSOFTに進みます。Teams用の新しいキーを追加し、IsWVDEnvironmentのREG_DWORDを追加して値を1に設定します。

完了したらWebSocket Servicet Serviceをインストールします。条件に同意して [Install] を押し [Yes] を選択すれば完了です。
インストーラーの実行に問題なければ、Visual C++ 再頒布可能パッケージの実行は不要です。ドキュメントに従ってMSIインストーラー用のコマンドをここでコピーします。

Teams用のMSIファイルのパスを追加しました。ここではTeamsInstall.logという名前のログを使い、このインストールを実行します。すべて問題なく進めば、プログラムの追加/削除の項目にTeams Machine-Wide Installerが表示され、Remote Desktop WebRTCサービスも表示されます。

デスクトップにTeamsのアイコンがあるので、それを起動して資格情報を入力します。私のアカウントでは多要素認証を使っているのでそのコードを入力する必要があります。これでTeamsがインストールされました。

Teamsの動作を検証する

Windows Virtual Desktop で Microsoft Teams を使用するに「メディア最適化をTeamsで動作させるにはWindowsデスクトップWVDクライアントを使用する必要がある」という注意書きがあります。

その他のプラットフォームやWeb クライアントでは現在サポートされておらず、デスクトップ バージョンは1.2.1026以降でなければなりません。クライアントが最新でなければ、最新バージョンのダウンロードを求める小さなバナーがここに出ます。

私の個人用デスクトップを起動します。ここではAdamWarlockとしてログインしており、Teamsが自動的に起動されます。ここで重要な点があります。

右上の小さなアイコンをクリックして [About] の下の [Version] に進むと、Teamsのバージョンは1.3.00.4461でWVDメディアは最適化済みと表示されます。この情報はAVリダイレクトが機能しているか否かを知る手掛かりになります。ここで通話を行う前に実際にはホストプールを設定する必要があります。

ドキュメントの一番下に、RDPプロトコルのプロパティやホストプール設定のカスタマイズに関する説明があります。これらはカメラとマイクを仮想化環境に渡すために必要な設定です。オーディオキャプチャとオーディオモードはポータルで設定可能ですが、カメラのリダイレクトは設定できません。

WVD管理ポータルでホストプールのプロパティに進んでRDP設定に進みます。一番下にオーディオ入出力の設定があります。オーディオ入力は先ほど見たオーディオキャプチャモードです。オーディオモードはサウンドが自分のコンピューターまたはクラウドのリモートコンピューターのどちらで再生されるかを決定します。

この例では、サウンドがこのコンピューターつまりクライアントでログオンしている方で再生されるようにします。これらは両方ともオンにする必要があります。カメラについてはPowerShellが必要です。

ここにPowerShellモジュールの設定に必要なコマンドが示されています。これらのモジュールに対して、connect-AzAccountを使用し、Azureへの通常の接続を行います。

サブスクリプションが複数ある場合は1つを選択する必要がある場合もありますが、基本的にRDSアカウントのコマンドを追加する必要はありません。これでPowerShellの作業をすべて実行できます。

左側に示すようにモジュールはすでに設定してあり、Azureにすでにログインしています。

右側にはリソースグループとホストプール名の変数が2つあります。
HPという名前のホストプール変数を作成して、このカスタムRDPプロパティを解析します。カスタムRDPプロパティからオーディオモードとそれ以降にある他のすべての項目をここにコピーし、右側でカメラリダイレクトプロパティをそれに追加しました。すべてのカメラデバイスをクラウドに渡すために、ドキュメントの説明どおりアスタリスクを使っています。
更新を実行すれば、これですべてが設定されます。

最初に実行したコマンドのセットで検証でき、カメラリダイレクト、オーディオモード、オーディオキャプチャモードが設定されていることが分かります。

Teamsカメラに関して

それではVMに戻ってテストしてみましょう。個人用デスクトップにログインしてTeamsでプロファイル画像に進み、設定を選択してからデバイスに進みます。少し下にスクロールすると、カメラに映っている映像が表示されています。

それでは別のシステムを使って、ビデオテストを行ってみましょう。Novaがビデオ通話を行いたいようです。それではやってみましょう。

私のもう1台のマシンで通話を受け入れます。
これがNovaとAdam Warlockの間で、行われている共有ビデオ通話です。Adamは個人用デスクトップにいます。Novaは実際にはこれをリモートアプリケーションとして実行していて、どちらの環境でもうまく動作しています。そしてこれがSurface Book側での表示です。

ここではTeamsアプリのタイトルがWVDワークスペース上のTeamsになっているのが分かります。
AVリダイレクト機能により、鮮明で動きもなめらかな映像が表示されています。


今回は、WVDのTeams AVリダイレクトのプレビュー機能を紹介しました。WVDとTeamsの機能が統合されたことは、すべての統合通信ソフトウェアにとって大きなアップデートです。

【新規ユーザーさま向け】Windows Virtual Desktop
30%オフキャンペーン実施中!

はじめてWindows Virtual Desktop(ネイティブ版)をご利用いただいた方を対象に、最大90日間コストを30%オフでご利用いただけるキャンペーンを実施中です。
この機会にぜひご利用ください。

対象期間 : 2021年6月30日まで

詳細はこちら

  1. 【Windows Virtual Desktopのディープな技術情報を解説】#5 セッションホストのセキュリティ対応
  2. 【Windows Virtual Desktopのディープな技術情報を解説】#7 WVDでGPUを使って、ゲーム/CADなどを利用する