サーバにログオン中のユーザーをリモートから調査するTech TIPS

サーバにログオンしているユーザーをリモートから調べたいことがある。query userやquery sessionコマンドを使えば、リモートからログオンしているユーザーを調査できる。

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

連載目次

対象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)では表示されない。



 セッション名やユーザー名が分かれば、そのセッションをリモートから強制的に切断させたり、ログオフさせることもできるが、それについては右上の関連記事を参照していただきたい。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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