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

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

Для работы с WMI необходимо в первую очередь подключиться к этой службе. Это можно сделать двумя различными способами.
  • с использованием объекта SWbemLocator
  • с помощью WMI-моникера (WMI moniker) "WinMgmts:"
Рассмотрим первый способ:
получаем объект swbemLocator:

Dim oLocator Set oLocator = CreateObject("wbemScripting.Swbemlocator")


У объекта SwbemLocator есть один метод - ConnectServer() он вызывается для подключения к службе WMI на локальном или удаленном компьютере.

strComputer = "."; UserName = ""; Password = ""; SWBemlocator = new ActiveXObject("WbemScripting.SWbemLocator"); SwbemServices = SWBemlocator.ConnectServer(strComputer, "root/CIMV2",UserName,Password);


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

Второй способ подключения к WMI, который несколько более распространен — использование моникера.
Моникер (moniker) — это специальная строка определённой структуры, которая определяет подключение.
Отличительный его признак - он всегда начинается с подстроки "winmgmts:". Все остальные параметры являются необязательными. Так что самый короткий моникер так и выглядит:

Set objWMIService = GetObject("winmgmts:")


Регистр написания winmgmts роли не играет. В moniker string можно использовать не только прямую наклонную черту, но и обратную. Запись получается более короткая, но, как мне кажется, более сложная для восприятия. Большинство примеров как здесь, так и на сайте Microsoft используют именно этот метод.
Два следующих параметра являются необязательными.
Первый параметр - уровень безопасности WMI соединения. Можно определить несколько различных уровней безопасности WMI-соединения.
Второй необязательный параметр - путь к объекту WMI. Он сам может состоять из нескольких частей:
  • удаленный компьютер
  • пространство имен WMI
  • класс CIM (Common Information Model) в пространстве имен
  • конкретный экземпляр класса CIM
Если сетевое имя компьютера не указано или вместо него стоит точка, то подключение будет происходить к локальному компьютеру.

Если целевое пространство имен опущено, то WMI обращается к принимаемому по умолчанию пространству имен, которое указано в подразделе
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting\Default Namespace
При стандартной установке Windows по умолчанию назначено пространство имен root\cimv2. Изменить это значение можно на закладке Advanced оснастки WMI Control консоли Microsoft Management Console (MMC).


Пространства имен
 

Описание
 
Cimv2хранит классы Win32.
Defaultхранит системные классы.
Securityхранит классы безопасности WMI.


strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")


В приведенном примере strComputer - сетевое имя компьютера, в котором мы хотим получить доступ к объекту WMI.

В следующем примере подключение идет непосредственно к классу пространства имен.

Dim colItems strComputer = "." strNS = "Root\CIMV2" 'имя пространства имён strClass = "Win32_NetworkAdapterConfiguration" 'имя класса Set colItems = GetObject("winmgmts:\\" & _ strComputer & "\" & strNS & ":" & strClass)


Обратите внимание, что перед указанием класса стоит двоеточие (":").

И несколько замечаний:
  • Подключаться к службе WMI на локальном компьютере можно только от имени и с полномочиями текущего пользователя. Подключение к локальному компьютеру от имени другого пользователя невозможно. Поэтому, если подключение к WMI идет на локальном компьютере, то имя и пароль лучше не указывать.
  • Если необходимо указать имя пользователя и пароль, то WMI-моникер применять нельзя. Вместо него следует использовать объект SWbemLocator






Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуетс¤ регистраци¤).









  own counter Valid XHTML 1.0 Strict Valid CSS

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2024  Бронислав Краснер