リモートデスクトップで同じ画面を2台のPCから閲覧操作(セッションシャドウイング)する方法
本エントリーの目次
リモートデスクトップを使っていて、こんなふうに思うことがあります。
2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を見たり、操作したい!
たとえばサーバーの運用管理をリモートデスクトップを使って行っている際、ある運用ユーザーの操作を、別の運用ユーザーが確認・監視しながら慎重に作業したいだとか。
遠隔地にあるサーバーの管理操作を、異なる拠点で働いている別のユーザー※1に教育・伝達する際に、同じリモートデスクトップの画面を見せながら作業を行いたい。
といった場合に、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧、操作できたら便利ですよね!
※1 同じ拠点に勤務するユーザーであれば、教育者と教育を受けるユーザーが同じディスプレイを見ることで対応できるため、異なる拠点で勤務するユーザーに教育や伝達する際に必要となることが多いでしょう。
リモートデスクトップでは、すでに接続中のユーザーの資格情報(ユーザー名とパスワード)と通常の接続操作を使って、別のPCやウィンドウから新たにリモートデスクトップ接続を行うと、以下のように『リモートデスクトップサービスセッションが終了しました。別のユーザーがリモートコンピューターに接続したため、接続が失われました。接続を再試行するか、ネットワーク管理者またはテクニカルサポートグループに問い合わせてください。』というメッセージが表示されます。
そして後から接続操作を行ったリモートデスクトップが優先して接続され、すでに通信中であったリモートデスクトップ接続は終了されてしまいます。
こういった動作のため、通常の接続操作では、2台のPCから同じリモートデスクトップの画面を閲覧、または操作することはできません。
しかしリモートデスクトップホスト※2が最近のWindows Serverであれば、簡単な設定変更と少し特殊な接続操作を行うことで、対応可能です。
というわけで今回は、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧、操作する方法をご紹介しますので、興味がある方はぜひ参考になさってください!
※2 リモートデスクトップホストは、リモートデスクトップ接続により操作を受ける側のPCのこと。またリモートデスクトップ接続を使って操作をする側のPCは、リモートデスクトップクライアントと呼ばれることが多いです。
2台のPC(場所・ウィンドウ)から同じリモートデスクトップの画面を閲覧・操作する場合は、セッションシャドウイング機能を使用する!
リモートデスクトップホスト(Windows Server)に対して、2台のクライアントPC(またはウィンドウ)から、同じリモートデスクトップの画面を閲覧。
また操作をする際は、セッションシャドウイングというWindowsの機能を使用します。
セッションシャドウイングはシャドウセッションと呼ばれることもあり、リモートデスクトップを使ってWindowsにログオンする際、新しいセッションを使ってログオンするのではなく、既存のリモートデスクトップセッションを複製してログオンする機能です。
こういった接続の特性上、既存のリモートデスクトップセッション(すでに接続済みのリモートデスクトップの接続)が複製され、その操作内容を閲覧したり、操作に介入可能(複製したセッションからも操作可能)となります。
以後の操作手順の説明では、本エントリー執筆時点の最新のWindows Server OSであるWindows Server 2019をリモートデスクトップホスト。
そしてリモートデスクトップクライアントにWindows 10 1903を使っています。
また、すでに通常の手順でリモートデスクトップ接続が可能である状態を前提に、説明を行っています。
通常の手順でリモートデスクトップ接続ができない状態の場合には、リモートデスクトップ機能を有効化する。
ファイアウォールの設定を正しく構成するなどし、まずは通常の手順でリモートデスクトップ接続が可能な状態としてから、以下の手順を利用してください。
セッションシャドウイング機能を使って、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧・操作する方法
セッションシャドウイング機能を使って、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧・操作する際は、事前に『ファイルとプリンターの共有を有効にする』設定を行う必要があります。
この設定はコントロールパネルから変更するため、まずはコントロールパネルを開きましょう。
コントロールパネルは、デスクトップなど任意の画面を表示した状態で、『Windows』キーを押しながら『R』キーを押下。
『ファイル名を指定して実行』画面が表示されるので、『名前』のテキストボックスに『control』と入力してから、『Enter』キーを押下することで起動します。
参考:Windows 10のコントロールパネルを表示する方法
(上記リンク先の手順では、Windows 10でのコントロールパネルを開く方法を紹介していますが、Windows Server 2019であれば同様の方法でコントロールパネルを開くことが可能です。)
コントロールパネルを表示したら、画面右上の『表示方法』を操作して『小さいアイコン』表示に変更し、『ネットワークと共有センター』をクリックします。
『ネットワークと共有センター』画面が表示されたら、画面の左側にある『共有の詳細設定の変更』をクリックします。
そして『共有の詳細設定の変更』画面の右側部で、『(現在のプロファイル)』と表示されているプロファイル中の『ファイルとプリンターの共有』セクションを展開。
『ファイルとプリンターの共有を有効にする』という設定項目を選択してから、『変更の保存』ボタンをクリックしてください。
設定変更が完了したら、通常の手順を使用し、リモートデスクトップクライアント(今回の例ではWindows 10 1903)からリモートデスクトップホスト(今回の例ではWindows Server 2019)に対し、リモートデスクトップ接続を実行してください。
リモートデスクトップ接続を確立したら、リモートデスクトップの接続先(リモートデスクトップホスト)でPowerShellを起動し、『query session』コマンドを実行します。
すると以下のような実行結果が取得されるので、『rdp-tcp#数字』というセッション名の行を探してください。
1 2 3 4 5 | PS C:\Users\Administrator> query session セッション名 ユーザー名 ID 状態 種類 デバイス services 0 Disc console 1 Conn >rdp-tcp#1 Administrator 2 Active |
上記実行結果の例では、『rdp-tcp#1』というセッション名の行を見ると、administratorというユーザー名でリモートデスクトップ接続を行ったことが分かります。
そして『rdp-tcp#数字』という行が見つかったら、そのセッションのIDを確認しましょう。
『rdp-tcp#1』セッションでは、IDは『2』のようですね。
『rdp-tcp#数字』という行が複数ある場合には、そのリモートデスクトップホストに対して複数のリモートデスクトップ接続があり、小さい番号のセッションが先に接続されたもの。
大きい番号のセッションは、小さい番号のセッションよりも後に接続されたセッションとなります。
セッションシャドウイングの対象としたいリモートデスクトップセッションのIDが分かったら、リモートデスクトップクライアントでPowerShellを起動してください。
そして『mstsc /v:リモートデスクトップホストのIPかコンピュータ名(またはFQDN) /prompt /shadow:セッションシャドウイングの対象となるセッションID /control』という形式のコマンドを実行します。
たとえばリモートデスクトップホストのIPアドレスが192.168.1.50で、セッションシャドウイングの対象となるセッションIDが2であった場合には、以下コマンドを実行してください。
1 | mstsc /v:192.168.1.50 /prompt /shadow:2 /control |
すると以下のような資格情報(ユーザー名とパスワード)の入力画面が表示されるので、ログインに使用する資格情報(セッションシャドウイングの対象となる接続済みセッションの接続時に使用したものと同じ資格情報)を入力してから、『OK』ボタンをクリックします。
リモートデスクトップクライアント側で資格情報を入力すると、セッションシャドウイングの対象となる接続済みセッションの画面上に、以下のような『セッションのリモート制御を要求しています。この要求を受け入れますか?』という確認メッセージが表示されます。※
このメッセージで『いいえ』をクリックするか、一定時間『はい』と『いいえ』を選択せずに待っていると、『オペレーターまたは管理者が要求を拒否しました。』というメッセージが表示され、セッションシャドウイングが失敗します。
そのため『セッションのリモート制御を要求しています。この要求を受け入れますか?』というメッセージが表示されたら、すぐに『はい』をクリックしてください。
以上の操作により、セッションシャドウイング機能を利用したリモートデスクトップ接続が実行され、2台のPC(場所・ウィンドウ)から同じリモートデスクトップの画面を閲覧・操作できるようになります。
※資格情報を入力する際、パスワードの入力を間違うと、『シャドウ エラー』というキャプションで『アクセスが拒否されました。』というエラーメッセージが表示されます。
セッションシャドウイングは、厳密には異なるウィンドウから同じリモートデスクトップ画面の閲覧・操作を可能とする機能です。
そのため、別の場所にある異なるPCからの接続が可能ですが、もちろん同じPC上で2つのウィンドウに同じリモートデスクトップセッションを表示するセッションシャドウイングも可能です。(用途はちょっと思いつかないですが…。)
この場合には、以下のような表示となります。(画面左側のリモートデスクトップセッションの複製が、右側のリモートデスクトップセッションです。)
尚、先にも書いたとおり、セッションシャドウイングを使用したリモートデスクトップ接続は、あくまでも既存のリモートデスクトップ接続の複製です。
そのため、複製の元となったリモートデスクトップ接続が切断されると、セッションシャドウイングを使用したリモートデスクトップ接続の画面では、以下メッセージが表示され、シャドウセッション(セッションシャドウイングを使用したリモートデスクトップ接続のセッション)も切断されます。
Windows Server 2019では、『ファイルとプリンターの共有を有効にする』を設定せずにセッションシャドウイングを開始しようとした場合、『シャドウ エラー』というキャプションで『このコンピューター名は無効です。』というエラーメッセージが表示されます。
このエラーメッセージが表示された場合には、『現在のプロファイル』が『ファイルとプリンターの共有を有効にする』設定となっているか、確認してみてください。
また『このコンピューター名は無効です。』というエラーメッセージは、コンピューター名やFQDNを誤って指定している場合にも表示されます。
セッションシャドウイングを終了する際の注意事項
繰り返しとなりますが、セッションシャドウイングを使用したリモートデスクトップ接続は、あくまでも既存のリモートデスクトップ接続の複製です。
そのため、シャドウセッション(複製先のリモートデスクトップ接続)でサインアウト操作を行うと、もちろん複製元のリモートデスクトップ接続でもサインアウトが実行され、リモートデスクトップ接続が切断されます。
したがってシャドウセッションが不要となったが、複製元のリモートデスクトップ接続は継続したい!
ということであれば、シャドウセッション側ではサインアウト操作をするのではなく、リモートデスクトップウィンドウの✕ボタンを押下し、ウィンドウを閉じてください。
セッションシャドウイングに使用する資格情報と同じ資格情報で、クライアントPCにログオンしている場合は、資格情報の入力は不要!
セッションシャドウイングに使用する資格情報(リモートデスクトップホストへのログオンに使用する資格情報)と同じ資格情報で、クライアントPCにログオンしている場合は、資格情報の入力を省略できます。
先にご紹介したコマンド文字列中の『/prompt』部では、資格情報入力画面の表示を指定しています。
そして『/prompt』を指定しない場合には、クライアントにログオンしている資格情報を使って、セッションシャドウイングを実行する仕様となっています。
したがって『/prompt』を指定しない以下形式のコマンドを実行することで、資格情報の入力を省略し、セッションシャドウイングを実行できます。
1 | mstsc /v:192.168.1.50 /shadow:2 /control |
接続済みセッションに許可を求めずに、セッションシャドウイングを利用する方法
すでに解説したとおり、セッションシャドウイングを実行する際は、セッションシャドウイングの対象となる接続済みセッションにて、許可操作(『セッションのリモート制御を要求しています。この要求を受け入れますか?』というメッセージに対し、一定時間以内に『はい』を選択する操作)が必要です。
この許可操作をするのが面倒だという場合には、事前にリモートデスクトップホストのグループポリシーで設定を実施。
そして明示的に、許可を得ずに接続する操作を行うことで、許可を求めずに接続可能です。
グループポリシーの設定変更は、リモートデスクトップホストの『ローカルグループポリシーエディター(gpedit.msc)』を起動し、以下のようにポリシーを展開。
[コンピューターの構成] – [管理用テンプレート] – [Windows コンポーネント] – [リモート デスクトップ サービス] – [リモート デスクトップ セッション ホスト] – [接続] – [リモート デスクトップ サービス ユーザー セッションのリモート制御のルールを設定する]
[リモート デスクトップ サービス ユーザー セッションのリモート制御のルールを設定する]ポリシーは、初期設定では『未構成』となっているので『有効』に変更。
さらに『オプション』設定で、『ユーザーの許可なしでフル コントロール』と設定します。
次にリモートデスクトップクライアントからセッションシャドウイングを開始する際、許可を求めずに接続することを明示する『/noConsentPrompt』を付与した、以下のようなコマンドを実行してください。
1 | mstsc /v:192.168.1.50 /prompt /shadow:2 /control /noConsentPrompt |
尚、[リモート デスクトップ サービス ユーザー セッションのリモート制御のルールを設定する]ポリシーの設定をせずに、『/noConsentPrompt』を使ったセッションシャドウイングを実行すると、『グループポリシー設定によりユーザーの同意が必要です。グループポリシー設定を確認してください。』というメッセージが表示され、接続に失敗します。
セッションシャドウイング機能を使って、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧する方法
先にご紹介したセッションシャドウイング機能を使って、2台のPC(場所・ウィンドウ)から、同じリモートデスクトップの画面を閲覧・操作する方法では、複製されたリモートデスクトップセッションから閲覧だけではなく、操作も可能です。
しかし複製されたリモートデスクトップセッションからは閲覧のみ可能とし、操作はできないようにしたいケースもあるでしょう。
実は先にご紹介したセッションシャドウイングの開始コマンドは、操作ができるようにする『/control』を指定していたことから、操作が可能となっています。
そのため、『/control』を外した以下コマンド文字列を使ってセッションシャドウイングを開始すれば、複製されたセッションでは操作ができず、閲覧のみ可能の状態とできます。
1 | mstsc /v:192.168.1.50 /prompt /shadow:2 |
リモートデスクトップのセッションシャドウイングはとっても便利な機能なので、興味がある方はぜひ使ってみてください!