Pull to refresh

WMI что это такое и с чего начать?

Reading time2 min
Views55K
Для начала что такое WMI (Windows Management Instrumentation)? Это технология, которая с помощью единого интерфейса позволяет управлять компонентами как локальной, так и удаленной операционной системы.
Данный материал рассчитан на тех, кто что-то слышал о WMI, но не знает с чего начать его «ковырять». А так же на тех, кто и не подозревал о существовании такого удобного инструмента.



Я не буду рассказывать о том, как работает, как устроена данная технология, если возникнет интерес — информацию всегда можно найти в MSDN. Моя цель — помочь обеспечить быстрый старт, для тех, кто хочет начать использовать данную технологию.

Что дает применение WMI на практике? Возможность изменять различные параметры операционной системы, управлять общими ресурсами, запрашивать информацию об установленных устройствах, запущенных процессах и т.д.

Кому может пригодиться WMI? Я думаю всем. Вы можете использовать возможности WMI не только из Ваших программ на C#, C++ и других языках программирования, но и создавать собственные скрипты, автоматизирующие процесс сбора информации, изменения конфигурации локальной или удаленной машины.

Для быстрого ознакомления с возможностями WMI можно скачать утилиту WMI Code Creator (размер 122 KB, в архиве сама утилита и исходник на C#) с сайта компании Microsoft. Данная утилита позволяет просматривать пространства имен WMI, классы каждого пространства имен, свойства и методы каждого класса. Плюс она генерирует C#, Visual Basic .NET, Visual Basic Script код.



Чтобы долго не занудствовать я приведу пример получения информации об установленном процессоре. В списке Namespaces (пространство имен) выбираем root\CIMV2, в списке Classes (классы) выбираем Win32_Processor. В списке Results (в нем перечислены свойства класса) выбираем Name и нажимаем Execute Code. В появившемся окне видим название (или названия) установленного процессора.



Другой пример — выведем список расшаренных ресурсов. В этот раз выберем класс Win32_Share, в списке свойств выберем Name затем Execute Code. Получили список ресурсов.



Давайте теперь закроем доступ к какому-нибудь ресурсу, в моем случае это Temp. Переходим на закладку Execute a Method в списке классов выбираем все тот же Win32_Share, в списке Methods (методы класса) выбираем Delete, выбираем папку Temp, Execute Code, если все прошло успешно, то папка Temp более не числится в списке общих ресурсов.



Если Вам не хватает возможностей WMI — Вы всегда можете создать собственный класс. Пример создания такого класса уже публиковался на Хабре.

На этом все, желаю удачи в освоении и применении данной технологии.
Tags:
Hubs:
Total votes 14: ↑12 and ↓2+10
Comments1

Articles