Приложение для инвентаризации рабочих станций ЛВС
Рефераты >> Коммуникации и связь >> Приложение для инвентаризации рабочих станций ЛВС

6.7.2 Квалификаторы свойств

Квалификаторы свойств позволяют определить тип данного свойства (ква­лификатор CIMType), доступность его для чтения (квалификатор Read) и за­писи (квалификатор write) и т. п. С помощью метода Put_ () можно изменять значения только тех свойств, у которых имеется квалификатор write со значением true.

6.7.3 Квалификаторы методов

Квалификаторы методов могут описывать множество допустимых значений, которые будут возвращаться методом (квалификатор ValueMap), указывать права, которыми необходимо обладать для вызова метода (квалификатор Privileges) и т. д.

Выполнять можно только те методы, у которых имеется квалификатор Implemented со значением True.

6.8 События WMI

Одной из наиболее мощных возможностей WMI является так называемая подписка на извещения о событиях WMI, т. е. создание собственных обработ­чиков определенных событий WMI. При этом под событием WMI понима­ется какое-либо изменение в состоянии логического или физического ком­понента информационной системы, доступ к которому может быть получен с помощью WMI. Приведем несколько простых примеров событий WMI:

- снижение объема свободного дискового пространства на сервере до задан­ного значения. Вместо того, чтобы постоянно проверять заполненность жесткого диска на файловом сервере, можно установить подписку на из­вещение о событии WMI, которое произойдет, скажем, при уменьшении свободного пространства до 10% от общего объема диска. При этом можно, например, автоматически отправить администратору соответст­вующее сообщение по электронной почте или запустить определенный сценарий WMI для архивирования информации;

- появление в журнале событий определенного сообщения. В целях повыше­ния безопасности администратор может зарегистрировать событие, которое будет происходить при занесении в журнал событий записи о неудачной регистрации пользователя. Реакцией на такое событие может служить от­сылка сообщения по электронной почте администратору, что позволит оперативно предотвращать попытки несанкционированного доступа;

- запуск или завершение работы определенного приложения. Если на серве­ре выполняется какое-то важное приложение, то может потребоваться статистика о его работе. Зарегистрировав соответствующее событие WMI, можно автоматически записывать в текстовый файл или в журнал опера­ций информацию о том, когда и кем приложение было запущено или ос­тановлено. Используя же в качестве обработчика этих событий сценарий WMI, можно производить запись статистической информации в таблицы базы данных или в электронную таблицу Microsoft Excel.

Таким образом, мы видим, что механизм событий позволяет оперативно информировать администратора о различных проблемах (в том числе потенциальных) и автоматически выполнять определенные действия для решения этих проблем.

Роль WMI состоит в организации взаимодействия между провайдерами со­бытий (event providers), которые формируют извещения о наступлении оп­ределенного события, и зарегистрированными подписчиками на эти изве­щения (регистрируются подписчики, которые являются потребителями событий (event consumers), также с помощью WMI).

События WMI разделяются на три типа (внутренние, внешние и события таймера), каждому из которых в репозитории CIM соответствует определен­ный класс-потомок абстрактного класса Event. Внешние события представ­лены классом ExtrinsicEvent, события таймера — классом TimerEvent, а внутренние — тремя разными классами ( NamespaceOperationEvent, ClassOperationEvent и InstanceOperationEvent). На рисунке 6.4 показана иерархия классов, соответствующих событиям WMI, для пространства имен CIMV2.

При наступлении какого-либо события WMI автоматически создает экземп­ляр того класса, которому соответствует это событие.

6.8.1 Внутренние события

Внутренние события позволяют контролировать изменения в состоянии тех управляемых ресурсов, которые представлены отдельным классом WMI и хранятся в CIM, а также изменения в структуре самого репозитория CIM — можно получать извещения о создании, изменении и удалении экземпляров классов, а также самих классов и пространств имен.

Рисунок6.4 - Классы, соответствующие

событиям WMI

Для администратора операционной системы наибольший практический ин­терес представляет, конечно, обработка событий, которые связаны с управ­ляемыми ресурсами (таким событиям соответствуют классы, которые поро­ждены от класса InstanceOperationEvent):

- создание нового экземпляра определенного класса (класс InstanceCreationEvent);

- модификация существующего экземпляра класса (класс InstanceModificationEvent);

- удаление экземпляра класса (класс InstanceDeletionEvent).

Для подписки на извещения о наступлении внутреннего события применя­ются запросы специального вида на языке WQL. Мы не будем подробно рассматривать синтаксис таких запросов, а лишь приведем два простых примера.

Скажем, для того чтобы получить в сценарии WSH извещение о запуске нового экземпляра Блокнота (notepad.exe), нужно с помощью метода ExecNotificationQuery класса SWbemServices выполнить следующий оператор WQL:

SELECT * FROM InstanceCreationEvent WITHIN 2 WHERE Targetlnstance

ISA 'Win32_Process' AND Targetlnstance.Name='notepad.exe'

Для обработки события, связанного с закрытием Блокнота, можно приме­нить такой оператор:

SELECT * FROM InstanceDeletionEvent WITHIN 2 WHERE Targetlnstance ISA 'Win32_Process' AND Targetlnstance.Name='notepad.exe'

6.8.2 Внешние события

Если возникает необходимость контроля состояния какого-либо объекта, для которого в CIM не предусмотрено отдельного класса, то используются внешние события. Пример такого внешнего события — изменение значения определенного ключа в реестре (в репозитории CIM нет отдельного класса, соответствующего ключу в реестре, поэтому событие является внешним).

Для создания внешнего события, в отличие от внутреннего, необходимо, чтобы данное событие поддерживалось соответствующим провайдером WMI. В провайдере должен быть объявлен класс, который являлся бы по­томком класса ExtrinsicEvent и описывал нужное событие. Например, в провайдере системного реестра определен объект RegistryKeyChangeEvent, с помощью которого происходит оповещение потребителей событий об из­менениях, которые происходят с ключом реестра. Для подписки на извеще­ния о внешнем событии из сценария WSH нужно с помощью метода Exec-NotificationQueryAsync класса SWbemServices выполнить асинхронный WQL-запрос специального вида. Например, для того чтобы следить за изме­нениями ключа Software\\Microsoft\Windows Script Host\TrustPolicy, с помо­щью которого можно задавать политику безопасности при работе с WSH, используется такой WQL-запрос:

SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND

KeyPath='Software\\Microsoft\\Windows Script HostWTrustPolicy'

6.8.3 Событиятаймера


Страница: