Windowsのコマンドプロンプトからリモートデスクトップのセッションを管理するTech TIPS

リモート・デスクトップ接続では、同時に複数のセッションを確立することができる。ただしアクティブにできるのは同時に1つもしくは2つまでである。アクティブなセッションを切り替えるにはtsconコマンドを利用する。logoffコマンドを使うと、素早く簡単にシステムからログオフできる。

» 2007年02月26日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows XP/Windows Server 2003



解説

 リモート・デスクトップ接続(ターミナル・サービス)を利用すると、1台のコンピュータに対してリモートから接続して利用できる。通常は1台のコンピュータ(サーバ)に対して、1つの接続(セッション)のみを利用することが多いだろうが、リモート・デスクトップ接続ではもともと複数の接続をサポートしている(ただしアクティブにできるセッションは、クライアント機では同時1セッション、サーバ機では同時2セッションまで)。そのため例えば管理者モードと一般ユーザー・モードで同時に接続して、設定を変更/確認しながら使うといったことも可能である。

 このような場合、リモート・デスクトップのクライアントを複数立ち上げて接続することが多いだろうが、インターネット+VPN接続しているような場合には、クライアントを1つだけ接続して、セッションを切り替えながら使うと、ネットワークの帯域を節約することができるし(Windows XPのようなクライアント・コンピュータに接続する場合は、常にこの状態になる)、いちいちリモート・デスクトップのクライアントを起動する手間も省ける

 本TIPSでは、リモート・デスクトップにおける、セッション管理関連のコマンドをまとめておく。これらを使うことにより、素早く接続するセッションを切り替えることができる。

操作方法

●セッションの確認

 リモート・デスクトップで接続した場合、接続ごとの環境を「セッション」といい、それぞれセッションIDという数値で管理される。以下で解説するコマンドを利用するためにはセッションIDが必要になるので、まずはこのID番号を確認する。

 コンピュータに(リモートから)ログオンしているユーザーのセッションIDを確認するには、query sessionコマンドを利用するとよい(Windows Server 2003の場合)。

C:\>query session
 セッション名      ユーザー名               ID  状態    種類        デバイス
                                             0  Disc    rdpwd
 rdp-tcp                                 65536  Listen  rdpwd
 console                                     4  Conn    wdcon
>rdp-tcp#18        Administrator             1  Active  rdpwd
 rdp-tcp#19        hiroy-u                   2  Active  rdpwd



 Windows XPの場合にはqueryコマンドは利用できないので、代わりにquery sessionコマンドの実体であるqwinsta.exeコマンドを使用する。または、タスクマネージャの[ユーザー]タブに表示されるIDで確認してもよい(ワークグループ構成の場合)。ドメイン構成の場合はこのタブは表示されないので、代わりに[プロセス]タブで[セッションID]を表示させ、確認する。

セッションIDの確認 セッションIDの確認
Windows XPの場合はqwinsta.exeコマンドでセッションIDを確認できる。タスクマネージャを使う場合は、ワークグループ構成時なら[ユーザー]タブでセッションIDを確認できる。ドメイン構成の場合は[プロセス]タブで全ユーザーのプロセスを表示させ、さらに[セッションID]列を表示させればよい。
  (1)このタブを選択する。
  (2)これがセッションID。0はコンソール・セッション、それ以外はリモートから接続しているセッションを表す。
  (3)Windows XPではアクティブにできるセッションは常に1つだけ。

●セッションの切り替え

 セッションを切り替えるにはtscon.exeコマンドが利用できる。引数には、切り替えたい先のセッションIDと、そのセッションのユーザー・アカウントのパスワードを指定する。例えば、上のセッション画面にあるユーザー「user1」のセッションへ切り替えるには、そのセッションID=5と、user1のパスワード(ユーザー名は不要、パスワードのみ指定する。ここでは例としてpassword12345とする。現在のユーザーと同じなら不要)を指定する。

C:\>tscon 5  /password:password12345



 これにより、現在接続中のリモート・デスクトップ接続の接続先が、指定されたセッションに切り替わる。

●セッションの一時的な切断

 リモート・デスクトップ接続のクライアント画面の右上にある[×]をクリックしてセッションを強制的に切断すると、セッションは残ったままだが、画面表示ができない状態になる(上のタスクマネージャでいえば、[状態]欄が[切断]となる)。これと同じことを行うには、tsdiscon.exeコマンドを実行する。Server OSの場合は、セッションIDを指定すると、現在のセッションではなく、ほかのアクティブなセッションを切断状態にできる。

●ログオフ

 リモート・デスクトップ接続からログオフするには、通常は[スタート]メニューから[ログオフ]を選ぶことが多いだろうが、もっと簡単にlogoff.exeコマンドを呼んでもよい「shutdown -l」と同じ)。これはリモート・デスクトップ接続ではなく、通常のコンソール・ログオンの場合でも利用できる、短くて便利なコマンドである。


 以上のほかにも、いくつかコマンドが用意されているが、詳細についてはOS付属のヘルプ(「ターミナル サービス コマンド」の項)などを参照していただきたい。

■更新履歴

【2007/02/26】Windows XPでセッションIDを確認する方法として、当初query sessionコマンドは利用できないと記述しておりましたが、その実体であるqwinsta.exeは用意されているので、その記述を追加しました。

【2007/02/16】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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