获取事件日志并计算错误

时间:2011-12-30 09:44:38

标签: powershell

我需要计算使用PowerShell在远程计算机的“应用程序”和“系统”下记录的错误事件数。我已经开始了,但没有走得太远。

  

Get-EventLog -computername COMPUTER -Logname Application -EntryType Error | Measure-Object -Sum Entrytype |格式 - 表计数

现在这非常粗糙,到目前为止的两个问题是上面的命令一次只能执行一种类型的日志,并且 表的格式不是很有用。

我希望有额外的标题,因此它会输出Computername,Entrytype和Count。

如何让PowerShell列出这两个事件并在表中添加额外的标题?

3 个答案:

答案 0 :(得分:1)

快速显示每个日志文件的错误计数:

$filter = "LogFile='application' OR LogFile='system' AND EventType=1"

Get-WmiObject Win32_NTLogEvent -ComputerName COMPUTER -Filter $filter -Property  ComputerName,LogFile,EventType | `
  Group-Object -Property LogFile -NoElement

答案 1 :(得分:1)

$info  = foreach ($log in "application", "system") {get-eventlog -ComputerName $computername -LogName $log -EntryType error }
$groupedinfo = $info | group-object machinename, entrytype
$groupedinfo | select @{N="Computername";E={$_.name.split(',')[0]}},
                      @{N="EntryType";E={$_.name.split(',')[1]}},
                      count

答案 2 :(得分:-1)

我使用的样本,至少是计数位,因为它在一行上很脏且很快:

$EventCount=0; Get-EventLog -LogName "Application" -EntryType "Information" | foreach{$_;$EventCount++}|Out-Null;"Total Events is:"+$EventCount

out-null只会停止无用的信息,在这种情况下,会喷到屏幕上。