Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Нужен скрипт для мониторинга событий, с условием.

Ответить
Настройки темы
Любой язык - [решено] Нужен скрипт для мониторинга событий, с условием.

Аватара для root221

Старожил


Сообщения: 177
Благодарности: 13

Профиль | Отправить PM | Цитировать


Изменения
Автор: root221
Дата: 18-07-2011
Нужен скрипт, который будет мониторить, за событиями.

Код: Выделить весь код
Например, событие номер "7001"
Если номер события 7001 появился в списке, тогда сразуже выводится сообщение.

Код: Выделить весь код
msg * /W "Номер события (7001) появился в журнале событий."
eventquery /l System

Вот, из этой таблицы, нужно мониторить, только за столбиком события, я этот столбик выделил, ЖИРНЫМ ширифтом, неважно, ошибка это или нет, номер события, я укажу сам.

Код: Выделить весь код
------------------------------------------------------------------------------
  Перечисление событий в журнале 'system' для узла 'Мой комп'
------------------------------------------------------------------------------
 Тип           Событие     Дата и время             Источник         ComputerName
 ------------- ------ ------------------------ -----------------    --------------
 Ошибка         7001     01.01.2000 10:10:10   Service Control M      Мой комп

P.S. Скрипт должен, раз в минуту, обновляться

Отправлено: 02:57, 16-07-2011

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


всё-таки это больше задача для WSH, пример на VBS:
Код: Выделить весь код
Set WMI = GetObject("winmgmts:{impersonationLevel=Impersonate,(Security)}!\\.\root\cimv2")
Set EVT = WMI.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent" &_
" WHERE TargetInstance ISA ""Win32_NTLogEvent"" AND TargetInstance.EventCode=7001" &_
" GROUP WITHIN 60 BY TargetInstance.EventCode")

While vbTrue
  Set obj = EVT.NextEvent
  WScript.Echo "Номер события (7001) появился в журнале событий "& obj.NumberOfEvents & " раз."
WEnd

Последний раз редактировалось amel27, 18-07-2011 в 13:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:50, 18-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для root221

Старожил


Сообщения: 177
Благодарности: 13

Профиль | Отправить PM | Цитировать


ругается на 2-ю строку, отказано в доступе, источник SWbemServicesEx

Отправлено: 12:03, 18-07-2011 | #3


Аватара для root221

Старожил


Сообщения: 177
Благодарности: 13

Профиль | Отправить PM | Цитировать


смотрю и без vbs можно решить проблему.

Код: Выделить весь код
for /f "skip=9" %%i in ('cscript %windir%\system32\eventquery.vbs /FI "Id eq 7001" /L system') do (msg * Ошибка 7001 появилась в файле журнала. & goto :next)
:next

Отправлено: 12:57, 18-07-2011 | #4


Аватара для root221

Старожил


Сообщения: 177
Благодарности: 13

Профиль | Отправить PM | Цитировать


amel27, что с vbs ? ошибку пишет ((

Отправлено: 13:18, 18-07-2011 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата root221:
отказано в доступе »
да, есть такая проблема в XP (в 2003 нормально), исправил

Цитата root221:
смотрю и без vbs можно решить проблему »
дык, это вызов "eventquery.VBS" на предмет наличия событий в журнале и без паузы, простой запрос к журналу можно выполнить без вызова VBS:
Код: Выделить весь код
WMIC NTEVENT WHERE "LogFile='System' AND EventCode=7001" Get * /Value
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:38, 18-07-2011 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Да хватит некромантией заниматься: в Vista и 7 можно в планировщике заданий указать и отслеживаемое событие и назначить вывод сообщения на экран.

Отправлено: 13:50, 18-07-2011 | #7


Аватара для root221

Старожил


Сообщения: 177
Благодарности: 13

Профиль | Отправить PM | Цитировать


Busla,

У меня комп такие OS не потянет(

amel27, ошибка есть, сообщения нету (

Отправлено: 15:55, 18-07-2011 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата root221:
ошибка есть, сообщения нету »
проверял на XPSP3 RUS и на XP Virtual Box (W7) - под админом ошибки доступа нет.
Для Event Id 26, запускаем скрипт:
Код: Выделить весь код
WScript Test.VBS
в течение минуты выполняем несколько раз команду:
Код: Выделить весь код
NET SEND %ComputerName% "Test Message"
примерно через минуту появляется сообщение со счетчиком
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:50, 18-07-2011 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Нужен скрипт для мониторинга событий, с условием.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Составить скрипт с условием Firebolt Скриптовые языки администрирования Windows 27 14-07-2011 23:59
CMD/BAT - [решено] скрипт подключения к интернету с условием moobi Скриптовые языки администрирования Windows 1 03-03-2011 02:26
Любой язык - нужен скрипт для удаления всех файлов кроме нужных для запуска Windows XP Dark Ange1 Скриптовые языки администрирования Windows 11 07-03-2010 13:34
VBS/WSH/JS - Нужен скрипт для прописания должности юзерам. dvassilyev Скриптовые языки администрирования Windows 2 04-08-2009 08:56
[решено] Нужен скрипт для autoit для раскопирования файла irk72ag Автоматическая установка приложений 3 19-06-2009 15:27




 
Переход