リモートデスクトップのシャドウセッションで同じ画面を操作する:Tech TIPS
リモートデスクトップのシャドウセッションを利用すると、1つのリモートデスクトップ接続画面を2台のコンピュータから共有して操作できる。どちらの画面で操作しても同じように表示されるので、ヘルプデスクなどでも利用できる。シャドウセッションを利用するには、shadowコマンドを使うか、ターミナルサービスマネージャで[リモート制御]を実行する。
対象OS:Windows 2000 Server/Windows Server 2003
複数のリモートデスクトップ接続で同じ画面を操作できる!?
リモートデスクトップ接続(ターミナルサービス)を利用すると、離れた場所からコンピュータにリモートログオンして利用できる。特にサーバOSでは、同時に2ユーザーまでログオンして利用できるので、リモート管理などに活用している管理者も多いだろう。
本Tech TIPSでは、これに関するさまざまなノウハウやテクニックを紹介してきたし、Tech TIPS「リモートデスクトップでコンソールセッションに接続する」では、リモートからコンソールセッションに接続して、コンソール画面上で行っていた操作環境をそのまま引き継いで、リモートから操作する方法を紹介した。
しかしServer OSに用意されているリモートデスクトップ接続機能は、Windows XPのリモートアシスタントと違い、1つのユーザー画面を共有するわけでない。リモートから接続すると、もともと接続されていたセッションが切断されて切り替わるか(Windows XPのリモートデスクトップやWindows Server 2003のコンソールセッションへの接続の場合)、独立した別のセッションとして接続される(Server OSのリモート管理の場合)。
後者は例えば、ユーザー「user01」でリモート接続している場合に、さらに同じユーザー名「user01」で(同じコンピュータ、もしくは別のコンピュータから)リモート接続すると、別のセッションとして扱われる、ということである。最初に確立したセッションに接続するわけではない。
「シャドウセッション」なら同一セッションへの複数接続が可能
しかしリモートデスクトップの「シャドウセッション(shadow session、影のセッション)」と呼ばれる機能を利用すると、2つのリモートデスクトップから同じセッションに接続できる(シャドウイングという)。
これを使えば、Windows XPのリモートアシスタンス接続のように、2人のユーザーが同じ画面を共有しながら共同で操作したり、(同時に電話などで)ヘルプを受けながら操作できる。またデモや教育用途などで、別のユーザーのコンピュータ画面を見せながら操作してみせる、といったこともできるだろう。
ただしこのシャドウセッションに関しては以下のような制限もある。
- シャドウセッションが利用できるのは(シャドウセッションのホストになれるのは)、Windows 2000 ServerかWindows Server 2003で、リモートデスクトップ接続を有効にした場合のみ
- Windows Server 2003ではコンソールセッションもシャドウイングできるが、Windows 2000 Serverでは不可能。リモートデスクトップで接続しているセッションのみがシャドウイングできる。コンソールセッションについては先のTech TIPSを参照のこと
- 1つのセッションに対してシャドウイングで接続できるのは2接続まで。つまり1つのセッションを最大で2つのリモートデスクトップ接続からシャドウイングして利用できるが、3つ以上のリモートデスクトップ接続で共有して表示させることはできない
- 他のユーザーのセッションをシャドウイングするには、管理者権限が必要。管理者権限がない場合は、同じユーザーの別セッションのみをシャドウイングできる
- セッションをシャドウイングしようとすると、接続を許可するかどうかを問い合わせるダイアログがシャドウイングされる側の画面に表示される。これを許可した場合のみ、シャドウイングが行われる
シャドウセッションを利用する
シャドウセッション機能を利用するには、シャドウイングされる元のセッションと、シャドウイングで利用する新しいセッションの2つのセッションが必要となる。まず第1のセッションを用意しておいてから第2のセッションを作成し、その中から「リモート制御」を実行して、第1のセッションを確保/制御する。具体的には以下のような手順で行う。
手順1――シャドウイングされる元のセッションを作成する
シャドウセッションを利用するには、まずシャドウイングの元となるセッションが必要である。具体的には、リモートデスクトップ接続で作成した任意のセッションが利用できるし(Windows 2000 ServerおよびWindows Server 2003の場合)、Windows Server 2003なら直接コンソール画面にログオンしてもよい。
先のTech TIPSで述べた方法を使うと、リモートデスクトップ接続でコンソールセッションへ接続することもできる。ここで作成したセッションがシャドウイングされるので、シャドウイングで利用したいユーザーアカウントでログオンすること。
手順2――シャドウセッション用のリモートデスクトップ接続を作成する
次はシャドウセッション接続で利用するために、同じサーバに対して、新しくリモートデスクトップ接続を開始する。[スタート]メニューの[アクセサリ]−[通信]−[リモート デスクトップ接続]で開始してもよいし、コマンドプロンプトから「mstsc /v:<サーバ名>」のように指定して開始してもよい。この場合に指定するユーザーアカウントは手順1と同じでもよいし、管理者権限のある別のユーザーアカウントでもよい。
手順3――セッション番号を確認する
以上の操作で1台のサーバコンピュータに対して、2つのセッションが作成された。最初に作成された第1のセッションと、後から作成した第2のセッションの2つである。
シャドウセッションを利用するためには、セッション番号を指定する必要があるので、その情報を取得する。具体的には、後から作成したセッション上でコマンドプロンプトを開き、「query session」コマンドを実行するか、ターミナルサービスマネージャを利用する。そして、第1のセッション(シャドウイングしたいセッション)のセッション番号を調べる。
手順4a――shadowコマンドでシャドウイングする
セッションをシャドウイングするには2つの方法がある。shadowコマンドを使う方法と、ターミナルサーバマネージャを使う方法である。
shadowコマンドを使う場合は、まずquery sessionでセッションIDを調べ、そのID番号を引数にしてshadowコマンドを実行する。セッション番号は、コンソールセッションなら0、それ以外なら1以上の任意の数値になっている。
C:\>query session ……セッション番号の確認
セッション名 ユーザー名 ID 状態 種類 デバイス
rdp-tcp#9 Administrator 0 Active rdpwd
rdp-tcp 65536 Listen rdpwd
console 4 Conn wdcon
>rdp-tcp#11 hiroy-u 3 Active rdpwd
C:\>shadow 0 ……コンソールセッションをシャドウイングしてみる
リモート制御の承認をネゴシエートしている最中、セッションが停止しているかのように見えることがあります。
しばらくお待ちください... ……接続中のメッセージ
query sessionコマンドの実行結果のうち、ID欄に表示されているのがセッションIDである(状態がActiveのものが有効なセッション)。shadowコマンドには、このセッションIDを指定する。例えばWindows Server 2003でコンソールセッションをシャドウイングしたければ「shadow 0」と指定する(「shadow rdp-tcp#9」のように、セッション名を指定することも可能)。
手順4b――ターミナルサーバマネージャでシャドウイングする
セッションのシャドウイングはターミナルサーバマネージャでも実行できる。[管理ツール]の[ターミナル サービス マネージャ]を起動し、シャドウシングしたいセッションを右クリックして、ポップアップメニューから[リモート制御]を実行する。
ターミナルサービスマネージャでシャドウイングを行う
シャドウイングを行いたいセッションでターミナルサービスマネージャを起動し、シャドウイングしたいセッションを右クリックしてリモート制御を実行する。
(1)アクティブなユーザーセッションの一覧。
(2)セッション一覧の表示。アクティブでないセッションも表示される。
(3)アイコンが緑色のものは、自分自身のセッション。
(4)シャドウイングしたいセッションを右クリックする。
(5)これを選択する。
[リモート制御]を実行すると次のような画面が表示されるので、キー設定を選択して[OK]をクリックする。このキー設定は、シャドウセッションを終了させるためのものであり、デフォルトでは[Ctrl]+[(テンキーの)*]となっている。
セッション終了用のキーの設定
ターミナルサービスマネージャからシャドウイングを行うと、このようなダイアログが表示される。これはシャドウセッションを終了させるための特殊なキー組み合わせの指定である。デフォルトではテンキーの[*]と[Ctrl]キーの組み合わせとなっている。shadowコマンドを使っている場合は、この組み合わせは変更できない。
(1)キーの指定。デフォルトではテンキーの[*]。
(2)これらのキーと同時に押す。デフォルトは[Ctrl]キー。
手順5――シャドウセッションの許可
手順4を実行すると、シャドウされる側のセッションの画面には次のようなダイアログが表示されるので、内容を確認後、「はい」をクリックする。何も操作しないと、30秒ほどでタイムアウトし、シャドウイング(リモート制御)は失敗する。
シャドウを含む各セッションを確認する
以上で手順は終了である。[はい]をクリックすると、リモートデスクトップ接続の画面サイズがシャドウ元と同じに変更され、同じものが表示される。またキー入力やマウス操作、画面表示など、すべて同じ環境が再現される。
シャドウセッションの例
これは特殊な例であるが、ある1台のコンピュータからサーバに対して2つのリモートデスクトップ接続を開始し、それをシャドウイングした場合の例である(通常は別のコンピュータからシャドウイングしたり、別のユーザーのセッションをシャドウイングしたりする)。2つのセッションの内容はまったく同じになっていることが確認できるだろう。どちらのウィンドウ上で操作しても、もう1つのウィンドウ上では同じように操作/表示される。
(1)ローカルのWindows XPのデスクトップ画面。
(2)シャドウイングされている、オリジナルのセッション画面。
(3)(2)をシャドウイングしたセッションの画面。もともとは(2)とは別のセッションである。
シャドウセッションの終了
シャドウセッションを終了させるには、手順4でも述べたセッション終了用のキーを押す。デフォルトでは[Ctrl]+[(テンキーの)*]となっている。これを押すと、シャドウセッションが終了し、元のリモートデスクトップ接続(手順2にある、後から開始したセッション)の画面に戻る。
シャドウイングが開始できない場合の対策
シャドウセッションを作成するのは以上のように非常に簡単であるが、場合によっては手順4でエラーになる場合がある。例えばコンソールセッションが存在しないのに「shadow 0」を実行すると、誰もコンソールにログオンしていないというエラーが表示される。
なおサーバの設定によってはシャドウセッション(リモート制御)が禁止されていて、接続できない場合がある。
C:\>shadow rdp-tcp#9
リモート制御の承認をネゴシエートしている最中、セッションが停止しているかのように見えることがあります。
しばらくお待ちください... ……接続中のメッセージ
リモート制御に失敗しました。エラー コード 7051 ……エラー
エラー [7051]:要求されたセッションは、リモート制御を許可するように構成されていません。
C:\>
このような場合は、対象となるサーバ上でグループポリシーを設定する。
シャドウセッションの許可
シャドウセッション接続がエラーになる場合は、このグループポリシー項目を設定してみる。
(1)[コンピュータの構成]−[管理用テンプレート]−[Windowsコンポーネント]−[ターミナル サービス]を開く。
(2)この項目をダブルクリックして編集する。
上の(2)をダブルクリックし、次のように変更する。
シャドウセッションの許可設定
これらを変更すると、シャドウセッションで許可する機能を設定できる。
(1)これを選択する。
(2)これを選択すると、シャドウセッション接続が許可される。「ユーザーの許可なし」を選択すると、手順5の確認作業なしにすぐにシャドウセッションに接続され、操作できる。
(3)「セッションの参照」を選択すると、シャドウセッションに接続はできるが操作はできなくなる。画面を見ることだけが許可される。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.