Поделиться через


Создание клиентов 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 in $myComputer) { "Имя системы: " + $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 является поддерживаемой технологией для создания управляемых клиентов администрирования. Дополнительные сведения см. в разделах Как реализовать управляемого клиента MI и Как реализовать собственного клиента MI.

C#
              
              с использованием 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#
              
              с помощью 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-устройствам.
Доступ к данным в пространстве имен Interop Поставщики ассоциаций позволяют клиентам инструментария управления Windows (WMI) обходить и извлекать профили и связанные экземпляры классов из различных пространств имен.
манипулирование сведениями о классах и экземплярах Описывает распространенные задачи, которые должны выполнять клиенты WMI.
связывание классов Описывается провайдер представлений и как можно использовать его для объединения информации из нескольких классов WMI.
Изменение системного реестра Описывает, как клиенты WMI могут использовать WMI для управления сведениями о системных реестрах.