Я пытаюсь отследить возникновение указанных событий безопасности. Для этого я хочу, чтобы сообщение отображалось всякий раз, когда эти события регистрируются в журнале безопасности 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 путем изменения политики аудита системы, сообщение не отображается, несмотря на то, что событие регистрируется в журнале безопасности. Оба триггера установлены в планировщике заданий одинаково, поэтому мне неясно, почему это работает для одного, а не для другого.

2 ответа2

0

Не нам TaskSceduler для этого. Используйте постоянного потребителя / наблюдателя WmiEvent. Используйте RegEx или, чтобы пойти после нескольких событий.

Пример:

Add-Type -AssemblyName System.Windows.Forms
$lastEvt = Get-WinEvent -LogName 'Security' -MaxEvents 20 | ? { $_.Id -eq '1102|4719' } | select -First 1
[System.Windows.Forms.MessageBox]::Show(($lastEvt.Message), "Event ID: $($_.Id)")

Это было возможно для нескольких языков, поэтому не PS-специфическая вещь, но, конечно, PS может использоваться для этого.

Примеры:

Централизованный монитор журналов Powershell. Контролирует набор серверов для указанных событий журнала и отправляет оповещения по электронной почте, когда обнаруживает отслеживаемые события. https://gallery.technet.microsoft.com/scriptcenter/ed188912-1a20-4be9-ae4f-8ac46cf2aae4

https://learn-powershell.net/2013/08/02/powershell-and-events-wmi-temporary-event-subscriptions

http://irl33t.com/blog/2011/06/powershell-script-watch-eventlogs-ps1

https://www.codeguru.com/vb/vbnet30/article.php/c13315/How-to-Build-a-Simple-Event-Log-MontiorWatcher-Using-TCP-in-NET.htm

https://www.codeproject.com/Articles/4857/%2fArticles%2f4857%2fA-realtime-event-log-monitoring-tool

https://www.ravichaganti.com/blog/attaching-scripts-or-tasks-to-windows-event-log-entries-using-powershell-and-wmi

0

Наконец выяснил это ... оказывается, что источником для 4719 является Microsoft-Windows-Security-Auditing, а не Microsoft-Windows-Eventlog.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .