Создание клиентов 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 много параметров по умолчанию $myComputer = Get-WmiObject -ComputerName ." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer в $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 или WMIv2). В настоящее время mi — это поддерживаемая технология для создания клиентов управляемого управления. Дополнительные сведения см. в разделах How to Implement a Managed MI Client и How to Implement a Native MI Client.

C#
использование Microsoft.Management.Infrastructure; ... Сеанс CimSession = 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#
использование Microsoft.Management.Infrastructure; ... Сеанс CimSession = 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_OptionalFeature . Этот класс извлекает состояние дополнительных компонентов, присутствующих на компьютере.
Описание расположения объекта WMI Основное внимание уделяется синтаксису для описания расположения управляемой сущности WMI.
Доступ к другим функциям операционной системы с помощью инструментария WMI Описывает, как создавать клиенты WMI, которые обращаются к драйверам устройств, Active Directory и SNMP-устройствам.
Доступ к данным в пространстве имен взаимодействия Поставщики связей позволяют клиентам инструментария управления Windows (WMI) просматривать и извлекать профили и связанные экземпляры классов из разных пространств имен.
Управление сведениями о классе и экземпляре Описание распространенных задач, которые должны выполнять клиенты WMI.
Связывание классов Обсуждается поставщик представлений и его использование для объединения сведений из нескольких классов WMI.
Изменение системного реестра Описывает, как клиенты WMI могут использовать WMI для управления сведениями системного реестра.