Я пытаюсь отследить возникновение указанных событий безопасности. Для этого я хочу, чтобы сообщение отображалось всякий раз, когда эти события регистрируются в журнале безопасности Windows. Поскольку отображение сообщения является устаревшей функцией в планировщике задач, я использую команды Powershell для выполнения этого следующим образом:
Спусковой крючок
On event - Log: Security, Source: Microsoft-Windows-Eventlog, EventID: 1102
действие
-executionpolicy bypass -windowstyle hidden -file C:\1102.ps1
1102.ps1
Add-Type -AssemblyName System.Windows.Forms
$lastEvt = Get-WinEvent -LogName 'Security' -MaxEvents 20 | ? { $_.Id -eq 1102 } | select -First 1
[System.Windows.Forms.MessageBox]::Show(($lastEvt.Message), 'Event ID: 1102')
Событие с кодом 1102 происходит каждый раз, когда очищается журнал аудита. Чтобы вызвать это, я просто захожу в Event Viewer, щелкаю правой кнопкой мыши по журналу безопасности и нажимаю «Очистить журнал ...»». Вскоре после этого сообщение отображается как задумано.
Однако, когда я пытаюсь вызвать событие с кодом 4719 путем изменения политики аудита системы, сообщение не отображается, несмотря на то, что событие регистрируется в журнале безопасности. Оба триггера установлены в планировщике заданий одинаково, поэтому мне неясно, почему это работает для одного, а не для другого.