У меня есть небольшой script на моем контроллере домена, который настроен для отправки по электронной почте мне через SMTP о последнем событии безопасности 4740.
script, когда выполняется вручную, будет запускаться по назначению; однако при настройке для запуска с помощью запланированных задач и, несмотря на то, что он показывает, что был выполнен, ничего не происходит (нет электронной почты).
script выглядит следующим образом:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}
$Event = Get-EventLog -LogName Security -InstanceId 4740 -Newest 5
$MailBody= $Event.Message + "`r`n`t" + $Event.TimeGenerated
$MailSubject= "Security Event 4740 - Detected"
$SmtpClient = New-Object system.net.mail.smtpClient
$SmtpClient.host = "smtp.domain.com"
$MailMessage = New-Object system.net.mail.mailmessage
$MailMessage.from = "[email protected]"
$MailMessage.To.add("toemail.domain.com")
$MailMessage.IsBodyHtml = 1
$MailMessage.Subject = $MailSubject
$MailMessage.Body = $MailBody
$SmtpClient.Send($MailMessage)
Запланированная задача настраивается следующим образом:
RunsAs:LOCAL SYSTEM
Trigger: On event - Log: Security, Event ID: 4740
Action: Start Program - C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Argument: -executionpolicy bypass c:\path\event4740.ps1
Я также пробовал следующее:
Trigger: On event - Log: Security, Event ID: 4740
Action: Start Program - C:\path\event4740.ps1
В соответствии с историей задач: начатой задачей, начатым действием, созданным процессом задачи, завершенным действием, завершенной задаче. Я просмотрел несколько ссылок на сайте с той же "проблемой", но все они, похоже, имеют какую-то переменную, которой у меня нет. Я также пробовал некоторые из упомянутых решений, думая, что они могут быть несколько связаны, но, увы, ничего не работает. Я даже попытался удалить мою запланированную задачу и сбросить ее, как указано здесь: http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx
Кто-нибудь запускает этот тип ошибки раньше или знает, как обойти эту проблему?
Устранение неполадок:
Я решил попробовать позвонить в .bat файл по запланированной задаче. Я создал простой файл, который будет отображать текущую дату/время в контролируемой папке. Запуск файла вручную и с помощью задачи, инициированной событием 4740, достигли желаемых результатов. Изменение файла .bat вместо вызова файла .ps1 работало вручную. Когда срабатывает событие 4740, теперь байт больше не будет работать.