Powershell Event Log отправляет бесконечные электронные письма - PullRequest
0 голосов
/ 20 марта 2019

В основном после https://www.ryadel.com/en/event-viewer-send-notification-e-mail-messages-with-powershell/, Я закончил с

$event = get-eventlog -LogName Application -Message *Arc* -newest 1 | Where-Object {$_.Source -notlike "MsiInstaller"}

if ($event.Message -like "*Arc*")
{
    $PCName = $env:COMPUTERNAME
    $EmailBody = $event | format-list -property * | out-string
    $EmailFrom = "$PCName sasquatch@bigfoot.com"
    $EmailTo = "you_cant_find@me.com"
    $EmailSubject = $event.Source
    $SMTPServer = "smtp.server"
    Write-host "Sending Email"
    Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -body $EmailBody -SmtpServer $SMTPServer
}
else
{
    write-host "No error found"
    write-host "Here is the log entry that was inspected:"
    $event
}

Который я затем присоединяю как задачу к Журналу приложений Windows. Когда параметры запроса выполняются либо с помощью метода тестирования, включенного в ссылку, либо с помощью фактического события приложения, которое соответствует критериям, я не только получаю электронное письмо, но и получаю одно и то же электронное письмо снова и снова, снова и снова.

В настройках запланированной задачи я перепробовал все возможные варианты, включая ALL из опций в «Если задача уже запущена, то применяется следующее правило». Задача выполняется под учетной записью службы, и многие, многие другие запланированные задачи, не связанные с этой, работают нормально, как и многие годы. Также нет проблем с сервером электронной почты, который заставил бы его отправлять электронные письма бесконечными циклами, поскольку он обслуживает 25 000 пользователей, и они заметили бы это примерно за 0,2 секунды.

enter image description here

Думая, что PS был шатким, я тоже попытался:

$event = get-eventlog -LogName Application -Message *Arc* -newest 1 | Where-Object {$_.Source -notlike "MsiInstaller"}
$PCName = $env:COMPUTERNAME
$EmailBody = $event | format-list -property * | out-string
$EmailFrom = "$PCName sasquatch@bigfoot.com"
$EmailTo = "you_cant_find@me.com"
$EmailSubject = $event.Source
$SMTPServer = "smtp.server"
Write-host "Sending Email"
Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -body $EmailBody -SmtpServer $SMTPServer

Та же проблема: бесконечный цикл писем. Это в Windows Server 2012 R2 Datacenter. История планировщика заданий продолжает отображаться Task Scheduler did not launch task "\Event Viewer Tasks\ArcGIS Application" because instance "{0b7a77d1-41f9-4ad9-b943-a98d1a22aa9f}" of the same task is already running.

...