我正在尝试编写对远程服务器上过去 30 天应用程序和系统事件日志的审查的脚本,只查找警告、错误或严重条目。
借用我在这里和其他论坛上的发现,我想出了:
$Date = Get-Date
$Range = $Date.AddDays(-30)
$Range = $range.ToShortDateString();
$LogName = Read-Host "Which Log? (Application, System)"
$Server = Read-Host "Please Enter Server Name"
get-eventlog $LogName -ComputerName $Server -After $range | where {$_.EntryType -eq "Error" -or $_.EntryType -eq "Warning" -or $_.EntryType -eq "Critical"}
这似乎运行得相当快,但如果确实如此,则在返回提示之前会挂起数(5-10+)分钟。
注意:如果我删除代码:
-After $range
我可以简单地用 ctrl-c 中断输出并继续我的一天,但我宁愿它按预期运行然后停止......
所以:关于如何消除这种挂起的任何想法?
我也对如何使代码更优雅(更快)持开放态度!而且我不介意脚本检查应用程序和系统日志而不必运行两次......