システムへのログオン時間を調べる【Windows OS】:Tech TIPS
コンピュータへログオンした時間(時刻)を調べたいことがある。このためには、query userコマンドやターミナルサーバマネージャを利用するとよい。
対象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コマンドによるログオン時間の表示例
これは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】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.