Создание клиентов WMI

Инструментарий WMI предоставляет стандартизированную инфраструктуру управления системой, которую можно использовать с помощью нескольких различных клиентов. эти клиенты находятся в диапазоне от wmic.exe программы командной строки до System Center Operations Manager. вы можете создавать собственные клиенты wmi с помощью api сценариев wmi, собственного api C++ или с помощью типов в пространстве имен библиотеки классов System. Management платформа .NET Framework.

Создание клиента WMI

Основные функциональные возможности WMI состоят из извлечения объектов из репозитория WMI и изучения свойств этих объектов. Можно также обновить эти свойства или вызвать методы для этих свойств. В следующих примерах показано, как выполнить базовую задачу администрирования WMI: получение имени локального компьютера.

Термин Описание
Создание клиента с помощью PowerShell
WMI и PowerShell тесно интегрированы; Таким образом, получение объектов WMI с помощью PowerShell — это просто вопрос вызова командлета Get-WmiObject. Обратите внимание, что для обеспечения согласованности в первом фрагменте кода явно указано множество значений по умолчанию. во втором предполагается, что значения по умолчанию верны.

PowerShell
#explicitly states many of the default parameters
$myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem"
foreach ($computer in $myComputer)
{ "System Name: " + $computer.name }

#assumes the default values are correct Get-WmiObject Win32_ComputerSystem | Format-Table "Name"

Создание клиента с помощью VBScript

VBScript был исходным языком сценариев, который часто использовался в WMI. Хотя PowerShell стал более популярным, многие из существующих примеров кода в этой документации написаны на языке VBScript. Обратите внимание, что в этом образце VBScript явным образом указывается как путь к локальному компьютеру, так и уровень олицетворения. Это не является обязательным, но часто рекомендуется.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
    Wscript.Echo "Computer Name: " & objItem.Name
Next

Создание клиента с помощью C# (Microsoft. Management. Infrastructure)

это пространство имен содержит текущее решение для доступа к инструментарию WMI с управляемым кодом и называется инфраструктурой управления Windows (MI или wmi). В настоящее время MI — это поддерживаемая технология для создания управляемых клиентов управления. Дополнительные сведения см. в разделе Реализация управляемого клиента MI и реализация собственного клиента MI.

C#
using Microsoft.Management.Infrastructure;
...
CimSession session = CimSession.Create("localHost");
IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

Создание клиента с помощью C# (System. Management)

Это пространство имен содержит исходное решение для доступа к инструментарию WMI с управляемым кодом. Хотя классы System. Management по-прежнему доступны, классы Microsoft. Management. Infrastructure , как правило, более эффективны и масштабируются лучше. Поэтому рекомендуется использовать классы MI, а не исходные классы WMI.

C#
using Microsoft.Management.Infrastructure;
...
CimSession session = CimSession.Create("localHost");
IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

В следующей таблице приводится список подразделов этого раздела.

Раздел Описание
Подключение к инструментарию WMI на удаленном компьютере Описывает ряд проблем, возникающих, когда клиенты используют инфраструктуру WMI на удаленном компьютере.
Задачи WMI для скриптов и приложений Показывает пример кода клиента WMI.
Создание приложения или скрипта WMI Содержит сведения о создании различных клиентов WMI.
Мониторинг данных производительности Описывает использование инструментария WMI для мониторинга данных производительности.
Получение события WMI Описывает, как просматривать события WMI.
Мониторинг событий Описывает, как отслеживать события WMI.
Запросы с помощью WQL Вводит язык запросов WMI (WQL).
Запрос состояния дополнительных функций в Windows 7 инструментарий WMI реализовал класс Win32 _ оптионалфеатуре . Этот класс получает состояние дополнительных компонентов, имеющихся на компьютере.
Описание расположения объекта WMI Основное внимание уделяется синтаксису, описывающему расположение управляемого объекта WMI.
Доступ к другим функциям операционной системы с помощью инструментария WMI Описание процесса записи клиентов WMI, обращающихся к драйверам устройств, Active Directory и SNMP-устройствам.
Доступ к данным в пространстве имен Interop поставщики ассоциаций позволяют клиентам инструментарий управления Windows (WMI) (WMI) просматривать и получать профили и связанные экземпляры классов из разных пространств имен.
Управление сведениями о классе и экземпляре Описывает общие задачи, которые должны выполняться клиентами WMI.
Совместное связывание классов Обсуждается поставщик представления и его использование для объединения информации из нескольких классов WMI.
Изменение системного реестра Описывает, как клиенты WMI могут использовать инструментарий WMI для управления данными системного реестра.