新しいWin2k12標準サーバーのイベントビューアーでエラーが発生したときにPowerShellを使用してアラートを出したいのですが、スクリプトを10分ごとに実行できると思っていましたが、イベントログのためだけにサーバーに負担をかけたくありません。チェックして、これが私が使いたいPowerShellスクリプトです:
$SystemErrors = Get-EventLog System | Where-Object { $_.EntryType -eq "Error" }
If ($SystemErrors.Length -gt 0) {
Send-MailMessage -To "[email protected]" -From $env:COMPUTERNAME + @company.co.nz" -Subject $env:COMPUTERNAME + " System Errors" -SmtpServer "smtp.company.co.nz" -Priority High
}
サーバーを傷つけることなくこのスクリプトを実行できる安全な頻度はどれくらいですか?
ハードウェア:
Intel Xeon E5410 @ 2.33GHz x2
32GB RAM
3x 7200RPM S-ATA 1TB(2x RAID1)
編集:
Mathias R. Jessenの回答の助けを借りて、次のスクリプトを使用してアプリケーションとシステムログにイベントを添付することになりました。
Param(
[string]$LogName
)
$ComputerName = $env:COMPUTERNAME;
$To = "[email protected]"
$From = $ComputerName + "@company.co.nz";
$Subject = $ComputerName + " " + $LogName + " Error";
$SmtpServer = "smtp.company.co.nz";
$AppErrorEvent = Get-EventLog $LogName -Newest 1 | Where-Object { $_.EntryType -eq "Error" };
If ($AppErrorEvent.Length -eq 1) {
$AppErrorEventString = $AppErrorEvent | Format-List | Out-String;
Send-MailMessage -To $To -From $From -Subject $Subject -Body $AppErrorEventString -SmtpServer $SmtpServer -Priority High;
};
それからあなたの方法をスクリプト化する必要はありません。
イベントビューアで特定のイベントにタスクを添付できます。2012年も2008年と同じように機能します。ビューアで特定のイベントのインスタンスを右クリックし、[このイベントにタスクを添付]を選択します。
イベントログ全体にタスクを添付することもできます。
次の記事では、具体的にはメールタスクの設定について説明します。 http://blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email- on-an-event-log-trigger.aspx