Подключение к службе WMI
Первое, что необходимо сделать в скрипте – подключиться к службе WMI на локальном или удаленном компьютере. Подключение можно выполнять двумя разными способами: при помощи объекта SwbemLocator или при помощи так называемого моникера.
Первый способ:
1. Получаем объект SwbemLocator:
Dim oLocator
Set oLocator = CreateObject("wbemScripting.Swbemlocator")
У объекта SwbemLocator – одно свойство и один метод.
· Свойство security_ используется для получения ссылки на одноименный вложенный объект и используется для настройки безопасности при подключении (если она отличается от параметров по умолчанию),
· Метод ConnectServer() используется для подключения к службе WMI на локальном или удаленном компьютере.
2. Вызываем метод ConnectServer(), который возвращает нам объект SWbemServices:
Dim oServices
Set oServices = oLocator.ConnectServer("LONDON","root\Microsoft\SqlServer\ComputerManagement")
Здесь, LONDON — это имя сервера, а root\Microsoft\SqlServer\ComputerManagement — пространство имен для поставщика WMI Provider for Configuration Manager.
Чтобы воспользоваться пространством имен для поставщика WMI Provider for Server Events, необходимо измениить последнюю строку:
Set oServices = oLocator.ConnectServer("LONDON","root\Microsoft\SqlServer\ServerEvents")
3. Полученный объект SWbemServices можно использовать для выполнения запросов WQL, получения ссылок на объекты WMI и т.п.
Второй способ.
Моникер — это специальная метка, которая используется для подключения к COM-объектам. При использовании моникера синтаксис получается более коротким и гибким.
Set oServices = GetObject("WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement")
Чтобы подключиться к объекту, представляющему службы SQL Server, синтаксис может быть таким:
Set oServices = GetObject(“WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement:SQLService”)
7.4.5. Язык WQL: подключаемся к объектам WMI
После подключения к службе WMI в нашем распоряжении имеется объект SwbemServices:
Dim oLocator
Set oLocator = CreateObject("wbemScripting.Swbemlocator")
Dim oServices
Set oServices = oLocator.ConnectServer("LONDON", "root\Microsoft\SqlServer\ComputerManagement")
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 выглядит так:
|