システムへのログオン時間を調べる【Windows OS】Tech TIPS

コンピュータへログオンした時間(時刻)を調べたいことがある。このためには、query userコマンドやターミナルサーバマネージャを利用するとよい。

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

連載目次

システムへのログオン時間を調べる【Windows OS】

対象OS:Windows XP/Windows Vista、Windows Server 2003/Windows Server 2008


誰がいつログオンしてどれくらい経っているか調べたい

 ログオンしたまま、ずっと使われていないコンピュータがある場合、セキュリティや管理などの目的のために、誰がいつログオンしたかを調べたくなることがある。使っているユーザー名やログオン時間(ログオンした時刻)が分かれば、シャットダウンや、本人に連絡するなどの措置が取れるからだ。

 このうち、ログオンしたユーザー名を調べるのは簡単だろう。デスクトップの状態を見たり、[Ctrl]+[Alt]+[Del]キーを押してセキュリティダイアログを表示させたりすればよい。

 しかしログオン時間を簡単に知る方法は、Windows OSの標準的な機能としては特に用意されていない。個人向けOSをベースにして発達してきたWindows OSでは、そもそもユーザーがいつコンピュータにログオンしたのかがはっきりしないからかもしれない(Windows 9xでは、ユーザーはログオンダイアログを[ESC]キーでスキップすることができた)。

 しかし、ターミナルサービス(リモートデスクトップ)機能が導入された結果、同時に複数のユーザーがコンピュータにログオンできるようになり、ユーザーごとの個別環境(セッション)が実現できるようになった。そしてこのセッションの状態を確認するために、queryコマンドなどが用意された。これを使えば、ユーザーがいつログオンしたか(いつセッションが開始されたか)が分かる。

方法その1――queryコマンドでログオン時間を調べる

 query.exeコマンドは、ターミナルサービス(リモートデスクトップ)を利用している各ユーザーのセッションやプロセスなどの状態を調査、表示するコマンドである。queryにはいくつかのサブコマンドがあるが(「query /?」を実行すると使い方が表示される)、userというオプションを付けると、ログオンしているユーザーの情報が分かるが、その中に「ログオン時刻」という情報がある。

queryコマンドによるログオン時間の表示例 queryコマンドによるログオン時間の表示例
これはWindows Server 2003におけるqueryコマンドの実行例。リモートデスクトップ経由でも利用しているので、2人のユーザーがログオンしている。ログオン時間は右端に表示されている。
  (1)queryコマンドの使い方の表示。processやsession、userなどのパラメータを付けて実行すること。
  (2)ログオンしているユーザーの情報を調べるにはquery userコマンドを実行する。
  (3)ユーザー名。先頭に「>」が付いているのが自分自身を表す。
  (4)セッション名。セッション名が「console」となっているのが実際の物理コンソールからのログオン、「rdp-〜」となっているのがリモートからのログオンをそれぞれ表す。
  (5)ログオンした時間(セッションが開始された時間)。
  (6)query userコマンドは、実際にはquser.exeというコマンドを呼び出しているだけなので、これでも実行可能。

 この例では、2人のユーザーがログオンしていることが分かる。ただし管理者権限がない場合は、自分自身の情報しか表示されない。右端に表示されているのがログオン時間である。ログオンしているユーザーの一覧は、例えばタスクマネージャの[ユーザー]タブでも表示されるが、タスクマネージャではログオン時間情報は表示されない(Windows XPでは、ユーザーの簡易切り替えが有効になっている場合にのみ[ユーザー]タブが表示される。ドメインネットワークの場合は表示されない。代わりにquery sessionやqwinsta.exeでユーザー一覧を取得できる)。

 query userコマンドは、実際には内部でquser.exeという別のコマンドを呼び出しているだけである。そのため単にquserを実行するだけでも実行できる。ただし、このquery.exeやquser.exeはターミナルサービス用のコンポーネントの1つなので、Windows XPでは、サーバ用の管理ツール([ターミナル サービス マネージャ]ツール)を導入していないと利用できない。

 そこで、あらかじめインストールCDの\I386フォルダ中に用意されているファイルを以下のように展開、コピーしておくとよいだろう(expandは圧縮されたイメージを展開するコマンド)。

expand -r d:\i386\quser.* c:\windows\system32



方法その2――ターミナルサービスマネージャで確認する

 query userコマンドはターミナルサービスのユーザー名を表示させるためのコマンドである。そのため、サーバ用管理ツールがインストールされている環境ならば、[ターミナル サービス マネージャ]ツールでも確認できる(ローカルコンピュータに接続して確認すればよい)。

管理ツールによる確認 管理ツールによる確認
管理]ツール−[ターミナル サービス マネージャ]によるセッションの確認。これはWindows Server 2003の例。クライアントコンピュータ上にインストールしたサーバ用管理ツールでも同様に利用できる。
  (1)接続先コンピュータ。
  (1)ログオン時間。

■更新履歴

【【2008/11/16】】Windows XPのタスクマネージャにおける[ユーザー]タブが表示される条件について、記述を変更しました。このタブは、ユーザーの簡易切り替えが有効な場合にのみ表示され、ドメインネットワークに所属している場合は表示されません。

【2008/11/14】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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