Eu configuraria a ação da tarefa para "Iniciar um programa" em vez de "Enviar um e-mail". O programa para iniciar seria um script Powershell que faz isso: verifique a hora do último alerta enviado, e se o último alerta foi há mais de 15 minutos, envie um novo alerta usando Send-MailMessage e atualize o último horário de alerta. Você pode armazenar o último horário de alerta em um arquivo auxiliar próximo ao script ou em outro lugar.
Exemplo de script:
$timeFile = "[PATH TO TIME FILE]"
$needNewAlert = true
if (Test-Path $timeFile -PathType Leaf) {
$starttime = [datetime](Get-Content $timeFile)
$timespan = New-TimeSpan -Start $starttime -End (Get-Date -Format u)
if ($timespan.TotalMinutes -lt 15.0) {
$needNewAlert = false
}
}
if ($needNewAlert) {
Send-MailMessage -From [email protected] -To [email protected] -Subject "I'm in too deep!"
Get-Date -Format u > $timeFile
}
Como um aparte: você pode reduzir ainda mais o número de e-mails de alerta de um determinado sistema usando um script para vários acionadores passando argumentos / sinalizadores para o script para indicar a origem do problema. Você terá que acompanhar o último tempo de alerta em uma base por problema (uma maneira de fazer isso é manter os pares de origem / carimbo de data / hora em uma tabela de dicionário / hash e salvar o objeto em um arquivo usando Export-CliXML e carregue o objeto com Import-CliXML ), então você pode ter o corpo do e-mail como um resumo de todos os problemas atuais relatados desta maneira.