Windowsのリモートデスクトップでコンソールセッションに接続するTech TIPS

リモート・デスクトップ接続には、コンソール・セッションとリモート・セッションの2つがある。物理コンソール上での作業をリモート・デスクトップ環境へ引き継いだり、その逆を行ったりするには、コンソール・セッションへ接続すればよい。

» 2009年04月10日 00時00分 公開
[打越浩幸, 島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Server 2003/Windows Server 2008



解説

 リモート・デスクトップ(ターミナル・サービス)接続を利用すると、コンピュータに接続されている実際の物理的なコンソールではなく、離れた場所にあるコンピュータからリモート・ログオンし、GUIベースの操作でコンピュータを利用できる。

 リモート・デスクトップで接続すると、それぞれの「セッション」ごとに固有のユーザー環境が用意される。

 セッションとは、ユーザーごとに用意される画面やキーボード、プロセス空間などの環境へ接続した状態のことを指す。リモートからログオンしたユーザーに対しても仮想的なコンピュータ環境が用意され、実際の物理コンソールの状態には関係なく、独立してコンピュータを利用できる。

 実際の物理的なコンソールから利用しているセッションのことを特に「コンソール・セッション」といい、リモートから接続しているセッションのことを「リモート・セッション」という。

 セッションは、Windows XP Professionalでは同時に1セッションのみが利用でき、Windows Server 2003/Windows Server 2008の「管理用リモート デスクトップ」モードでは、同時に最大3セッション(1コンソール・セッション+2リモート・セッション)まで利用できる。

 通常、各セッションは完全に独立しているため、セッションごとの操作が互いに影響を与えることはない。だが場合によっては、1つのセッションを物理的なコンソールとリモートからの操作で共有したい場合もある。

 例えば、システムの再起動やアプリケーションのインストール作業などを実際の物理的なコンソールで開始し、その後の操作や動作確認をリモートから継続して行いたいといった場合である。サーバ・ルームに設置してあるサーバにCD-ROMをセットしてインストールなどの作業を開始し、その後は自分の席に戻って作業を継続して行えると便利である。

 またこれとは逆に、最初はリモートから管理作業を行い、ハードウェア・エラーなどが生じたら、途中から実際のコンソールのある場所へ赴いて作業を継続したい、といった要望もあるだろう。

 Windows Server 2003ではこのような場合、リモート・デスクトップ接続でコンソール・セッションへの接続を明示的に指定すればよい。

 通常のリモート・デスクトップ接続でサーバに接続すると、新しいセッションが自動的に作成される。ここで特別なオプションを利用すると、コンソール・セッションへ強制的に接続させることができる。

 これにより、ただ1つしかないコンソール・セッションに対して、物理的なコンソールから接続したり、リモートから接続したりできる。その際、環境は引き継がれるので、作業を継続して行える。

 この場合、例えばリモートからコンソール・セッションへ接続すると物理的なコンソールはロックされるし、逆にコンソール画面でログオンすると、リモート・デスクトップ接続は切断される。

 なお上記のような動作は、Windows XP Professionalのリモート・デスクトップ接続と同じである。

 Windows Server 2008では、コンソール・セッションとリモート・セッションが同等に扱われるようになり、各セッションと物理コンソールまたはリモート・デスクトップとの接続が自由に切り替えられるようになった。

 強いていえば「コンソール・セッション」とは、その時点で物理コンソールに接続されているセッションであり、リモート・デスクトップに切り替わると、それは「リモート・セッション」になる。

 このようにWindows Server 2003とはセッションの取り扱いが変わったことから、Windows Server 2008では物理コンソールのセッションをリモート・デスクトップに切り替える方法も変わっている。

操作方法

●Windows Server 2003の場合: リモート・デスクトップ接続に専用オプションを指定する

 リモート・デスクトップ接続のためのアイコンは、[スタート]メニューの[すべてのプログラム]−[アクセサリ](あるいは[アクセサリ]−[通信])にある[リモート デスクトップ接続]に登録されている。これは実際には%windir%system32\mstsc.exeというプログラムへのショートカットである。

 コンソール・セッションへ接続させるためには、このプログラムに対して専用のオプションを指定する。オプション名はリモート・デスクトップ接続クライアント(Remote Desktop Connection Client。以後RDC)のバージョンによって以下のように異なる(RDCのバージョン確認方法は、TIPS「リモート・デスクトップ接続クライアントのバージョンを調べる」を参照)。

  • RDC 5.x/6.0: /console
  • RDC 6.1: /admin

 なお、「mstsc /?」と実行すると、RDCのバージョンに応じて上記のうち一方のオプションのみ説明が表示されるので、どちらのオプションを指定すべきか判断できる。

 RDC 5.x/6.0からWindows Server 2003のコンソール・セッションに接続するには、以下のコマンドラインを実行する。

mstsc /console



 RDC 6.1の場合は次のとおりだ。

mstsc /admin



 こうやって起動すると、(通常どおり)接続先やユーザー名などを入力するダイアログが表示されるので、適宜入力して、[OK]を押せばよい。

 いちいちサーバ名などを入力するのが面倒ならば、/vオプションで接続先のサーバ名を入力すればよい(ポート番号を標準以外にしている場合は /v:server1:12345などとする)。

 これ以外にも、/f(全画面表示の指定)、/w(幅ピクセル指定)、/h(高さピクセル指定)といったオプションも利用することができる。RDC 5.x/6.0におけるmstscコマンドのオプションは次のとおり(RDC 6.1では「/console」を「/admin」に変える)。

mstsc /console /f /w: /h:高さ /v:サーバ名



 現在ログオンしているセッションがコンソール・セッションであるか、それともリモート・セッションであるかを判別するには、[管理ツール]にある[ターミナル サービス マネージャ]でセッションID(セッションを識別するための番号)を確認すればよい。ID番号が0となっていればコンソール・セッション、そうでなければリモート・セッションである。

ターミナル サービス マネージャによるコンソール・セッションの確認 ターミナル サービス マネージャによるコンソール・セッションの確認
コンソール・セッションのセッションIDは0となっている。
  (1)セッション状態を表すタブ。
  (2)[Console]は物理的なコンソール(に接続しているユーザー)を表す。状態が[Active]ならコンソールにユーザーがログオンしていることを表すが、[Connected]は誰もログオンしていない状態。
  (3)リモートから接続しているセッション。IDが0となっているので、コンソール・セッションを表す。リモート・セッションの場合は0以外になっている。
  (4)セッションID。

 このID番号は、ほかにも「query session」コマンドなどでも確認できる。

C:\>query session
セッション名  ユーザー名          ID 状態    種類        デバイス
>rdp-tcp#32   user01               0 Active  rdpwd ……(1)
 rdp-tcp                       65536 Listen  rdpwd
 console                           3 Conn    wdcon



 行(1)の左端にある「>」が、このコマンドを実行しているセッション(ID=0)を表している。この例ではuser01のセッションIDが0なので、このユーザーがコンソール・セッションを利用していることを表している。

 なお、mstsc.exeを直接起動する以外にも、MMCの「リモート デスクトップ」スナップインを使い、接続時に[コンソールに接続する]というオプションを指定する方法もある。これについては関連記事「より実用的なサーバ・コンピューティングに向けて強化されたターミナル・サービス(後編)」を参照していただきたい。

●Windows Server 2008の場合: デフォルトでは同一ユーザーで接続するだけ

 Windows Server 2008の場合、前述のmstsc.exeコマンドのオプション「/console」「/admin」は、物理コンソールのセッションへの接続には使えない。その接続方法は、1ユーザーあたりのセッション数の制限の設定をデフォルトから変更しているか否かによって変わってくる。

■1ユーザーあたりのセッション数の制限がデフォルト設定の場合

 Windows Server 2008ではデフォルトで、あるユーザー・アカウント1つに付き同時に1つのセッションだけが利用できるよう設定されている(具体的な設定個所は後述)。

 この場合、物理コンソールのセッションをリモート・デスクトップに切り替えるには、単に物理コンソールのセッションにログオン中のユーザー・アカウントで、リモート・デスクトップからログオンすればよい。すると自動的に、物理コンソールからリモート・デスクトップへセッションが切り替わり、物理コンソールは未ログオンの状態(「Ctrl+Alt+Delete を押してください」というメッセージが表示された状態)に変わる。

 物理コンソールのセッションのログオン・ユーザーが不明であれば、前述のWindows Server 2003の場合と同様に、[管理ツール]にある[ターミナル サービス マネージャ]で各セッションのログオン・ユーザーを表示できる。

ターミナル サービス マネージャによる、物理コンソールのセッションにログオン中のユーザーの確認 ターミナル サービス マネージャによる、物理コンソールのセッションにログオン中のユーザーの確認
[ユーザー]列でログオン中のユーザー名が確認できる。
  (1)このタブを選択すると、セッション状態が表示される。
  (2)「Console」は物理コンソールのセッションを表す。
  (3)「RDP-TCP#n」はリモート・デスクトップのセッションを表す。
  (4)各セッションでログオン中のユーザー名。
  (5)セッションID。Windows Server 2003と異なり、物理コンソールのセッションIDは0ではなく不定である(ID=0はサービス専用のセッション)。

 query sessionコマンドでもログオン・ユーザーは確認可能だ(次の(1))。行の左端にある「>」が、このコマンドを実行しているセッションを表している。

 セッション名  ユーザー名    ID  状態    種類   デバイス
 services                     0  Disc                   
>console       hiromi-s ……(1)  1  Active                 
 rdp-tcp#1     hiroy-u        2  Active  rdpwd          
 rdp-tcp                  65536  Listen     



 逆にリモート・デスクトップの既存セッションを物理コンソールに切り替える場合、物理コンソールには次のような画面が表示されているので、リモート・デスクトップでログオン中のユーザー((1))を選択してログオンすればよい。

物理コンソールのログオン画面 物理コンソールのログオン画面
ログオン可能なユーザーや、リモート・デスクトップを含むログオン中のユーザーが表示される
  (1)ログオン中のユーザー名。
  (2)このコンピュータからリモートでログオン中なのが分かる。

 すると物理コンソールにそのセッションの画面が表示され、元のリモート・デスクトップ接続は切断される。

■1ユーザーで複数セッションが利用できる設定の場合

 Windows Server 2008で次のどちらかの設定がなされている場合(デフォルトから設定が変更されている場合)、ターミナル・サービスで単一ユーザーが同時に複数セッションを作成して利用できる(これはWindows Server 2003と同じ状態である)。

  • グループ・ポリシーの[コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[ターミナル サービス]−[ターミナル サーバー]−[接続]にある[ターミナル サービス ユーザーに対してリモート セッションを 1 つに制限する]というポリシーが「無効」に設定されている。
  • 上記ポリシーが「未構成」に設定されていて、かつ[管理ツール]にある「ターミナル サービス構成」の[1 ユーザーにつき 1 セッションに制限する]が「いいえ」に設定されている。

 このとき、既存セッションのログオン・ユーザーと同じユーザー・アカウントでリモート・デスクトップからログオンしても、その既存セッションの接続は切り替わらず、代わりに新しいセッションが生成されて接続される。

 そこで、物理コンソールとリモート・デスクトップの間でセッションを切り替えるには、tscon.exeコマンドを利用する。

 接続したいセッションのIDが3だとしたら、リモート・デスクトップあるいは物理コンソールのセッションにて以下のコマンドラインを実行すると、ID=3のセッションに切り替わる(セッションIDは、前述の[ターミナル サービス マネージャ]またはquery sessionコマンドで確認できる)。

tscon 3



 このほかのtscon.exeコマンドの使い方についてはTIPS「コマンド・プロンプトからリモート・デスクトップのセッションを管理する」を参照していただきたい。

■更新履歴

【2009/04/10】Windows Server 2008に関する記述と、リモート・デスクトップ接続クライアント(RDC) 6.1に関する記述を追加しました。

【2005/01/15】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。