この記事のWVDは”Windows Virtual Desktop Spring 2020 Release”が対象です。
今回の記事は2020/5/29 にPreview としてリリースされたばかりの”Media optimization for Microsoft Teams”を実際に使ってみる話です。 機能を利用するためには Windows 10 に設定が必要となりその内容を紹介していきます。
今回のテスト環境は以下になります。 まずは私の手元の2台のローカルデバイス(物理PC)でそれぞれWVD の仮想のWindows 10 にサインインします。 このときローカルデバイスは同じネットワークセグメント(192.168.0.0/24)に配置しローカルデバイス間の通信は特に制限しません。 サインインする仮想のWindows 10 は2台準備し、それぞれにサインインします。 Windows 10 Multi-sessions でのテストも今後実施する予定です。

それでは”Media optimization for Microsoft Teams” を利用するために必要な設定を開始します。 設定の流れは以下の通り。設定後にmedia optimizations の機能が有効になったかどうかを確認します。
- レジストリの設定
- Teams WekSocke Service のインストール
- Teams desktop app のインストール
- 有効化の確認
まずはWVD の仮想のWindows 10 でレジストリキーを変更します。 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Teams” にDWORD で”IsWVDEnvironment“に”1” をセットします。 マニュアルはこちら。

ただ、この設定はマスターイメージから展開する場合に使う設定のようです。1台1台のVM にインストールする場合は不要かもしれません。 今回、Marketplace のイメージをそれぞれ展開しておりこの設定の実施は意味がないかもしれませんがもう一台の仮想のWindows 10 でも同様に設定してみることにします。 HKLM なのでグループポリシーからレジストリを設定してもよいでしょう。
今回はネットワーク経由でレジストリを変更します。 もう1台の仮想のWindows 10 に接続します。 IP address は 10.0.0.6 です。

しかし、失敗。 既定で無効になっているようです。

もう1台の仮想の Windows 10 に接続し、Remote Registry の状態を確認します。 無効です。 これを起動して、レジストリを設定します。

ネットワーク経由でレジストリエディターで接続し、あとは最初のマシンと同様にキーを追加します。

HKLM のレジストリの変更なので2台の仮想のWindows 10 を再起動します。
次は Teams WebSocket Service をインストールします。 公式サイトの手順委従って進めます。

上記のサイトにある”WebSocket Service”のリンクをクリックするとインストール用のmsiファイルがダウンロードできます。 ダウンロード後に実行します。
Defender によるチェックが入ります。 内容を確認し”実行” します。

Licsense terms を確認し、”Install” を実行します。

インストールが中断されました。 サービス起動に関して権限が不足しているとのこと。

マニュアルにインストールが失敗するときは最新のVisual C++ redistributable をインストールしなさい、とあったことを思い出します。

案内されたリンクから64bit のモジュールをダウンロードしインストールします。

WebSocketService のインストールを再実行します。 今度は問題なく完了出来ました。

インストールが成功すると、”Remote Desktop Services WebRTC Redirector” サービスが起動していることが確認できます。

次はTeams desktop app のインストールです。 マイクロソフトの公式サイトからダウンロードしてインストールします。 マスターイメージへの導入については公式ドキュメントに msiexec を利用した手順が記載されているので参考になります。

ダウンロードします。

ダウンロードしたexe を実行します。

Teams のインストールまで終わりました。

設定の最後にMedia optimization の機能が有効になったかどうかを確認します。 URLはこちら

マニュアル通り、 Teams を起動し、 About > Version を確認します。
プロファイルから情報>バージョンと開きます。

“WVD Media は最適化されています” 表示されていれば設定は成功です。

また設定メニューからデバイスを確認すると、ローカルデバイスに接続されたデバイスが確認出来ます。ここに”Remote Audio” (日本語はリモートオーディオとかになるのかな)が表示される場合はMedia Optimization の機能の有効化に失敗しているとのこと。 カメラはこのローカルデバイスには接続していないため”なし”となっています。

もう1台の仮想のWindows 10 側も確認します。 こちらはUI は英語としていますが成功していました。

“WVD Media Optimized.” と上部に表示されていることが確認出来ました。

こちらも設定メニューからデバイスを確認します。 Speaker も Microphone も Camera もすべてローカルデバイスが正しくTeams のデバイスとして認識されました。

まとめです。 基本はマニュアル通りですが、Web SocketService のインストールだけはちょっとだけ躓きました。まあ、その躓きもマニュアルに対処方法が記載されていたのですぐに解決出来ました。
次回は実際にTeams 会議をテストします。マニュアルを見ただけではわからなかった通信経路も明らかにしていきます。 以下の図でいうとローカルデバイス(物理PC)間のPeer-to-Peer の通信経路です。 加えてWVD の仮想のWindows 10 間でもPeer-to-Peer 通信が発生するのかも確認します。
