リモートデスクトップのシャドウセッションを利用すると、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人のユーザーが同じ画面を共有しながら共同で操作したり、(同時に電話などで)ヘルプを受けながら操作できる。またデモや教育用途などで、別のユーザーのコンピュータ画面を見せながら操作してみせる、といったこともできるだろう。
ただしこのシャドウセッションに関しては以下のような制限もある。
シャドウセッション機能を利用するには、シャドウイングされる元のセッションと、シャドウイングで利用する新しいセッションの2つのセッションが必要となる。まず第1のセッションを用意しておいてから第2のセッションを作成し、その中から「リモート制御」を実行して、第1のセッションを確保/制御する。具体的には以下のような手順で行う。
シャドウセッションを利用するには、まずシャドウイングの元となるセッションが必要である。具体的には、リモートデスクトップ接続で作成した任意のセッションが利用できるし(Windows 2000 ServerおよびWindows Server 2003の場合)、Windows Server 2003なら直接コンソール画面にログオンしてもよい。
先のTech TIPSで述べた方法を使うと、リモートデスクトップ接続でコンソールセッションへ接続することもできる。ここで作成したセッションがシャドウイングされるので、シャドウイングで利用したいユーザーアカウントでログオンすること。
次はシャドウセッション接続で利用するために、同じサーバに対して、新しくリモートデスクトップ接続を開始する。[スタート]メニューの[アクセサリ]−[通信]−[リモート デスクトップ接続]で開始してもよいし、コマンドプロンプトから「mstsc /v:<サーバ名>」のように指定して開始してもよい。この場合に指定するユーザーアカウントは手順1と同じでもよいし、管理者権限のある別のユーザーアカウントでもよい。
以上の操作で1台のサーバコンピュータに対して、2つのセッションが作成された。最初に作成された第1のセッションと、後から作成した第2のセッションの2つである。
シャドウセッションを利用するためには、セッション番号を指定する必要があるので、その情報を取得する。具体的には、後から作成したセッション上でコマンドプロンプトを開き、「query session」コマンドを実行するか、ターミナルサービスマネージャを利用する。そして、第1のセッション(シャドウイングしたいセッション)のセッション番号を調べる。
セッションをシャドウイングするには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」のように、セッション名を指定することも可能)。
セッションのシャドウイングはターミナルサーバマネージャでも実行できる。[管理ツール]の[ターミナル サービス マネージャ]を起動し、シャドウシングしたいセッションを右クリックして、ポップアップメニューから[リモート制御]を実行する。
[リモート制御]を実行すると次のような画面が表示されるので、キー設定を選択して[OK]をクリックする。このキー設定は、シャドウセッションを終了させるためのものであり、デフォルトでは[Ctrl]+[(テンキーの)*]となっている。
手順4を実行すると、シャドウされる側のセッションの画面には次のようなダイアログが表示されるので、内容を確認後、「はい」をクリックする。何も操作しないと、30秒ほどでタイムアウトし、シャドウイング(リモート制御)は失敗する。
以上で手順は終了である。[はい]をクリックすると、リモートデスクトップ接続の画面サイズがシャドウ元と同じに変更され、同じものが表示される。またキー入力やマウス操作、画面表示など、すべて同じ環境が再現される。
シャドウセッションを終了させるには、手順4でも述べたセッション終了用のキーを押す。デフォルトでは[Ctrl]+[(テンキーの)*]となっている。これを押すと、シャドウセッションが終了し、元のリモートデスクトップ接続(手順2にある、後から開始したセッション)の画面に戻る。
シャドウセッションを作成するのは以上のように非常に簡単であるが、場合によっては手順4でエラーになる場合がある。例えばコンソールセッションが存在しないのに「shadow 0」を実行すると、誰もコンソールにログオンしていないというエラーが表示される。
なおサーバの設定によってはシャドウセッション(リモート制御)が禁止されていて、接続できない場合がある。
C:\>shadow rdp-tcp#9
リモート制御の承認をネゴシエートしている最中、セッションが停止しているかのように見えることがあります。
しばらくお待ちください... ……接続中のメッセージ
リモート制御に失敗しました。エラー コード 7051 ……エラー
エラー [7051]:要求されたセッションは、リモート制御を許可するように構成されていません。
C:\>
このような場合は、対象となるサーバ上でグループポリシーを設定する。
上の(2)をダブルクリックし、次のように変更する。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.