IT2web

Системному администратору Windows Server

Главная --> WMI --> Утилита WBEMTEST для WMI

Утилита WBEMTEST для WMI

Для того чтобы прямо сейчас посмотреть, какой набор классов определен в репозитории WMI на вашем персональном компьютере, достаточно запустить утилиту wbemtest.exe и установить флажок «Enable All Privileges», как показано на рис. 2.

 

Рисунок 2. Основное окно утилиты WBEMTEST

Далее нажать кнопку «Connect…», в поле пространства имен вписать rootCIMv2, как это показано на рис. 3, и нажать кнопку «Connect».

Рисунок 3. Окно настройки подключения к репозиторию WMI утилиты WBEMTEST

 

Рисунок 4. Основное окно утилиты WBEMTEST после подключения к репозиторию WMI

Затем нажмите кнопку «Enum Classes…», выберите «Recursive», не заполняйте поле суперкласса и нажмите «Ok». В результате вы получите список классов, определенный в вашем репозитории WMI, в пространстве имен CIMv2. Найдите среди всех класс с названием Win32_OperatingSystem (CIM_OperatingSystem), как это показано на рис. 5.

Рисунок 5. Окно результатов запроса со списком всех классов WMI пространства имен CIMv2

Дважды щелкнув курсором мыши по классу Win32_OperatingSystem, посмотреть его свойства. Пример того, как это выглядит, показан на рис. 6.

Рисунок 6. Окно свойств класса Win32_OperatingSystem

Далее нажать кнопку «Instances» и в открывшемся окне дважды щелкнуть курсором мыши по строке в списке экземпляров операционных систем. В открывшемся окне свойств экземпляра операционной системы найти свойство («Property») с названием «Name», как это показано на рис. 7.

Рисунок 7. Окно свойств экземпляра объекта класса Win32_OperatingSystem

И дважды кликнуть по нему курсором мыши. В открывшемся окне редактора свойств, которое, показано на рис. 8, скопировать отображаемое значение в буфер обмена. Оно пригодится нам в дальнейшем.

Рисунок 8. Окно со значением свойства Name экземпляра объекта класса Win32_OperatingSystem

 

Далее закройте все окна, кроме основного окна программы wbemtest. В блокноте отредактируйте строку из буфера обмена следующем образом:

n  Заключите строку в кавычки.

n  До первых кавычек добавьте следующий текст: «Win32_Operating-System.Name=».

n  Замените все одинарные обратные слеши на двойные.

В итоге у вас должна получиться примерно следующая строка (в зависимости от версии ОС и логического диска, куда она установлена):

Win32_OperatingSystem.Name="Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1"

Теперь давайте выполним следующее упражнение с утилитой wbemtest. В уже открытом окне утилиты wbemtest нажмем кнопку «Execute Method…» и в окошко «GetObjectPath» вставим строку, которую мы подготовили в блокноте. В появившемся окне (см. рис. 9) вызова метода экземпляра объекта выберем метод Reboot и нажмем кнопку «Execute!».

Рисунок 9. Окно вызова метода для экземпляра объекта класса Win32_OperatingSystem утилиты WBEMTEST

Поздравляю, вы только что отправили свою операционную систему в перезагрузку, используя WMI. Если вы вдруг получили вместо перезагрузки сообщение об ошибке 0x80041062 «Privilege not held», то это означает, что вы забыли установить опцию «Enable All Privileges» до подключения к репозиторию WMI.

Теперь в довершение следует сказать (пока ваш Windows перезагружается), что при подключении к пространству имен WMI вы можете подключаться не только на локальной машине, но и как следует из обзора WMI к любой удаленной. Главное, обладать на той машине необходимыми правами. Но об этих правах позднее! Для подключения к удаленной машине в окне подключения достаточно в поле Name Space указать строку вида \<computername> ootCIMv2 и указать учетные данные пользователя, обладающего необходимыми правами (например, Administrator). Пример этого показан на рис. 10.

Рисунок 10. Окно подключение к пространству имен WMI с явным указанием имени сервера

Не пробуйте подключаться к локальной машине, на которой запрашиваются объекты и методы WMI (например, на той, на которой сейчас выполняется утилита wbemtest), используя отличные от текущих учетные данные – все равно это у вас не получится. Это специальная защита для повышения локальной безопасности WMI, но о ней мы поговорим позже.