Отправить уведомление по электронной почте, когда генерируется определенный идентификатор события
У меня есть похожее решение, которым я хотел бы поделиться, на тот случай, если кто-то может его использовать, поскольку оно, кажется, помогает мне и кричит на меня только тогда, когда оно мне явно нужно, основываясь на конкретных идентификаторах событий.
планирование
В этом решении используется задание планировщика заданий, в котором есть много разных триггеров события On, когда оно должно выполняться. Вы указываете конкретный идентификатор события, который должен « инициировать » выполнение.
Скрипт PowerShell
Вот сценарий PowerShell, который использует учетную запись Gmail с паролем для отправки электронного письма, которое будет содержать подробные сведения о соответствующих событиях в его теле.
Примечание. Вы должны передать пароль учетной записи Gmail в качестве первого аргумента сценарию PowerShell.
$EmailPassword=$args[0]
$event = get-eventlog -LogName System -EntryType Error -newest 1
$PCName = $env:COMPUTERNAME
$Username = "LocalMailBox"
$EmailBody = $event | format-list -property * | out-string
$EmailFrom = "$PCName <noreply@domain.notify>"
$EmailTo = "whatever@gmail.com"
$EmailSubject = "New Event Log [System]"
$SMTPServer = "smtp.gmail.com"
Write-host "Sending Email"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword);
$SMTPClient.Send($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
Start-Sleep -s 10
На вкладке « Действие » вы создадите действие, определенное как:
- Действие:
Start a program
- Программа / скрипт:
Powershell
- Добавьте аргументы (необязательно):
-ExecutionPolicy Bypass -File "C:\Scripts\PSScript.ps1" "GmailPassword"
- Запустите (необязательно):
C:\Windows\System32\WindowsPowerShell\v1.0
На вкладке Общие запланированной задачи убедитесь, что выбраны параметры Выполнить независимо от того, вошел ли пользователь в систему и выбраны ли параметры Запуск с наивысшими привилегиями .
Электронная почта
Если все перечисленное выше установлено точно так же, как указано, это будет гарантировать, что когда будут сгенерированы те конкретные идентификаторы системных событий , которые вы определили как « триггеры », для которых будет отправлено электронное письмо, и, будем надеяться, с соответствующими подробностями в соответствии с событием, которое вызывает каждое из них.
Я упоминаю об этом только потому, что заметил два события, которые соответствуют логике PowerShell в $event | format-list -property * | out-string
создаются быстро, что тело письма будет содержать информацию о последнем событии в зависимости от времени.
Помните, что независимо от содержимого тела идентификатора события и даже если оно не имеет отношения к конкретным событиям, которые вы определили как триггеры, несомненно, что определенные триггеры действительно вызвали это сообщение, поэтому уделите ему некоторое внимание при получении.