在事件日志错误触发安全检查频率时发送邮件

在事件日志错误触发安全检查频率时发送邮件

我想使用 powershell 在新的 Win2k12 标准服务器上的事件查看器中发生错误时提醒我,我想我可以每 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
}

在不损害我的服务器的情况下我可以以什么安全的频率运行此脚本?

硬件:

英特尔至强 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;
};

答案1

无需编写脚本来解决这个问题。

您可以将任务附加到事件查看器中的特定事件,2012 和 2008 中的工作方式相同:右键单击查看器中特定事件的实例,然后选择“将任务附加到此事件”。

您还可以将任务附加到整个事件日志。

以下文章介绍了如何设置电子邮件任务,具体如下:http://blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger.aspx

相关内容