Объект WScript.Shell метод LogEvent — Журнал событий Windows

Объект WScript.Shell метод LogEvent — Журнал событий Windows Объектная модель Windows Script Host

Доброго дня всем читателям блога scriptcoding.ru. В этой статье мы познакомимся с методом объекта WScript Shell – LogEvent. Данный метод позволяет заносить в журнал событий Windows информацию различного типа.

Для начала давайте кратко освежим память относительно журнала событий системы Windows.

Журнал событий Windows

Журнал событий Windows хранит информацию о любых изменениях в системе, например: успешный или неудачный вход в систему, ошибки и неполадки на диске, информация относительно работы программного и аппаратного обеспечения компьютера и так далее. Для начала стоит рассмотреть, какие основные есть типы журналов событий Windows:

  • Журнал приложений – тут хранится информация, добавленная программным путем, например, при попытке получить доступ к базе данных приложение потерпело неудачу, и записало информацию про это в журнал.
  • Журнал безопасности – В большинстве случаев тут записывается информация относительно успешного или неудачный входа в систему Windows, по сути, все, что связано с авторизацией и аутентификацией в Windows.
  • Журнал системы – Тут хранится информация, записанная системными компонентами, например, сбой при загрузке драйвера.

Хорошо, теперь давайте посмотрим, как можно просмотреть журнал событий Windows.

Просмотр журнала событий Windows

В первую очередь надо открыть папку Панель управления, далее открываем каталог Администрирование и Просмотр событий, но можно и по-другому, в папке Панель управления открываем Управление компьютером, в открывшемся окне нажимаем на папку Просмотр событий. Есть и третий способ, который позволяет открыть журнал событий ОС Windows из меню Пуск/Выполнить, для этого надо запустить файл-оснастку eventvwr.msc.

Типы событий в журнале Windows

В самом меню журнала событий Windows разобраться несложно, поэтому, я не буду на этом зацикливаться, поэтому давайте перейдем к основной теме данной публикации.

Информация о событии в журнале Windows

Метод LogEvent объекта WScript.Shell по своей природе довольно просто, мы просто указывает тип сообщения и само сообщение. Стоит помнить, что в журнале событий отображаются значки для того или иного типа события.

Общий синтаксис метода следующий:

LogEvent(intType, strMessage [ ,strTarget]) – видим, что методу передаются три параметра, плюс, он возвращает true, если событие было записано, и false в противном случае.

intType – данный параметр определяет тип сообщения, он принимает целые значения:

  • 0 – Неопределенный тип, отображается значок информации (SUCCESS)
  • 1 – Сообщение об ошибке (ERROR)
  • 2 – Предупреждение (WARNING)
  • 4 – Информация (INFORMATION)
  • 8 – Аудит успехов (AUDIT_SUCCESS)
  • 16 – Аудит отказов (AUDIT_FAILURE)

strMessage – собственно, сообщение, которое будет записано в журнале событий, строковой тип.

strTarget — строка, название системы, в которой протоколируется событие (по умолчанию — локальная система), может задаваться только в Windows NT/2000/XP.

Хорошо, теперь можно приступить к программированию, мы напишем два программных кода на языке vbscript и jscript. Давайте так, для начала я приведу пример кода на языке vbscript, дам пояснения, а уже потом мы рассмотрим пример на языке программирования jscript.

'*****************************************' wscript_shell_logevent' Запись в журнал событий Windows' logevent1.vbs'***************************************** 'Включаем проверку переменныхOptionExplicit dim WshShell ' Формируем ссылку на объектset WshShell = WScript.CreateObject("WScript.Shell"' Записываем сообщения в журнал событийWshShell.LogEvent 0,"Неопределенный тип, отображается значок информации (SUCCESS)"WshShell.LogEvent 1,"Сообщение об ошибке (ERROR)"WshShell.LogEvent 2,"Предупреждение (WARNING)"WshShell.LogEvent 4,"Информация (INFORMATION)"WshShell.LogEvent 8,"Аудит успехов (AUDIT_SUCCESS)"WshShell.LogEvent 16,"Аудит отказов (AUDIT_FAILURE)" ' Выводим сообщение об успехеMsgBox "Все прошло успешно OK!!!!!!"

Видим, прежде всего мы объявили переменную WshShell, которая будет хранить ссылку на экземпляр класса WScript.Shell, связь с объектом в языке vbscript прописывается с помощью ключевого слова set. Далее мы произвели последовательную запись информации в журнал событий Windows для каждого типа.

Стоит заметить, что я тут не проводил проверки на успех выполнения операции. Сам сценарий я запускал как под правами гостя, так и под правами администратора. Для более полной картины, стоило бы сделать проверку на ошибки. Вы конечно можете сказать: какой смысл указывать тот или иной тип события, ведь можно всегда указывать один тип? Верно, но визуально, нам проще будет, если для той или иной задачи будет определен разный тип в журнале событий ОС Windows.

Скачать архив с примерами

Так, мы можем написать сценарий для мониторинга системы с помощью инструментарий Windows. Можно следить за каталогом с файлами, и проверять следующие события: создание в нем файлов и папок, чтение или запись, общий размер каталога и так далее.

Хорошо, теперь давайте рассмотрим аналогичный пример, но уже на языке jscript:

//*****************************************// wscript_shell_logevent// Запись в журнал событий Windows// logevent1.js//***************************************** var WshShell; // Формируем ссылку на объектWshShell = WScript.CreateObject("WScript.Shell"); // Записываем сообщения в журнал событийWshShell.LogEvent(0,"Неопределенный тип, отображается значок информации (SUCCESS)");WshShell.LogEvent(1,"Сообщение об ошибке (ERROR)");WshShell.LogEvent(2,"Предупреждение (WARNING)");WshShell.LogEvent(4,"Информация (INFORMATION)");WshShell.LogEvent(8,"Аудит успехов (AUDIT_SUCCESS)");WshShell.LogEvent(16,"Аудит отказов (AUDIT_FAILURE)"); // Выводим сообщение об успехеWScript.Echo("Все прошло успешно OK!!!!!!");

Тут практически все то же, изменился только программный код, а цель осталась прежняя.

И так, мы рассмотрели работу метода LogEvent класса WScript.Shell, который позволяет довольно быстро записывать в журнал событий Windows нужные сообщения и определять тип их назначения.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий