リモート・デスクトップ接続には、コンソール・セッションとリモート・セッションの2つがある。物理コンソール上での作業をリモート・デスクトップ環境へ引き継いだり、その逆を行ったりするには、コンソール・セッションへ接続すればよい。
対象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では物理コンソールのセッションをリモート・デスクトップに切り替える方法も変わっている。
リモート・デスクトップ接続のためのアイコンは、[スタート]メニューの[すべてのプログラム]−[アクセサリ](あるいは[アクセサリ]−[通信])にある[リモート デスクトップ接続]に登録されている。これは実際には%windir%system32\mstsc.exeというプログラムへのショートカットである。
コンソール・セッションへ接続させるためには、このプログラムに対して専用のオプションを指定する。オプション名はリモート・デスクトップ接続クライアント(Remote Desktop Connection Client。以後RDC)のバージョンによって以下のように異なる(RDCのバージョン確認方法は、TIPS「リモート・デスクトップ接続クライアントのバージョンを調べる」を参照)。
なお、「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番号は、ほかにも「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の場合、前述のmstsc.exeコマンドのオプション「/console」「/admin」は、物理コンソールのセッションへの接続には使えない。その接続方法は、1ユーザーあたりのセッション数の制限の設定をデフォルトから変更しているか否かによって変わってくる。
■1ユーザーあたりのセッション数の制限がデフォルト設定の場合
Windows Server 2008ではデフォルトで、あるユーザー・アカウント1つに付き同時に1つのセッションだけが利用できるよう設定されている(具体的な設定個所は後述)。
この場合、物理コンソールのセッションをリモート・デスクトップに切り替えるには、単に物理コンソールのセッションにログオン中のユーザー・アカウントで、リモート・デスクトップからログオンすればよい。すると自動的に、物理コンソールからリモート・デスクトップへセッションが切り替わり、物理コンソールは未ログオンの状態(「Ctrl+Alt+Delete を押してください」というメッセージが表示された状態)に変わる。
物理コンソールのセッションのログオン・ユーザーが不明であれば、前述のWindows Server 2003の場合と同様に、[管理ツール]にある[ターミナル サービス マネージャ]で各セッションのログオン・ユーザーを表示できる。
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ユーザーで複数セッションが利用できる設定の場合
Windows Server 2008で次のどちらかの設定がなされている場合(デフォルトから設定が変更されている場合)、ターミナル・サービスで単一ユーザーが同時に複数セッションを作成して利用できる(これはWindows Server 2003と同じ状態である)。
このとき、既存セッションのログオン・ユーザーと同じユーザー・アカウントでリモート・デスクトップからログオンしても、その既存セッションの接続は切り替わらず、代わりに新しいセッションが生成されて接続される。
そこで、物理コンソールとリモート・デスクトップの間でセッションを切り替えるには、tscon.exeコマンドを利用する。
接続したいセッションのIDが3だとしたら、リモート・デスクトップあるいは物理コンソールのセッションにて以下のコマンドラインを実行すると、ID=3のセッションに切り替わる(セッションIDは、前述の[ターミナル サービス マネージャ]またはquery sessionコマンドで確認できる)。
tscon 3
このほかのtscon.exeコマンドの使い方についてはTIPS「コマンド・プロンプトからリモート・デスクトップのセッションを管理する」を参照していただきたい。
■関連記事(Windows Server Insider)
■関連リンク
■更新履歴
【2009/04/10】Windows Server 2008に関する記述と、リモート・デスクトップ接続クライアント(RDC) 6.1に関する記述を追加しました。
【2005/01/15】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.