kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

今日のスクリプト(ログオンイベントを列挙する)

PS>get-wmiobject -computer ドメインコントローラ -query "select * from Win32_NTLogevent where 
 (logfile='Security') and (eventcode='680')" | select computername, user, timegenerated, message

Active Directoryで運用している場合、ログオンイベントは「認証した」ドメインコントローラ(DC)で発生します。したがって、DCが複数台存在する場合はすべてのDCのログオンイベントをマージする必要があります。どのワークステーションでログオンイベントが発生したかどうかはmessageの中に記録されているので、正規表現で取得すればいいでしょう。
eventcodeが680の場合、アカウントログオンになります。ちなみに逆順で出力されるので、timegeneratedでソートしましょう。複数のドメインコントローラ対応とワークステーションを切り出す処理はまた実装しようと思います。
やっぱり毎日ひとつ書いているとだんだんPowerShellにも慣れてきました。本読むのもいいけど、とりあえず書き続ければ覚えますね。