Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

For Each item In oSWbemObject.Properties_





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

WScript.Echo item.Name & vbTab & item.Value

Next

а для получения информации о методах:

For Each item In oSWbemObject.Methods_

WScript.Echo item.Name

Next

В первом случае свойство Properties_ возвращает стандартную коллекцию SwbemPropertySet, состоящую из объектов SWbemProperty. Важнейшие свойства SWbemProperty таковы:

· Value — значение реального свойства. Это свойство используется по умолчанию;

· Name — имя данного свойства;

· IsArray — работает ли это свойство с массивом значений или нет;

· Qualifiers — позволяет спуститься на уровень ниже и получить ссылку на коллекцию SWbemQualifierSet, коллекцию допустимых значений для этого свойства (если для него такой набор предусмотрен).

Для методов все устроено точно также: свойство Methods_ возвращает коллекцию SWbemMethodSet, состоящую из объектов SWbemMethod.

Работа с событиями в WMI

В WMI предусмотрено понятие получателя события. Получатель события — это программа, которая получит информацию от службы WMI о том, что событие наступило.

Получатель события может быть:

· Постоянным. Информация о постоянном получателе записывается в репозитарий WMI, и когда наступает событие, для которого зарегистрирован этот получатель, служба WMI проверяет, запущен получатель или нет. Если запущен, то ему передается информация о событии, а если нет — служба WMI автоматически запускает получателя (то есть соответствующую программу).

· Временным. Временным получателем может быть любая программа, которая подключилась к службе WMI и выполнила специальный событийный запрос при помощи метода ExecNotificationQuery() объекта SWbemServices. Пример скрипта, который будет реагировать на любые изменения для служб SQL Server, может выглядеть так:

Dim oLocator

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

Dim oServices

Set oServices = oLocator.ConnectServer("LONDON", "root\Microsoft\SqlServer\ComputerManagement")

Dim oEventSource

Set oEventSource = oServices.ExecNotificationQuery _

("SELECT * FROM __InstanceModificationEvent " & _

"WITHIN 10 WHERE TargetInstance ISA 'SqlService'")

i = 0

Do While i = 0

Set oWbemObject = oEventSource.NextEvent

MsgBox oWbemObject.TargetInstance.ServiceName & vbTab & oWbemObject.TargetInstance.State

Loop

Если вы, к примеру, остановите или запустите службу SQL Server или SQL Server Agent, этот скрипт автоматически выведет соответствующее сообщение.

 

Событийный запрос в нашем случае выглядит так:

"SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'SqlService'"

 

Здесь:

· __InstanceModificationEvent (обратите внимание на два подчеркивания в начале) — одно из девяти событий, на которые можно настроить реакцию:

o __ClassCreationEvent, __ClassDeletionEvent, __ClassModificationEvent — соответственно, создание, удаление и изменение класса;

o __InstanceCreationEvent, __InstanceDeletionEvent, __InstanceModificationEvent — создание, удаление и изменение объекта;

o __NamespaceCreationEvent, __NamespaceDeletionEvent, __NamespaceModificationEvent — то же самое для пространства имен (используется редко).

· WITHIN 10 – оператор, определяющий, что опрос службы WMI будет производиться каждые 10 секунд (чтобы не расходовать лишние системные ресурсы). К этому оператору можно добавлять выражение GROUP BY: сгруппированные по какому-то признаку события за период рассматриваются как одно событие и HAVING — порог на количество событий. Если количество событий ниже этого порога, то событие считается не наступившим.

Полный синтаксис запроса с использованием всех этих операторов может выглядеть, например, так:

SELECT * FROM __InstanceModificationEvent _

WITHIN 10 WHERE TargetInstance ISA 'SQLService' _

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.