Windowsで、サーバにログオン中のユーザーをリモートから切断/ログオフさせる:Tech TIPS
管理用リモート・デスクトップ機能では最大2人まで同時にログオンできるが、3人目以降はログオンできない。必要ならば現在ログオン中のユーザーを一時的に切断したり、ログオフさせるとよい。リモートから切断するにはtsdisconコマンドを、ログオフさせるにはlogoffコマンドを使用する。
対象OS:Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2
解説
TIPS「サーバにログオン中のユーザーをリモートから調査する」では、サーバOSにログオンしているユーザーをリモートから調査する方法を紹介した。サーバOSの「管理用リモート デスクトップ」機能を利用すると、1台のサーバに同時に最大2人がログオンして作業を行うことができる(これに加えて、コンソールからもう1人ログオンすることも可能)。すでに2人がリモートからログオンしている状態で、さらにリモートからログオンしようとすると、次のようなダイアログが表示され、ログオンすることはできない。
リモートデスクトップの接続数を超えた場合の表示
サーバOSのリモート管理デスクトップ機能を利用すると、リモートから同時に2人までログオンできるが、3人目はログオンできない。
(1)3人目がログオンしようとすると、このようなダイアログが表示される。
このようなダイアログが表示された場合は、先のTIPSの方法でログオン中のユーザーを調べ、使用中のユーザーを一時的に切断させたり、ログオフさせればよい。本TIPSでは、サーバにログオンしているユーザーをリモートから切断/ログオフさせる方法について解説する。
操作方法
●tsdisconコマンドでリモートから切断させる
リモートからユーザーをログオフするには、tsdiscon.exeというコマンドを利用する。コマンドの使い方は「tsdiscon /?」で表示される。引数なしでtsdisconコマンドを実行すると、今ログオンしているセッション(つまり自分自身)がすぐに切断されてしまうので注意する。
C:\>tsdiscon /? …使い方の表示
ターミナル セッションを切断します。
TSDISCON [セッション ID | セッション名] [/SERVER:サーバー名] [/V]
セッション ID セッションの ID です。
セッション名 セッション名を指定します。
/SERVER:サーバー ターミナル サーバーを指定します (既定値は現在のサーバー)。
/V 実行中に詳細情報を表示します。
tsdisconコマンドで指定するセッション名やセッションIDは、TIPS「サーバにログオン中のユーザーをリモートから調査する」で紹介した「query user(もしくはquser)」や「query session(もしくはqwinsta)」で表示されるものと同じである。まずリモート・サーバのログオン・ユーザーを調べ、そこで得られたセッションIDを指定してtsdisconコマンドを実行する。いずれも/server:オプションで対象となるサーバを指定する。
※これはWindows XPからWindows Server 2003を調査した例
C:\>qwinsta /server:server999 …qwinstaはquery sessionと同じ
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
rdp-tcp#27 hiroyu 1 Active rdpwd …ログオン中
※セッションIDを指定して切断する
C:\>tsdiscon 1 /server:server999 …セッション1を切断
C:\>qwinsta /server:server999 …確認
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
hiroyu 1 Disc rdpwd …切断中。状態が「Disc(切断)」になっている
●logoffコマンドでリモートからログオフさせる
リモートからユーザーをログオフするには、logoff.exeというコマンドを利用する。コマンドの使い方は「logoff /?」で表示される。引数なしでlogoffコマンドを実行すると、今ログオンしているセッション(つまり自分自身)がすぐにログオフしてしまうので注意する。
C:\>logoff /? …使い方の表示
セッションを終了します。
LOGOFF [セッション名 | セッション ID] [/SERVER:サーバー名] [/V]
セッション名 セッション名を指定します。
セッション ID セッション ID を指定します。
/SERVER:サーバー名 ログオフするユーザー セッションが実行されている
ターミナル サーバー (既定値は現在のサーバー)。
/V 実行中に詳細情報を表示します。
logoffコマンドで指定するセッション名やセッションIDは、「query user」や「query session」で表示されるものと同じである。まずリモート・サーバのログオン・ユーザーを調べ、そこで得られたセッションIDを指定してlogoffコマンドを実行する。
※これはWindows XPからWindows Server 2003を調査した例
C:\>qwinsta /server:server999 …qwinstaはquery sessionと同じ
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
rdp-tcp#19 hiroyu 2 Active rdpwd …ユーザー1
rdp-tcp#18 keisuke 3 Active rdpwd …ユーザー2
※セッションIDを指定してログオフする
C:\>logoff 2 /server:server999 …ユーザー1をログオフ
※セッション名を指定してログオフする(/vオプション指定付き)
C:\>logoff rdp-tcp#18 /server:server999 /v …ユーザー2をログオフ
セッション ID 3 をログオフしています。 …動作中のメッセージ
C:\>qwinsta /server:server999 …ユーザーの確認
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
…ユーザー1とユーザー2がログオフしている
■この記事と関連性の高い別の記事
- サーバにログオン中のユーザーをリモートから調査する(TIPS)
- システムへのログオン時間を調べる(TIPS)
- Windowsのコマンドプロンプトからリモートデスクトップのセッションを管理する(TIPS)
- Windowsのリモートデスクトップでコンソールセッションに接続する(TIPS)
- クライアントWindowsのファイル共有は最大10ユーザーまで(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.