Мне нужно отображать сообщение пользователю всякий раз, когда происходят следующие идентификаторы событий системы аудита: 1100 , 1102 , 1104 , 1108 , 4612 и 4719 .
В строке заголовка окна сообщения в качестве примера следует указать «Идентификатор события: 1100»
Мне также нужно знать, как запускать каждое из этих событий.
Вот что мне удалось сделать до сих пор: в настоящее время я использую планировщик заданий Windows.Для события с кодом 1102 я настроил следующий триггер:
On event - Log: Security, Source: Microsoft-Windows-Eventlog, EventID: 1102
Наряду со следующим действием для запуска в powershell:
-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')
Зайдя в Event Viewer и очистив журнал безопасности, я могу отобразить нужное сообщение.Однако я хотел бы иметь возможность добавить аргумент String в конец моего действия планировщика заданий, а не вводить строковый литерал 'Event ID: 1102' в моем скрипте .ps1.Это позволит мне использовать тот же сценарий для любого идентификатора события.
Кроме того, я не смог отобразить сообщение для любого другого события (используя тот же триггер / действие / сценарий, как описано выше).но с соответствующими идентификаторами событий).Например, я произвел изменение политики аудита системы (событие с кодом 4719), которое было зарегистрировано в журнале безопасности в средстве просмотра событий, но по какой-то причине не отображало никаких сообщений.Что касается остальных, я еще не выяснил, как их запускать вручную.