Как заставить PowerShell захватить файл журнала, когда он переполняется?

Я использую плагин Powershell PSeventing, но пока мне не удалось найти событие, которое срабатывает, когда журнал событий заполнен. Я ищу везде события MSDN .net. Я знаю, что это связано с максимальным размером журнала событий, но я не могу найти этот триггер, и я не уверен, как заставить PSeventing сделать это. Может кто-нибудь мне помочь. Заранее спасибо.


person Community    schedule 18.11.2008    source источник
comment
Прошу прощения за невежество, но какое нормальное системное событие будет вызвано в случае переполнения журнала событий?   -  person bugmagnet    schedule 18.11.2008
comment
Ваше право, это может быть не событие, а исключение, и мне нужно его поймать. Я изучаю команды Trap и Throw Powershell и запускаю скрипт как службу или запускаю скрипт при запуске сервера и/или прикрепляю скрипт к объекту групповой политики с помощью стороннего инструмента specopssoft.com и т. д.   -  person    schedule 19.11.2008


Ответы (5)


Моей первой мыслью было бы использовать FileSystemWatcher и контролировать размер файла. Я не нахожу другого варианта, кроме мониторинга журнала системных событий (я думаю, что событие записывается туда, когда журнал заполнен и попытка записи не удалась), но это не сработает, если журнал вас беспокоит это журнал системных событий.

person Community    schedule 18.11.2008

Существует определенное событие, которое происходит в журналах событий приложения или системы, когда они считаются «заполненными» (в соответствии с настроенным действием OverflowAction):

http://www.eventid.net/display.asp?eventid=6000&eventno=291&source=EventLog&phase=1

Вы должны следить за событиями, используя WmiEventWatcher для этого события (eventid 6000, ошибка), в частности, так же, как и для любого другого события.

-Ойсин (автор поствентинга)

person Community    schedule 18.11.2008
comment
Есть ли другое событие для журнала безопасности Журнал событий заполнен? - person ; 25.11.2008
comment
Если журнал настроен на перезапись, есть ли eventid 6000? - person ; 26.11.2008

Интересно, есть ли связанное событие WMI, для которого вы могли бы зарегистрировать приемник. Если будет время, поищу.

Итак, вот что я нашел до сих пор. Доступен приемник событий __EventQueueOverflowEvent. Я подозреваю, что это может сработать для вас. Существует также __SystemEvent, который также может оказаться полезным.

person Community    schedule 18.11.2008
comment
Спасибо за событие, Oisin, но сейчас я изучаю перехват исключения в Powershell, когда журнал заполнен до того, как он будет перезаписан. Я думаю, что исключения называются журналом заполненным, но я не уверен, и я не так много знаю о ловушках и бросках, которые, как говорят, плохо документированы, но я иду по следу - person ; 21.11.2008

Спасибо за событие, Oisin, но сейчас я изучаю перехват исключения в Powershell, когда журнал заполнен до того, как он будет перезаписан. Я думаю, что исключения называются «журнал заполнен», но я не уверен, и я не так много знаю о ловушках и бросках, которые, как говорят, плохо документированы, но я иду по следу.

person Community    schedule 19.11.2008

Один из способов — использовать Microsoft System Center или MOM для отслеживания события с идентификатором 523. Я считаю, что необходимо применить исправление к серверам, которые будут регистрировать полное событие журнала. Проверьте веб-сайт Microsoft. Наш триггер срабатывает на 90%, я думаю, вы можете установить процент, на котором вы хотите, чтобы он срабатывал.

Вы также, вероятно, можете сделать это с помощью WMI или Powershell, но его нужно будет часто запускать, чтобы отслеживать изменения. Простой DIR для журнала событий даст вам размер, если вы знаете верхний предел, вы можете рассчитать % заполнения. Это может быть автоматизировано в VB или C#.

person Community    schedule 02.12.2008