Citrix上のMicrosoft Teams VDI 2.0で「2003/16026」が記録される場合、まず確認すべきなのはCitrixの仮想チャネル許可リストです。このエラーは、Teams VDI 2.0が使用するカスタム仮想チャネルのMSTEAMS、MSTEAM1、MSTEAM2が、Citrix Studioのポリシーによって遮断されていることを示します。
基本的な解決方法は、Citrixの「Virtual channel allow list」に3つのチャネルとms-teams.exeのパスを登録し、対象VDAを再起動することです。ただし、VDA 2603以降では標準で許可されるため、新しい環境でエラーが出ている場合は、上位ポリシーや適用範囲も含めて確認する必要があります。(Microsoft Learn)
CitrixのTeams VDIエラー2003/16026が示すもの
Microsoft Teams VDI 2.0では、仮想マシン上のTeamsと、利用者端末側のSlimCoreメディアエンジンを仮想チャネルで接続します。
Citrix環境では、おおむね次の役割分担になります。
| コンポーネント | 実行場所 | 役割 |
|---|---|---|
ms-teams.exe | VDA・仮想デスクトップ | Teams本体を実行する |
| Teams vdiBridge | VDA・仮想デスクトップ | Teamsと仮想チャネルを接続する |
MsTeamsPluginCitrix.dll | 利用者端末 | Citrix Workspace appからTeams VDI 2.0を接続する |
| SlimCore | 利用者端末 | 音声、映像、画面共有などのメディア処理を担当する |
MSTEAMS、MSTEAM1、MSTEAM2 | VDAと端末間 | Teamsと端末側プラグインを接続するカスタム仮想チャネル |
この3つの仮想チャネルが開けないと、Teamsは端末側のプラグインへ接続できません。その結果、SlimCoreベースのVDI 2.0最適化へ移行できず、従来のWebRTC最適化やサーバー側処理へフォールバックすることがあります。(Microsoft Learn)
Microsoftのトラブルシューティング情報では、エラーコードの組み合わせは次のように整理されています。
| loadErrc | deployErrc | 意味 | 最初に確認する場所 |
|---|---|---|---|
| 2000 | 16002 | プラグインがない、または読み込まれていない | 利用者端末のTeams VDIプラグイン |
| 2001 | 16008 | 仮想チャネルを利用できない | Citrix VDA、WFAPI、接続状態 |
| 2003 | 16026 | Teams用仮想チャネルがCitrixポリシーで遮断されている | Virtual channel allow list |
| 2004 | 16032 | Citrix Workspace appがサポート対象外 | Citrix Workspace appのバージョン |
したがって、2003/16026に対してTeamsの再インストールやSlimCore MSIXの修復から始めるのは効率的ではありません。先にCitrixポリシーの実効設定を確認してください。(Microsoft Learn)
許可リストに追加する3つの設定
Citrix StudioまたはWeb Studioの「Virtual channel allow list」に、次の3行を追加します。
MSTEAMS,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
MSTEAM1,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
MSTEAM2,C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
3行は、それぞれ別の許可リスト項目として登録します。MSTEAMSだけではなく、MSTEAM1とMSTEAM2も必要です。
TeamsはMSIX形式でインストールされるため、WindowsApps配下のフォルダー名にはTeamsのバージョンが含まれます。更新のたびにパスが変わる可能性があるため、MicrosoftとCitrixはバージョン部分をワイルドカードで指定する形式を案内しています。(Microsoft Learn)
ワイルドカードを利用できるVDA
上記のMSTeams*8wekyb3d8bbweという指定には、ワイルドカード対応のVDAが必要です。
| VDA系列 | ワイルドカード対応条件 |
|---|---|
| 2203 LTSR | CU2以降 |
| Current Release | 2206以降 |
Teams VDI 2.0の最低要件を満たす一般的な環境ではワイルドカードを利用できます。古いVDAで対応していない場合、バージョン固定のパスを登録するのではなく、まずサポート対象のVDAへ更新することを優先してください。バージョン固定のパスは、Teams更新後に再び仮想チャネルが遮断される原因になります。(Citrix Documentation)
VDA 2603以降は原則として手動登録不要
Microsoftの現行ドキュメントでは、VDA 2603以降はMSTEAMS、MSTEAM1、MSTEAM2が標準で許可され、Citrix Studioポリシーへの個別登録は原則として不要とされています。(Microsoft Learn)
それでも2003/16026が出る場合は、次の可能性を確認します。
- 旧バージョンのVDAが一部のマシンに残っている
- 高い優先順位のポリシーが別に存在する
- CitrixポリシーとActive DirectoryのCitrixポリシーが競合している
- ポリシーの対象ユーザーや対象マシンが誤っている
- VDAの更新後に再起動していない
- Teamsが標準とは異なるパスや構成で実行されている
- 接続先が想定していたマシンカタログやDelivery Groupではない
「2603へ更新済み」という情報だけで判断せず、実際にエラーが出たセッションの接続先VDAと実効ポリシーを確認することが重要です。
Citrix Studioで仮想チャネルを許可する手順
Citrixのバージョンによって画面構成は異なります。従来環境ではCitrix Studio、Citrix Virtual Apps and Desktops 2511以降ではWeb Studioを使用します。2511以降では、従来のMMCベースのCitrix Studioはインストーラーから削除されています。(Citrix Documentation)
既存ポリシーと適用範囲を確認する
最初に、Teamsを利用するVDAへ現在適用されているポリシーを確認します。
確認する項目は次のとおりです。
- Virtual channel allow listを設定している既存ポリシー
- ポリシーの優先順位
- 対象ユーザー
- 対象マシンまたはDelivery Group
- Active Directory側で管理しているCitrixポリシーの有無
- より上位のポリシーによる上書きの有無
Citrixポリシーは、接続条件に一致する複数のポリシーを優先順位順に評価します。同じ設定が複数のポリシーに存在する場合は、原則として優先順位が高いポリシーの値が適用されます。そのため、下位ポリシーへ3つのチャネルを追加しても、上位ポリシーで別の許可リストが設定されていると解消しないことがあります。(Citrix Documentation)
Virtual channel allow listを編集する
Web Studioの場合は、次の流れで設定します。
- Web Studioを開きます。
- 左側のメニューから「Policies」を開きます。
- 対象の既存ポリシーを編集します。
- 設定検索欄で「Virtual channel allow list」を検索します。
- 設定を有効にします。
- 既存の許可項目を残したまま、Teams用の3行を追加します。
- 対象ユーザーまたは対象マシンを割り当てます。
- ポリシーを有効化して保存します。
- ポリシーの優先順位を確認します。
新しいポリシーを作る場合は、Teams VDIを利用するマシンまたはグループだけに適用し、最初は検証用VDAへ限定するのが安全です。
既存の許可項目を消さない
Virtual channel allow listには、Teams以外の製品や社内アプリケーションのカスタム仮想チャネルが登録されている場合があります。
Teams用の3行を追加するときに、既存の項目をすべて置き換えないよう注意してください。既存項目を消すと、スキャナー、音声製品、Web会議製品、業務アプリケーションなど、別の仮想チャネルが突然利用できなくなる可能性があります。
作業前に、少なくとも次の情報を保存しておきます。
- 変更前の許可リスト
- ポリシー名
- ポリシーの優先順位
- 適用対象
- 変更日時
- 対象VDA
- 検証ユーザー
許可リスト自体を無効化しない
Virtual channel allow listを無効化すると、原則としてすべての仮想チャネルが許可されます。一時的にエラーが消える可能性はありますが、不要なカスタム仮想チャネルまで開放するため、本番環境の恒久対策には適しません。
許可リストは有効なまま維持し、必要なチャネルと実行プロセスだけを明示的に登録するのが基本です。(Citrix Documentation)
パス指定で間違えやすいポイント
指定するのはVDA上のms-teams.exe
許可リストのパスには、仮想チャネルへアクセスするVDA側プロセスを指定します。Teams VDI 2.0の場合は、次のパスです。
C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
利用者端末側にあるMsTeamsPluginCitrix.dllのパスを登録する設定ではありません。
Citrixの許可リストは、「仮想チャネル名」と「VDA上でそのチャネルを開くプロセスのローカルパス」を組み合わせて登録する仕組みです。(Citrix Documentation)
WindowsAppsを手作業で参照できなくても問題ない
C:\Program Files\WindowsAppsはアクセス制御されたフォルダーです。管理者であっても、エクスプローラーから簡単に内容を確認できないことがあります。
フォルダーの所有権を変更して中身を確認する必要はありません。公式に案内されているワイルドカード付きのパスを、そのまま許可リストへ登録します。
実行ファイル名を省略しない
次のような指定は避けてください。
MSTEAMS,C:\Program Files\WindowsApps\MSTeams*
Citrixのワイルドカード指定では、実行ファイルの拡張子まで含める必要があります。正しくは、末尾をms-teams.exeまで記載します。(Citrix Documentation)
設定後はVDAを再起動する
Virtual channel allow listの変更は、ポリシーを保存しただけでは現在稼働中のVDAへ完全に反映されません。Citrixは、この設定を反映するためにVDAの再起動が必要としています。(Citrix Documentation)
推奨する反映手順は次のとおりです。
- 利用者を対象VDAからログオフさせる
- 対象VDAをメンテナンスモードにする
- VDAを再起動する
- VDAが正常に登録されたことを確認する
- Citrixセッションへ再接続する
- Teamsを完全終了して再起動する
- Teams VDIの最適化状態を確認する
- テスト通話を実施する
Teamsを閉じるときは、ウィンドウの「×」だけではなく、通知領域のTeamsアイコンから終了するか、タスクマネージャーでms-teams.exeが終了したことを確認します。
初めてTeams VDIプラグインを検出した直後は、Teamsの再起動を複数回必要とする場合があります。(Microsoft Learn)
Teams VDI 2.0が直ったか確認する方法
設定後は、エラーが消えたことだけでなく、SlimCoreによるVDI 2.0最適化が成立していることを確認します。
Teamsの最適化ステータスを確認する
TeamsにはVDIの最適化状態を表示するステータス機能があります。
最適化表示へマウスポインターを合わせ、VDI 2.0またはSlimCoreベースの最適化であることを確認します。
「Citrix HDX Optimized」と表示されている場合、従来のWebRTCベースの最適化で動作している可能性があります。これは完全な未最適化とは限りませんが、Teams VDI 2.0のSlimCore最適化が成立したことを意味する表示ではありません。(Microsoft Learn)
TeamsログでconnectedStackを確認する
仮想デスクトップ上でTeamsを起動し、次のキーを押します。
Ctrl + Alt + Shift + 1
ダウンロードフォルダーにPROD-WebLogs-*.zip形式のログが作成されます。ZIP内のCoreフォルダーにあるVdi_debug.txtを開き、次の項目を確認します。
"connectedStack": "remote"
remoteは、Teamsが仮想チャネルを通じて端末側へ接続できたことを示します。
"connectedStack": "local"
localの場合は仮想チャネル接続に失敗し、フォールバックしている状態です。
ただし、remoteだけでは通話機能全体の初期化成功までは保証されません。カメラ、マイク、スピーカー、画面共有を含む実際のテスト通話も実施してください。(Microsoft Learn)
端末側でプラグインの読み込みを確認する
エラーが2003/16026から2000/16002へ変わった場合は、仮想チャネルの遮断は解消したものの、端末側プラグインが読み込まれていない可能性があります。
利用者端末でProcess Explorerを使用し、次の状態を確認します。
プロセス:wfica32.exe
読み込まれるDLL:MsTeamsPluginCitrix.dll
MsTeamsPluginCitrix.dllが読み込まれていない場合は、Citrix Workspace appとTeams VDIプラグインのインストール状態を確認します。(Microsoft Learn)
2003/16026が消えない場合の確認順序
許可リストへ3行を追加しても同じエラーが続く場合は、次の順序で切り分けます。
| 確認項目 | 判断基準 | 対応 |
|---|---|---|
| VDAを再起動したか | ポリシー保存後に再起動していない | VDAを再起動する |
| 3チャネルすべてあるか | MSTEAMSだけ登録されている | MSTEAM1、MSTEAM2も追加する |
| パスが正しいか | バージョン固定、DLLパス、実行ファイル省略 | 公式のワイルドカード付きパスへ直す |
| ポリシー対象が正しいか | テストユーザーやVDAが対象外 | 割り当てとフィルターを修正する |
| ポリシー優先順位が正しいか | 上位ポリシーで別の値が設定されている | 上位ポリシーを修正する |
| 接続先VDAが想定どおりか | 別カタログや旧VDAへ接続している | 実際の接続先を確認する |
| VDAのバージョンは何か | 2603未満または混在している | 対象マシンごとに確認する |
| Citrixポリシーログに拒否があるか | MSTEAMS系の警告が残る | 実効許可リストを再確認する |
Citrixには「Virtual channel allow list logging」設定があり、許可リストに存在しないカスタム仮想チャネルの警告だけを記録することも、すべてのイベントを記録することもできます。原因が分からない場合は、一時的にログレベルを上げ、VDAのイベントログで拒否されたチャネル名とプロセスを確認すると効率的です。(Citrix Documentation)
エラーが変わった場合は原因も変わっている
設定変更後に2003/16026が消え、別のコードが表示された場合は、許可リストの修正が失敗したとは限りません。処理が次の段階へ進み、別の問題が見えるようになった可能性があります。
2000/16002になった場合
端末にTeams VDIプラグインがないか、Citrix Workspace appがMsTeamsPluginCitrix.dllを読み込めていません。
確認する場所は利用者端末側です。
- Teams VDIプラグインのインストール状態
- Citrix Workspace appのインストール方式
wfica32.exeへのDLL読み込み- セキュリティ製品によるDLL遮断
- Citrix Workspace appの再インストールまたは修復
2001/16008になった場合
Citrix VDA側で仮想チャネルを利用できない状態です。Citrixセッションの再接続、VDAの状態、WFAPI関連の問題を確認します。
2004/16032になった場合
Citrix Workspace appのバージョンがTeams VDI 2.0の要件を満たしていません。許可リストではなく、Citrix Workspace appの更新が必要です。
「Citrix SlimCore Media Not Connected」になった場合
仮想チャネル接続後にSlimCoreのMSIX展開や起動で失敗している可能性があります。
この状態は2003/16026とは別の問題です。AppX、MSIX、AppLocker、信頼済みアプリのインストールポリシー、Microsoft CDNへの通信などを確認します。(Microsoft Learn)
よくある設定ミス
MSTEAMSだけを許可する
Teams VDI 2.0では3つすべてが必要です。
MSTEAMS
MSTEAM1
MSTEAM2
1つでも欠けている場合、接続が不完全になる可能性があります。
Teamsのバージョン番号をパスへ直接書く
次のような固定パスは、Teams更新後に無効になる可能性があります。
C:\Program Files\WindowsApps\MSTeams_24295.605.3225.8804_x64__8wekyb3d8bbwe\ms-teams.exe
バージョン部分はワイルドカードにします。
C:\Program Files\WindowsApps\MSTeams*8wekyb3d8bbwe\ms-teams.exe
プラグインDLLのパスを登録する
許可リストに登録するのはVDA側のms-teams.exeです。端末側のMsTeamsPluginCitrix.dllではありません。
Teamsだけ再起動してVDAを再起動しない
Virtual channel allow listの変更にはVDAの再起動が必要です。Teamsの終了やユーザーログオフだけでは不十分な場合があります。
許可リストを全面的に無効化する
エラーが消えても、不要な仮想チャネルまで許可されます。恒久対応では、許可リストを有効にしたまま必要な3チャネルだけを追加します。
表示が「Optimized」なら完了と判断する
従来のWebRTC最適化とVDI 2.0のSlimCore最適化を区別する必要があります。Teamsのステータス、Vdi_debug.txt、端末側プラグイン、実際の通話テストを組み合わせて判断してください。
本番環境へ展開する際のチェックリスト
いきなり全VDAへ適用せず、まず1台または小規模な検証グループへ適用します。
- [ ] 変更前の許可リストを保存した
- [ ]
MSTEAMS、MSTEAM1、MSTEAM2を登録した - [ ] 公式のワイルドカード付きパスを使用した
- [ ] 既存の許可項目を削除していない
- [ ] ポリシーの対象ユーザーと対象VDAを確認した
- [ ] ポリシーの優先順位を確認した
- [ ] 対象VDAを再起動した
- [ ] Teamsを完全終了して再起動した
- [ ]
connectedStackがremoteになった - [ ]
wfica32.exeがMsTeamsPluginCitrix.dllを読み込んだ - [ ] 音声通話を確認した
- [ ] カメラ映像を確認した
- [ ] 画面共有を確認した
- [ ] 複数ユーザーまたは複数端末で再現確認した
Citrix上のTeams VDIエラー2003/16026は、Teams本体やSlimCoreの故障ではなく、Teams VDI 2.0に必要な仮想チャネルがCitrixポリシーで開けないことを示すエラーです。
まずMSTEAMS、MSTEAM1、MSTEAM2とms-teams.exeのパスをVirtual channel allow listへ登録し、ポリシーの適用対象と優先順位を確認したうえでVDAを再起動します。その後、Teamsの表示だけで判断せず、Vdi_debug.txtのconnectedStack、端末側プラグインの読み込み、実際の通話まで確認してください。

コメント