param( [int]$Min = 5, [string]$ExportPath ) $logs = (Get-WinEvent -ListLog * | Where-Object {($_.IsEnabled) -and ($_.RecordCount -gt 0)}).LogName 2>$null $last = (Get-Date).AddMinutes(-$Min) $allEvents = @() foreach ($log in $logs) { $events = Get-WinEvent -FilterHashtable @{ LogName = $log StartTime = $last #1 = Critical #2 = Error #3 = Warning #Level = 1,2,3 } -ErrorAction SilentlyContinue if ($events) { $allEvents += $events } } $result = $allEvents | Sort-Object TimeCreated | Select-Object TimeCreated, LogName, Id, LevelDisplayName, Message if ([string]::IsNullOrWhiteSpace($ExportPath)) { # 引数なし:画面表示 $result | Format-Table -AutoSize } else { # 引数あり:CSV出力 $result | Export-Csv -Path $ExportPath -NoTypeInformation -Encoding UTF8 }