Windowsのコマンドプロンプトからリモートデスクトップのセッションを管理する:Tech TIPS
リモート・デスクトップ接続では、同時に複数のセッションを確立することができる。ただしアクティブにできるのは同時に1つもしくは2つまでである。アクティブなセッションを切り替えるにはtsconコマンドを利用する。logoffコマンドを使うと、素早く簡単にシステムからログオフできる。
対象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の確認
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】初版公開。
■この記事と関連性の高い別の記事
- Windowsのリモートデスクトップでコンソールセッションに接続する(TIPS)
- リモート・デスクトップのシャドウ・セッションで同じ画面を操作する(TIPS)
- サーバにログオン中のユーザーをリモートから調査する(TIPS)
- Windowsで、サーバにログオン中のユーザーをリモートから切断/ログオフさせる(TIPS)
- クライアントWindowsのファイル共有は最大10ユーザーまで(TIPS)
- Windowsでリモートデスクトップの接続時間を制限する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.