Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

9.4.4. Подключение к службе WMI

Подключение к WMI, объект Swbemlocator, моникер, объект SwbemServices

Первое, что необходимо сделать в скрипте, — подключиться к службе WMI на локальном или удаленном компьютере. Подключение можно выполнять двумя разными способами: при помощи объекта Swbemlocator или при помощи так называемого моникера (moniker — специальный синтаксис для подключения к объектам COM).

Первый способ выглядит так:

1.     Вначале получаем объект SwbemLocator:

Dim oLocator

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

У объекта SwbemLocator есть всего лишь одно свойство и один метод. Свойство security_ используется для получения ссылки на одноименный вложенный объект и для настройки безопасности при подключении (если значения параметров безопасности отличаются от значений, предлагаемых по умолчанию), а метод ConnectServer() вызывается для подключения к службе WMI на локальном или удаленном компьютере. Если вы подключаетесь к службе WMI на локальном компьютере, то воспользоваться правами другого пользователя (отличного от текущего) вам не удастся — таковы ограничения службы DCOM.

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 и т. п.

Второй способ подключения к WMI, который является более стандартным, — использование моникера. Моникер (moniker) — это специальная метка, которая применяется для подключения к COM-объектам. При использовании моникера синтаксис получается более коротким и гибким (хотя, возможно, менее понятным):

Set oServices = _

GetObject("WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement")

А чтобы подключиться с его помощью к объекту, представляющему службы SQL Server, синтаксис может быть таким:

Set oServices = _

GetObject("WinMgmts://LONDON/root/Microsoft/SqlServer/ComputerManagement:SQLService")

Какой же метод выбрать?

Все примеры у Microsoft построены только на использовании моникера, т. к. это проще и гибче. Однако у объекта Swbemlocator есть свои преимущества:

q      только при использовании этого объекта можно подключаться к компьютеру с правами другого пользователя;

q      при использовании этого объекта подсказки по свойствам и методам в средствах работы со скриптами, такими как PrimalScript, остаются, а при использовании моникера сразу пропадают.

Отметим, что подключаться с правами другого пользователя можно только к удаленному компьютеру. Если вы попытаетесь подключиться с новыми правами к службе WMI на локальном компьютере, то возникнет ошибка.

И еще один важный момент. Обратите внимание, что во всех предыдущих примерах использовалось подключение к службе WMI на компьютере в целом, без указания конкретного экземпляра SQL Server. Это характерная особенность поставщиков WMI для работы с SQL Server. Например, при обращении к объектам класса SQLService, представляющим службы SQL Server, вы получите объекты для всех экземпляров SQL Server, которые установлены на этом компьютере. Но если вас интересует только конкретный экземпляр сервера, то при обращении к объектам WMI нужно отфильтровывать требуемые экземпляры SQL Server средствами языка запросов WQL.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru