🕵️

Azure Virtual Desktop のシャドウセッション

に公開

シャドウセッションとは?

シャドウセッション(Session Shadowing)は、AVD セッションホスト上で実行中のユーザーの仮想デスクトップ画面を、管理者が閲覧/操作できる機能です。
リモートでのトラブル対応に便利です。
管理者セッションは、ホストプールのセッション数にカウントされません。


前提・要件

  • 管理者権限が必要
  • 管理者が 対象ホストへ到達できるネットワーク環境があること

1. ポリシー設定(“遠隔操作を許可”)

テンプレートマシン、グループポリシー、セッションホストで以下のグループポリシー を設定します:

コンピューターの構成 > 管理用テンプレート > Windows コンポーネント > リモート デスクトップ サービス > リモート デスクトップ セッション ホスト > 接続 > リモート デスクトップ サービスのユーザー セッションのリモート制御の規則を設定する

  • 目的に応じて選択:
    • ユーザーの許可が必要 / 表示のみ
    • ユーザーの許可が必要 / フルコントロール
    • ユーザーの許可なし / 表示のみ
    • ユーザーの許可なし / フルコントロール(緊急対応向け)

シャドウセッションの操作例

  • 以下の通信が許可されているか確認:
    • リモートデスクトップ-シャドウ(TCP受信)
    • リモートデスクトップ-シャドウ(TCP受信)
    • リモートデスクトップ-ユーザーモード(UDP受信)

シャドウセッションの操作例


2. ユーザーがどのセッションホストに居るかを確認

Azure Portal > Azure Virtual Desktop > ホスト プール > セッションホスト から、
ユーザー が接続中の セッションホスト名(例:avd-host-0)と セッション ID を確認できます。

シャドウセッションの操作例


3. 実行コマンド

管理者権限を持つユーザーの端末からコマンドプロンプトを開き、以下のコマンドを実行します。

ユーザーの許可ありでコントロール

Mstsc.exe /shadow:[SessionID] /v:[SessionHost IP] /control

ユーザーの許可無しでコントロール

Mstsc.exe /shadow:[SessionID] /v:[SessionHost IP] /control /noConsentPrompt

[SessionID]はシャドウセッションをされる側のユーザーのセッションID
[SessionHost IP]はシャドウセッションをされる側のセッションホストのプライベートIP


4. 動作確認

ユーザーの許可ありでコマンドを実行した場合、シャドウセッションされる側の画面に以下の表示がされますので、要求を受け入れます。

シャドウセッションの操作例

シャドウセッションが完了です。

シャドウセッションの操作例


まとめ

  • やることは3つだけ
    1. GPO(またはローカル ポリシー)で リモート制御の規則 を設定
    2. AVD ポータルの セッション で「どのホストのどの ID か」を把握
    3. 管理者権限でを持つユーザーで Mstsc.exe /shadow:[SessionID] /v:[SessionHost IP] /control もしくは、Mstsc.exe /shadow:[SessionID] /v:[SessionHost IP] /control /noConsentPromptを実行

参考資料

AVDのシャドウセッションにつきまして、現時点でMicrosoft Learn等には詳細な記載がございません。そのため、以下のブログを参考に本ブログを作成させていただきました。
https://www.cloudou.net/azure-virtual-desktop/avd052/

AZPower Blog

Discussion