Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

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

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2008/11/14
対象OS
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
コンピュータへログオンした時間(時刻)を調べたいことがある。
このためには、query userコマンドやターミナル・サーバ・マネージャを利用するとよい。

解説

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

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

 しかしログオン時間を簡単に知る方法は、Windows OSの標準的な機能としては特に用意されていない。個人向けOSをベースにして発達してきたWindows OSでは、そもそもユーザーがいつコンピュータにログオンしたのかがはっきりしないからかもしれない(Windows 9xでは、ユーザーはログオン・ダイアログを[ESC]キーでスキップすることができた)。だが、ターミナル・サービス(リモート・デスクトップ)機能が導入された結果、同時に複数のユーザーがコンピュータにログオンできるようになり、ユーザーごとの個別環境(セッション)が実現できるようになった。そしてこのセッションの状態を確認するために、queryコマンドなどが用意された。これを使えば、ユーザーがいつログオンしたか(いつセッションが開始されたか)が分かる。

操作方法

queryコマンドでログオン時間を調べる

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

queryコマンドによるログオン時間の表示例
これはWindows Server 2003におけるqueryコマンドの実行例。リモート・デスクトップ経由でも利用しているので、2人のユーザーがログオンしている。ログオン時間は右端に表示されている。
queryコマンドの使い方の表示。processやsession、userなどのパラメータを付けて実行すること。
ログオンしているユーザーの情報を調べるにはquery userコマンドを実行する。
ユーザー名。先頭に「>」が付いているのが自分自身を表す。
セッション名。セッション名が「console」となっているのが実際の物理コンソールからのログオン、「rdp-〜」となっているのがリモートからのログオンをそれぞれ表す。
ログオンした時間(セッションが開始された時間)。
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 -r d:\i386\quser.* c:\windows\system32

などとして、展開、コピーしておくとよいだろう(expandは圧縮されたイメージを展開するコマンド)。

ターミナル・サービス・マネージャで確認する

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

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

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

「Windows TIPS」

@IT Special

- PR -

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間
ソリューションFLASH