Windows 7ワークステーションからローカルログオン/ログオフのリストを抽出する必要があります。セキュリティイベントログの保存されたコピーをevtx形式で取得しましたが、いくつか問題があります。powershellを使用したログオン/ログオフイベントの抽出
次のPowerShell抽出ID 4624
または4634
と、すべてのイベント:
Get-WinEvent -Path 'C:\path\to\securitylog.evtx' | where {$_.Id -eq 4624 -or $_.Id -eq 4634}
私は、その後だけlogon type = 2 (local logon)
をフィルタリングします。この配管:
| where {$_.properties[8].value -eq 2}
はしかし、すべてのid=4634
(ログオフ)イベントをドロップするようです。
イベントid = 4624
イベントであっても、ユーザーIDは存在しません。例えば配管へ:
| select-object -property Timecreated,TaskDisplayName,MachineName,userid
あるいはExport-Csv
への配管、userid
は空白です。
2つの問題は、次のとおりです。
- どこ
{$_.properties[8].value -eq 2}
にパイプするとき、ID 4634のイベントを廃棄しているのはなぜ? - なぜ
userid
が空ですか?userid
を入手するにはどうすればよいですか?
おかげ - このコマンドは、イベントを抽出するために動作します:それは、カンマ区切り値を出力 のGet-WinEventの-Path 'C:\パス\はsecuritylog.evtx \します' |ここで、{($ _。Id -eq 4624 -and $ _。properties [8] .value -eq 2)-or($ _。Id -eq 4634 -and $ _。properties [4] .value -eq 2) } プロパティ要素をXML要素名で参照する方法はありますか? また、プロパティ配列の値を実際に印刷するにはどうすればよいですか? Select-objectでプロパティを印刷することができますが(例えばselect-object-property TTimecreated、TaskDisplayName、MachineName)、プロパティ配列から特定の要素を出力する方法がわかりません。 – cuvy