改进Powershell Get-WinEvent脚本性能

时间:2015-09-29 04:12:54

标签: powershell

以下脚本每台服务器需要5-10分钟才能返回事件。我目前只查询过去7天的事件。这些服务器都是Windows Server 2012 R2服务器。是否有更好的方法可以改善其性能?迄今为止事件的最高总计数为24,509(所有事件计数的总和)。看起来这不应该花费超过5分钟,但也许我期待太多了?

供参考:

$eventlogs = 'application, system'
$eventlevels = '1','2','3'
$startdate = get-date
$enddate = [DateTime]::Today.AddDays(-7)

Get-WinEvent -ComputerName $server -FilterHashTable @{LogName=$eventLogs; Level=$eventLevels; StartTime=$startDate; EndTime=$endDate} -ErrorAction SilentlyContinue `
| Group-Object LogName, ProviderName, ID, {$_LevelDisplayName}, Count `
| Select-Object @{N="Log"; E={$_.Group[0].LogName}}, `
@{N="Provider"; E={$_.Group[0].ProviderName}}, `
@{N="Error ID"; E={$_.Group[0].ID}}, `
@{N="Type"; E={$_.Group[0].LevelDisplayName}}, `
count, `
@{N="Message"; E={$_.Group[0].Message.Replace("`r",' ').Replace("`n",' ')}} `
| Sort-Object  "Type" `
| Export-Csv -notypeinformation -Path $file

0 个答案:

没有答案