Объект 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
'*****************************************
 
'Включаем проверку переменных
Option Explicit
 
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 нужные сообщения и определять тип их назначения.

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