web-dev-qa-db-ja.com

イベントビューアを使用して、ユーザーによってフィルタリングされたログイン時間を確認するにはどうすればよいですか?

仕事の開始時間と終了時間を記録する必要があります。時々、これを忘れて、セキュリティイベントログをチェックすることで、自分の時間を遡及的に確認できるという明るい考えを持っていました。

残念ながら、ログは思ったよりもはるかに大きく、イベントビューアに表示するのにも時間がかかります。また、ログを日付とユーザーIDでフィルタリングしてみましたが、これまでのところ結果はありません。

私のアイデアが実現可能であるとすれば、必要な情報を取得するために私がしなければならないことを誰かがステップスルーできますか?

更新:

@surfasbの指示に従い、ログインのみが表示されるようになりましたが、これらの一部はシステムレベル(つまり、人間以外)のログインです。他のすべてのものではなく、私の「物理的な」ログインのみを表示します(そのようなイベントは平日に2〜3回しかありません)。

以下に示すように、domain\usernameusernameの両方を使用して、Windowsユーザー名をフィールドに入力してみましたが、これはすべてを除外します。お手伝いできますか?

enter image description here

16
5arx

デフォルトの構成では、かなり乱雑になります。これは、Windowsがネットワークコンピュータにログインする必要があるときにも追跡するためです。また、ユーザーアカウントではなくコンピュータアカウントがログインセッションを作成するたびに追跡します。

audit logonオプションではなく、audit account logonオプションを使用する必要があります。

探しているイベントには、アカウントの完全修飾ドメイン名が含まれます。たとえば、ドメインにいない場合、探している検索テキストはcomputer_name/account_nameです。

編集

別のアイデアは、ログインおよびログオフスクリプトを作成することです。 Windows 7のエディションによっては、gpedit.mscを使用してグループポリシーコンソールを起動できます。

次に、logevent "My login/logoff event" -e 666コマンドを含むバッチファイルが必要になります。このイベントはアプリケーションログに表示されます

編集

ドメインを使用していない場合、これは簡単です。ローカルセキュリティ/ローカルポリシー/セキュリティオプションに移動する場合、「強制監査...」オプションを探します。名前を忘れてしまいました。しかし、それを無効にします。ユーザーがコンソールにログインすると、場合によっては同じイベントIDが共有されるため、セキュリティログの詳細度が低くなります。検索したいいくつかのイベントID:

  • イベント4647-これは、ログオフ、再起動、シャットダウンボタンを押したときです。コンピュータを再起動するWindows Updateでも、このイベントが発生することがあります:(
  • イベント4648-これは、プロセス(ログイン画面を含む)がトークンではなく明示的な資格情報を使用してログインする場合です。これには、Runasコマンドと、多くの場合、バックアッププログラムが含まれます。
  • イベント4800-ワークステーションがロックされているとき(WIN + Lを押すなど)
  • イベント4801-ワークステーションがロック解除されたとき

通常、イベント4647と4648を使用して取得できます。残念ながら、コンピューターにログインしてログオフすると何千ものイベントが発生するため、確実な起動方法はありません。

それは価値があるため、仕事では、起動するログインスクリプトを探し、ログオフでは、2つのプログラムと、確実な起動イベントとして探す同期イベントがあります。

10
surfasb

簡単な解決策:

  1. カスタムビューを作成するイベントを開きます。
  2. ウィンドウを表示される場所(画面の片側、セカンドモニター、または印刷)に移動します
  3. 新しいビューを作成し、開いたイベントパラメータを使用して定義します(例:ユーザー、キーワード、コンピュータなど...)この場合、ユーザーはN/Aだったので、コンピュータとイベントID(4624ではなく4648)を使用しました
  4. 必要に応じてパラメーターを変更した後、保存します。

このメソッドは、ログに記録するイベントまたはイベントのセットに役立ちます。複雑なタスクやサードパーティのソフトウェアは必要ありません。

1
applephx

[〜#〜] xml [〜#〜]フィルタータブを使用して、以下を指定してください:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[EventID=4672] 
     and EventData[Data[@Name='SubjectUserName'] = 'your_username']]
    </Select>
  </Query>
</QueryList>
0
Janis S.

私は同じ問題を抱えており、次の手順を使用してそれを解決することができました:

A:インストール MyEventViewer (フリーウェア)をインストールし、このプログラムでイベントリストを開きます。

残念ながら、MyEventViewerでイベントを説明(および説明はログイン名が格納されている場所)でフィルタリングする方法はわかりませんが、少なくともメインテーブルに説明が表示されます。

B:このテーブルをlog1.txtにエクスポートします

C:いくつかの高度なテキスト検索プログラムを使用して、特定のユーザーのログイン時間を抽出します。

私はgrepを使用しました。

これは、エクスポートされたイベントの形式です。

ログの種類:セキュリティ

イベントの種類:成功の監査

時間:10.12.2012 18:33:24

イベントID:680

ユーザー名:SYSTEM

コンピューター:YYY

イベントの説明:ログオン試行:Microsoft_AUTHENTICATION_PACKAGE_V1_0ログオンアカウント:XXXソースワークステーション:YYYエラーコード:0x0

==================================================

==================================================

最初に、ユーザーXXXによるログオン試行をすべて抽出します。

$ grep -B 4 "Logon attempt by: Microsoft_AUTHENTICATION_PACKAGE_V1_0 Logon account: XXX" log1.txt > log2.txt

これにより、ユーザーXXXによるログオン試行がフィルター処理され、log2.txtに出力されます。 -B 4 grepオプションが必要なのは、探している情報(ログイン時間)が、探しているパターン(ユーザー名)を含む行の4行上に格納されているためです。

D:log2.txtからログイン時間を抽出します

$ grep "Time" log2.txt > log3.txt

Log3.txtは、指定されたユーザーのすべてのログイン時間をリストします。

時間:2012年12月12日14時12分32秒

時間:7.12.2012 16:20:46

時間:5.12.2012 19:22:45

時間:5.12.2012 18:57:55

より簡単な解決策はおそらく存在しますが、私はそれを見つけることができなかったので、これは私のためにトリックをしなければなりませんでした。

0
celicni