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


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

MsgBox TypeName(oServices)



 

Подключиться к конкретному объекту WMI, например, службе SQL Server, можно с помощью метода ExecQuery объекта SwbemServices, который выполняет запросна языке WQL, например:

Dim oCollection

Set oCollection = oServices.ExecQuery("select * from SQLService")

For Each item In oCollection

MsgBox item.ServiceName

Next

WQL (WMI Query Language или SQL for WMI) - это язык, основанный на языке SQL, и позиционируемый Microsoft как ANSI-совместимый.

В WQL предусмотрено три типа запросов:

1. запросы к данным;

2. запросы к событиям;

3. запросы к структуре WMI.

 

Общий вариант синтаксиса запроса WQL выглядит так:

SELECT свойства FROM имя_класса WHERE свойство оператор значение

Например:

SELECT ServiceName, DisplayName FROM SQLService WHERE SQLServiceType='1'

-- только объекты SQL Server

В результате выполнения запроса нам вернется коллекция SWbemObjectSet с объектами SWbemObject.

Объект SwbemObject:

SWbemObject — это не сам нижележащий объект WMI (то есть не служба SQL Server в нашем примере), а всего лишь оболочка, в которую "одет" этот объект. Например, у полученного нами объекта SWbemObject для служб SQL Server (представленных нижележащим объектов SQLService) нет ни свойства ServiceName, ни свойства DisplayName, ни свойства SQLServiceType. Но к этим свойствам можно обращаться, так как все обращения ко всем свойствам и методам, которые не определены для объекта SWbemObect, автоматически переадресовываются к нижележащему объекту. Поэтому, например, такой код будет вполне допустим:

Dim oLocator

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

Dim oServices

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

Dim oCollection

Set oCollection = oServices.ExecQuery("select ServiceName, DisplayName from SQLService where SQLServiceType='1'")

Dim oSWbemObject

For Each oSWbemObject In oCollection

MsgBox oSWbemObject.DisplayName

Next

 

При помощи свойства Properties_ объекта SWbemObject мы можем получить информацию о всех свойствах нижележащего объекта, а при помощи свойства Methods_ — о всех методах (названия всех свойств и методов SWbemObject заканчиваются на подчеркивание).

Получение информации о свойствах и методах объектов WMI:

Система WMI самодокументируема — т.е., информацию о всех свойствах и методах объектах WMI можно получить не при помощи просмотрщика объектов, а непосредственно из кода скрипта.

Например, чтобы получить информацию о всех свойствах объекта WMI, можно использовать код вида