我試圖編寫遠程服務器上應用程序和系統事件日誌過去30天的審查腳本,只查找警告,錯誤或關鍵條目。PowerShell:get-eventlog花費很長時間才能完成
從我發現這裏和其他論壇借用,我想出了:
$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和我每天收到的,但我而是按預期運行然後停止...
所以:關於如何消除這種掛起的任何想法?
我也接受關於如何使代碼更優雅(和更快)的想法! 而且我也不會介意的腳本都檢查應用程序和系統日誌,而無需運行兩次....
請注意,Invoke-Command使用WSMAN/WinRM,需要在您的網絡上啓用,配置和打開端口。 – KERR