我想使用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 }
什么是安全的频率我可以运行这个脚本,而不会伤害我的服务器?
硬件:
Intel Xeon E5410 @ 2.33GHz x2
32GB内存
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年相同:右键单击查看器中特定事件的实例,然后select“将任务附加到此事件”。
您也可以将任务附加到整个事件日志。
以下文章通过设置电子邮件任务,具体为: http : //blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-事件日志trigger.aspx