В настоящее время у нас есть компьютер с Windows Server 2008, на котором мы настроили специальную задачу для отправки электронного письма при возникновении ошибки в определенном журнале событий. Триггер работает идеально и отправляет электронные письма, когда они нам нужны.
ОДНАКО мы не можем найти способ получить электронное письмо, содержащее информацию об ошибке, особенно сообщение об ошибке. Есть ли способ изменить сообщение на основе содержимого ошибки журнала событий?
Может быть, eventtriggers - ваш ответ? Я еще не слишком хорошо знаком с Server 2008, но в 2003 году я постоянно использовал триггеры событий. Позвольте вам делать все, что захотите, поскольку вы можете запускать любую команду или сценарий, который вы пишете.
http://www.petri.co.il/how-to-use-eventtriggersexe-to-send-e-mail-based-on-event-ids.htm
Используйте триггеры событий для запуска сценария VBscript. Вы можете использовать сценарий, подобный приведенному ниже, для отправки электронной почты с недавними ошибками, но я еще не внедрил его в производство, потому что он вызывает высокую загрузку ЦП на сервере в WMIPRVSE.EXE (я предполагаю, что это процесс, который обрабатывает WMI запросы).
ПРЕДУПРЕЖДЕНИЕ: следующий сценарий вызывает высокую загрузку ЦП и не готов для систем с высокой загрузкой / критически важных систем.
strComputer = "."
Dim emailText
emailText = "An error has occurred on [server_name]. This email was generated by eventtriggers.exe on [server_name]. Run eventtriggers.exe /? at the command prompt on [server_name] for help with managing event triggers." & vbNewLine & vbNewLine & "Recent Errors:" & vbCrLf
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent " _
& "Where Type = 'Error'")
Dim count
count=0
For Each objEvent in colLoggedEvents
emailText = emailText & "*****************************************************************************" & vbNewLine & vbNewLine & objEvent.Message & vbNewLine & vbNewLine
count = count + 1
If count > 4 then
Exit For
End If
Next
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "server@company.com"
objEmail.To = "name@company.com"
objEmail.Subject = "Server Error"
objEmail.Textbody = emailText
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"[ENTER YOUR SERVER HERE]"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
Или посмотрите этот ответ: Журнал событий Windows - уведомление по электронной почте