web-dev-qa-db-ja.com

ADからコンピューターにログオンする最後のユーザーを見つける必要があります

OK私は会社に500を超えるデスクトップを持っており、lastlogontimestampから、アクティブなデスクトップとアクティブでないデスクトップを確認できます。これまでのところ、これで十分です。ここで、アクティブなユーザーに最後にログオンしたユーザーを知る必要があります。理想的には、ActiveDirectoryからこの情報を取得します。

デスクトップはキャンパスのあちこちに散らばっていて、月に1回だけログオンする可能性があります。したがって、ログオン時に実行してユーザーなどを識別するスクリプトを作成する代わりに、可能であればADから情報を取得したいと思います。そうすれば、不明なPCの電源がオンになり、ユーザーがログオンしてスクリプトを実行するまで、もう1か月待つ必要はありません。 PCの電源を入れたままにしておくと、直接問い合わせることができます。しかし、使用頻度が低いことを除けば、ほとんどの場合、PCはオフになっています。ユーザーを特定すると、PCの場所などを特定するのに役立ちます。

検索して検索したが見つからなかったという理由だけで、情報がAD内に保持されていないのではないかと思いますが、質問しても害はありません。 XP&win7システムを備えたWindows2008ネットワーク-ありがとう

2
user118745

ドメインコントローラーで「アカウントログオンイベントの監査」を有効にすると、これを実行できる場合があります。次に、ドメインコントローラーで「アカウントログオン」イベントを確認し、現在のユーザー/コンピューターに一致する特定のエントリを検索できます。さまざまなドメインコントローラーからのエントリを一緒にプールする必要がある場合は、管理ワークステーションからイベントをサブスクライブできます。

Splunkのようなツールはイベントの監視にも使用できると思います。

1
Geo

私は以前の大学の仕事でこれを行うためのシステムを作成しました。 Windows7/2008ツールwevtutilを使用して、特定の時間が経過した後、各ドメインコントローラーのセキュリティログのXML形式のダンプを抽出し、そのXMLファイルを解析して関心のあるイベントを探しました。

wevtutil qe Security /r:$DC /q:"*[System[((EventID=$LogonID or EventID=$FLogonID or EventID=$LogoffID or EventID=$LockoutID) and TimeCreated[@SystemTime > '$LUFilterString'] and TimeCreated[@SystemTime < '$NowFilterString'] )]] "

XPath形式のクエリ文字列を使用したため、関心のあるイベント(ログイン、ログオフ、ログインの失敗、ロックアウト)のみをプルダウンしました。

次に、処理されたイベントを、私も作成したデータベースにアップロードしました。ワークステーションの「最終ログイン」情報と、ユーザーの「最終ログイン」フィールドが更新されました。これは当然のことながらバッチプロセスですが、リアルタイムの方法は、私が持っているよりも多くの.Netスキルで完全に可能です。

役に立ちました。 22,000の暖かい体のキャンパスのログイン/アウト/ロックアウトイベントを追跡することができました(そのうちの6Kはいつでもキャンパスにログインしていました)。忙しい時期には、1時間あたり25万件近くのレコードをアップロードしていました。

はい、その数です。

ログインしたワークステーションは、ドメインコントローラー上でログインイベントの継続的なストリームを生成し、それらすべてを追跡しました。それはかなり忙しいデータベースであり、15分ごとに実行されたときに一括挿入を使用してテーブルを更新することになりました。

データを便利なMSSQLテーブルにドロップしたため、ヘルプデスクの従業員にかなり有用なデータを提供することができました。どのステーション(またはIPアドレス)がユーザーのロックアウトを引き起こしたか、ユーザーがログインした最終日のワークステーションの価値、特定のワークステーションにログインしたユーザーなど。

1
sysadmin1138