リモート サーバー上のアプリケーションおよびシステム イベント ログの過去 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 で出力を中断して 1 日を続けることもできますが、意図したとおりに実行してから停止したいのです...
だから:このハングを解消する方法についてのアイデアはありますか?
また、コードをよりエレガントに (そしてより速く) するためのアイデアも歓迎します! また、スクリプトを 2 回実行することなく、アプリケーション ログとシステム ログの両方をチェックしてもかまいません....