以下はローカル コンピューターで正常に実行されますが、-ComputerName "myRemoteName" を入力するとハングし、約 5 分経過しても何も返されません。しかし、プログラムはまだ実行されているようです。
「ワイヤ」を介して大量のデータパケットを返そうとしていますか? 理論的には、リモート コンピューターで過去 2 時間に 10 件未満のエラーが発生しているはずです。
$getEventLog = Get-EventLog -log application -ComputerName "myRemoteName" -after ((get-date).addMinutes($minutes*-1)) -EntryType Error
Write-Host Get-Eventlog completed
# list of events to exclude (based on text found in the message)
$getEventLogFiltered = $getEventLog | Where-Object {$_.Message -notlike 'Monitis*' -and $_.Message -notlike '*MQQueueDepthMonitor.exe*' -and $_.Message -notlike '*The local computer may not have the necessary registry*' }
#to only select certain columns, use Select-Object -Property and list the property/columns
$getEventLogColumns = $getEventLogFiltered | Select-Object -Property TimeGenerated,Source,Message,EntryType,MachineName,EventID
$tableFragment = $getEventLogColumns | ConvertTo-Html -fragment
Write-Host "HTML-Table Built"
その後のコードは、電子メールを作成して送信します...
Get-WinEvents への切り替えを提案する他の投稿を見たことがありますが、書き直すのに 1 時間か 2 時間かかると思います (Powershell の経験がないため)。私が上に持っているものは、ローカルコンピューターで正常に動作しています。
Updates 03/04/2014 13:40 CT:
Running with $minutes = 120 ran 14.5 minutes.
Running with $minutes = 1 ran 12.5 minutes.
結論として、$minutes の範囲を変更しても、実際には応答時間には影響がないようです。どちらも遅いです。