サーバにログオン中のユーザーをリモートから調査する:Tech TIPS
サーバにログオンしているユーザーをリモートから調べたいことがある。query userやquery sessionコマンドを使えば、リモートからログオンしているユーザーを調査できる。
対象OS:Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2
解説
システムのメンテナンスなどのために、リモートのサーバに現在誰がログオンしているか(使用中か)を調査したいことがある。
コンピュータが目の届く場所にあれば直接確認すればよいだろうが、離れた場所に設置されていたり、リモート・デスクトップやターミナル・サービス経由で利用している場合は簡単には確認できない。
本TIPSでは、リモートのサーバ・コンピュータに現在誰がログオンしているかを調べる方法を紹介する(クライアント・コンピュータに対しては利用できない)。
操作方法
リモート・デスクトップのサーバ機能やターミナル・サービス機能を持つWindows Server OSでは、ログオン中のユーザーやセッションの一覧を表示するために、「query user」や「query session」というコマンドが利用できる(これらはquery.exeコマンドのサブコマンド。右上の関連記事でも紹介している)。
これらのコマンドは、デフォルトではローカル・コンピュータの状態を表示するが、「/server:<サーバ名>」というオプションを付けると、リモートのサーバ・コンピュータの状態を表示できる(接続先がクライアントOSの場合はエラーになる。接続元はサーバOSでもクライアントOSでも可)。
OSによってはquery userの省略形としてquser.exeが、query sessionの省略形としてqwinsta.exeというコマンドが、それぞれ用意されていることがある(Windows XPのデフォルトではqwinsta.exeのみが利用できる)。いずれを使ってもよい。
C:\>query user /? ……リモートのユーザーの表示
システムにログオンしているユーザーの情報を表示します。
QUERY USER [ユーザー名 | セッション名 | セッション ID] [/SERVER:サーバー名]
……(以下省略)……
C:\>query session /? ……リモートのセッションの表示
ターミナル セッションの情報を表示します。
QUERY SESSION [セッション名 | ユーザー名 | セッション ID]
[/SERVER:サーバー名] [/MODE] [/FLOW] [/CONNECT] [/COUNTER]
……(以下省略)……
リモートのコンピュータのユーザーの状態を調べるには、/serverオプションを付けて実行する。
*これはWindows XPからWindows Server 2003を調査した例。query sessionの代わりにqwistaコマンドを使っている。
C:\>qwinsta /server:spserver001 ……query sessionと同じ
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
この例では、「ユーザー名」のところが空欄になっているが、これは誰もログオンしていないということを表している。
次はユーザーが1人ログオンしている場合の例である。「状態」が「Active」なら「ユーザー名」のところに表示されているユーザーがログオンして利用しているということを表す。セッション名が「rdp-tcp〜」となっているので、リモート・デスクトップ経由でログオンしていることが分かる。
C:\>qwinsta /server:server002
セッション名 ユーザー名 ID 状態 種類 デバイス
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
rdp-tcp#25 hiroyu 1 Active rdpwd
次の例もユーザーが1人ログオンしているところであるが、「状態」が「Disc」となっている。これはリモート・デスクトップなどで接続したが、セッションが一時的に切断されている状態(disconnected。ログオンしたまま、リモート・デスクトップ接続を切断/終了した状態)を表している。
C:\>qwinsta /server:hvserver003
セッション名 ユーザー名 ID 状態 種類 デバイス
services 0 Disc
hiroyu 1 Disc
console 3 Conn
rdp-tcp 65536 Listen
*「services」などは内部サービス用セッション。query user(もしくはquser)では表示されない。
セッション名やユーザー名が分かれば、そのセッションをリモートから強制的に切断させたり、ログオフさせることもできるが、それについては右上の関連記事を参照していただきたい。
■この記事と関連性の高い別の記事
- システムへのログオン時間を調べる(TIPS)
- Windowsで、サーバにログオン中のユーザーをリモートから切断/ログオフさせる(TIPS)
- Windowsのコマンドプロンプトからリモートデスクトップのセッションを管理する(TIPS)
- Windowsでリモートデスクトップの接続時間を制限する(TIPS)
- Windowsのリモートデスクトップでコンソールセッションに接続する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.