web-dev-qa-db-ja.com

ファイルからWindows2003セキュリティログをフィルタリングする方法は?

Evt形式のWindows2003セキュリティログファイルがあります。イベントID540でログをフィルタリングし、そこから一意のユーザーのリストを作成する必要があります。私はこれを行うためにWindows7マシンで作業しています。最善の方法に関するアイデアはありますか?

[〜#〜]編集[〜#〜]

このスクリプトは私のためにそれをしました

$ErrorActionPreference= 'silentlycontinue'
$users = @()
Get-WinEvent -FilterHashtable @{Path="C:\TEMP\LogonLogoffEvents.evtx";ProviderName="security";id=540} | foreach {
  $sid = $_.userid;
  if($sid -eq $null) { return; }
  $objSID = New-Object System.Security.Principal.SecurityIdentifier($sid);
  $objUser = $objSID.Translate([System.Security.Principal.NTAccount]);
  if ($users -NotContains $objUser.Value) {
    $users += $objUser.Value
    $objUser.Value >> "C:\temp\users.txt"
    }
}
1
Mark Allison
3
Matze