$logpath = "C:\PerfLogs\Admin\ServerManager\*.blg" $perfcounter = "*Processor(_Total)\% Processor Time*" #$perfcounter = "*Memory\Available KBytes*" $intervalhr = 1 $since = (Get-Date).AddHours(-1*$intervalhr) $logs = Get-ChildItem $logpath | Where-Object { $_.LastWriteTime -ge $since } | Sort-Object LastWriteTime -Descending $counters = @() foreach ($log in $logs) { $ret = $null if((get-item($log)).Length -gt 131072) { $ret = Import-Counter -Path $log.FullName -ErrorAction SilentlyContinue | Where-Object { $_.TimeStamp -ge $since } | Select-Object -Expand CounterSamples if ($ret -and $ret.Count -gt 0) { $counters += $ret } } } if ($counters) { $usage = $counters | Where-Object Path -like $perfcounter if($usage) { $result = $usage |Measure-Object -Property CookedValue -Average -Maximum -Minimum "AVG: {0:N2} MAX: {1:N2} MIN: {2:N2}" -f $result.Average,$result.Maximum,$result.Minimum #return $result.Average } else { Write-Host "No performance data in logs." } } else { Write-Host "No performance data in logs." }