stringtranslate.com

Инструментарий управления Windows

Инструментарий управления Windows ( WMI ) состоит из набора расширений модели драйверов Windows , которые обеспечивают интерфейс операционной системы, через который инструментированные компоненты предоставляют информацию и уведомления. WMI — это реализация Microsoft стандартов веб-управления предприятием (WBEM) и общей информационной модели (CIM), разработанных Рабочей группой по распределенному управлению (DMTF).

WMI позволяет языкам сценариев (таким как VBScript или Windows PowerShell ) управлять персональными компьютерами и серверами Microsoft Windows как локально, так и удаленно. WMI предустановлен в Windows 2000 и в операционных системах Windows 11 . Его можно загрузить для Windows NT и [1] от Windows 95 до Windows 98 . [2]

Microsoft также предоставляет интерфейс командной строки для WMI, называемый командной строкой инструмента управления Windows ( WMIC ). [3] Однако WMIC устарел, начиная с Windows 10 версии 21H1 , Windows 11 и Windows Server 2022 . [4]

Цель WMI

Целью WMI является определение собственного набора независимых от среды спецификаций, которые позволяют совместно использовать информацию управления между приложениями управления. WMI предписывает стандарты управления предприятием и связанные технологии для Windows, которые работают с существующими стандартами управления, такими как интерфейс управления рабочим столом (DMI) и SNMP . WMI дополняет эти другие стандарты, предоставляя единую модель. Эта модель представляет собой управляемую среду, через которую можно получить общий доступ к данным управления из любого источника.

Процесс развития

Поскольку WMI абстрагирует управляемые объекты с помощью CIM и набора поставщиков, разработка поставщика предполагает несколько этапов. Основные этапы можно резюмировать следующим образом:

  1. Создайте управляемую модель объекта
    1. Определить модель
    2. Реализуйте модель
  2. Создайте поставщика WMI
    1. Определите тип поставщика для реализации
    2. Определить модель хостинга провайдера
    3. Создайте шаблон поставщика с помощью мастера ATL .
    4. Реализовать логику кода в провайдере
    5. Зарегистрируйте провайдера в WMI и системе.
  3. Проверьте провайдера
  4. Создайте образец потребительского кода.

Важность поставщиков WMI

С момента выпуска первой реализации WMI в эпоху Windows NT 4.0 SP4 (в виде внеполосной загрузки) Microsoft постоянно добавляла поставщиков WMI в Windows:

Многие клиенты [ какие? ] интерпретировали рост числа поставщиков как признак того, что WMI стал в Microsoft «повсеместным» уровнем управления Windows, даже если Microsoft никогда не заявляла об этом явно.

Из-за постоянного увеличения доступа к данным управления через WMI в Windows люди, работающие в области управления ИТ- системами , начали разрабатывать сценарии и процедуры автоматизации на основе WMI. [ нужна ссылка ] Помимо потребностей в написании сценариев, большинство ведущих пакетов программного обеспечения для управления, таких как MOM , SCCM , ADS, HP OpenView for Windows (HPOV), BMC Software и CA, Inc., поддерживают WMI и способны потреблять и предоставлять Информация WMI через различные пользовательские интерфейсы . Это позволяет администраторам и операторам, не способным писать сценарии или программировать поверх WMI, пользоваться преимуществами WMI, даже не изучая его. Однако, если они захотят, поскольку WMI поддерживает сценарии, это дает им возможность использовать информацию WMI из сценариев или из любого программного обеспечения для управления предприятием, поддерживающего WMI .

Функции

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

  1. Интерфейсы автоматизации.
    Поскольку WMI поставляется с набором готовых к использованию интерфейсов автоматизации, все функции управления, поддерживаемые поставщиком WMI и его набором классов, получают бесплатную поддержку сценариев из коробки. Помимо проектирования классов WMI и разработки поставщиков, группам разработки и тестирования Microsoft не требуется создавать, проверять или тестировать модель сценариев, поскольку она уже доступна в WMI.
  2. Интерфейсы управления .NET
    . ПосколькуSystem.Managementпространство имен [7] зависит от существующей инфраструктуры COM / DCOM , созданный поставщик WMI и его набор классов WMI автоматически становятся доступными для всех приложений .NET независимо от используемого языка (например, C# , VB.NET) . ). Помимо проектирования классов WMI и разработки поставщиков, например, для сценариев, группам разработчиков и тестирования Microsoft не требуется создавать, проверять и тестировать новые сборки для поддержки нового пространства имен в .NET Framework, поскольку эта поддержка уже доступна в WMI для бесплатно.
  3. Интерфейсы программирования COM/DCOM на C/C++.
    Как и большинство компонентов Windows, программисты COM / DCOM могут использовать возможности поставщика, который они разрабатывают, на уровне интерфейсов COM/DCOM. Как и в предыдущих средах (сценарии и .NET Framework ), потребителю COM/DCOM просто необходимо взаимодействовать со стандартным набором COM-интерфейсов WMI, чтобы использовать возможности поставщика WMI и его набор поддерживаемых классов WMI. Чтобы сделать всю информацию управления доступной из собственных API, разработчику поставщика WMI достаточно взаимодействовать с набором предопределенных COM-интерфейсов WMI. Это автоматически сделает информацию управления доступной на уровне COM WMI. Более того, объектная модель интерфейса COM сценариев очень похожа на объектную модель интерфейса COM/DCOM, что позволяет разработчикам легко ознакомиться с опытом создания сценариев.
  4. Возможности удаленного взаимодействия через DCOM и SOAP .
    WMI предлагает не просто локальные возможности COM, поскольку управление заключается в удаленном взаимодействии . WMI предлагает транспорт DCOM. Кроме того, транспорт SOAP будет доступен в Windows Server 2003 R2 благодаря инициативе WS-Management, возглавляемой Microsoft , Intel , Sun Microsystems и Dell . Эта инициатива позволяет удаленно запускать любые сценарии или использовать данные WMI через определенный набор интерфейсов, обрабатывающих запросы/ответы SOAP. Преимущество разработчика поставщика WMI заключается в том, что когда он предоставляет все свои функции через WMI, Windows Remote Management /WS-Management, в свою очередь, также может использовать эту информацию (встроенные объекты в экземплярах WMI не поддерживаются в Windows Server 2003 R2. Это возможно). однако цель для Vista). Все уровни WS-Management и сопоставление модели данных CIM с SOAP предоставляются бесплатно из решения WMI/WS-Management. В случае необходимости использования DCOM реализация DCOM требует наличия прокси- библиотеки DLL , развернутой на каждом клиентском компьютере. Поскольку WMI доступен в операционной системе Windows начиная с Windows 2000, эти проблемы устранены.
  5. Поддержка запросов:
    WMI предлагает поддержку запросов WQL [8] «из коробки». Это означает, что если поставщик не предназначен для поддержки запросов, WMI поддерживает это, используя технику перечисления вне поставщика.
  6. Возможности обработки событий:
    WMI предлагает возможность уведомлять подписчика о любом интересующем его событии. WMI использует язык запросов WMI (WQL) для отправки запросов о событиях WQL и определяет тип возвращаемых событий. Механизм обработки событий со всеми связанными с ним обратными вызовами является частью интерфейсов COM/DCOM и автоматизации WMI. Любой, кто напишет поставщика WMI, может бесплатно воспользоваться преимуществами этой функциональности для своих клиентов. Потребитель должен будет решить, как он хочет использовать информацию управления, предоставляемую поставщиком WMI и связанным с ним набором классов WMI.
  7. Генератор шаблонов кода.
    Чтобы ускорить процесс написания поставщика WMI, включая все интерфейсы COM/DCOM и соответствующие определения, группа WMI разработала мастер WMI ATL для создания шаблона кода, реализующего поставщика. Сгенерированный код основан на модели классов WMI, изначально разработанной разработчиком. Разработчик поставщика WMI сможет связать предварительно определенные интерфейсы COM/DCOM для поставщика WMI с его набором собственных API-интерфейсов, получая информацию управления для предоставления. Упражнение заключается в заполнении «пробелов» в коде провайдера для создания желаемой логики интерфейса.
  8. Предсказуемость.
    Предсказуемость является важной проблемой для ИТ-специалистов, поскольку она определяет способность человека, имеющего опыт работы с набором интерфейсов, управляющих компонентом Windows, сразу же, интуитивно, применить эти знания к любому другому управляемому компоненту Windows, не изучая все заново с нуля. вверх. Предсказуемость для клиента является реальным преимуществом, поскольку она увеличивает возврат инвестиций ( ROI ). Человек, оказавшийся в такой ситуации, просто ожидает, что все будет работать так же, исходя из своего предыдущего опыта. Постоянное увеличение числа интерфейсов программирования/скриптов COM оказывает огромное влияние на предсказуемость, поскольку это затрудняет для клиентов автоматизацию, управление Windows и использование существующих знаний. WMI с CIM решают эту проблему, всегда предоставляя одну и ту же объектную модель программирования (COM/DCOM, Automation, .NET), независимо от управляемого объекта.
  9. Защитите существующие инвестиции клиентов.
    Защита инвестиций клиентов и партнеров мотивирует клиентов инвестировать в технологии. Поскольку в последние годы Microsoft действительно много инвестировала в создание поставщиков WMI, клиенты и партнеры инвестировали в инструменты, использующие возможности Windows WMI. Поэтому они, естественно, продолжают использовать эти возможности вместо того, чтобы использовать новый набор конкретных интерфейсов для каждого управляемого компонента Windows. Конкретный набор интерфейсов означает наличие определенного набора агентов или программного обеспечения собственной разработки на основе новой модели или набора интерфейсов, специально предназначенных для компонента или технологии. Используя возможности WMI сегодня, клиенты и партнеры могут эффективно использовать вложения в работу, сделанные в прошлом, одновременно минимизируя свои затраты на разработки, обучение и новые открытия. Это также окажет большое влияние на стабильность и надежность их инфраструктуры, поскольку они продолжат использовать существующую реализацию с улучшенной технологией.
  10. Обеспечьте логическую и унифицированную модель администрирования.
    Как кратко описано ранее во введении, эта модель основана на отраслевом стандарте CIM, определенном DMTF (https://www.dmtf.org/). Схема на основе классов CIM определяется консорциумом конструкторов и разработчиков программного обеспечения, отвечающим требованиям отрасли. Это означает, что не только Microsoft использует возможности WMI, но и любые другие сторонние конструкторы или разработчики пишут свой собственный код, соответствующий модели. Например, Intel делает это для некоторых своих сетевых драйверов и программного обеспечения. HP использует существующих поставщиков WMI и внедряет собственных поставщиков WMI в свое программное обеспечение HP Open View Enterprise Management . IBM использует WMI из пакета управления Tivoli , MOM и SMS также используют и предоставляют информацию WMI. Наконец, Windows XP SP2 использует WMI для получения информации о состоянии от антивирусного программного обеспечения и брандмауэров.

Инструменты WMI

Некоторые инструменты WMI также могут быть полезны на этапах проектирования и разработки. Эти инструменты:

Пример беспроводной сети

В .NET Framework класс ManagementClass представляет класс управления общей информационной модели (CIM). Класс WMI может быть Win32_LogicalDiskв случае дискового накопителя или Win32_Process, например, запущенной программы, например Notepad.exe.

В этом примере показано, как MSNdis_80211_ServiceSetIdentifierкласс WMI используется для поиска SSID сети Wi-Fi , к которой в данный момент подключена система, на языке C#:

ManagementClass mc = новый ManagementClass ( «root\\WMI» , «MSNdis_80211_ServiceSetIdentifier» , null ); Коллекция ManagementObject moc = mc . Получитьэкземпляры ();         foreach ( ManagementObject mo in moc ) { строка wlanCard = ( строка ) mo [ "InstanceName" ]; логический активен ; if ( ! bool . TryParse (( string ) mo [ "Active" ], out active )) { active = false ; } byte [] ssid = ( byte []) mo [ "Ndis80211SsId" ]; }                       

Класс MSNdis_80211_ServiceSetIdentifierWMI поддерживается только в Windows XP и Windows Server 2003.

Расширения драйвера WMI

Расширения WMI для WDM предоставляют инструменты на уровне ядра , такие как публикация информации, настройка параметров устройства, предоставление уведомлений о событиях из драйверов устройств и позволяют администраторам устанавливать безопасность данных через поставщика WMI, известного как поставщик WDM . Расширения являются частью архитектуры WDM; однако они имеют широкую полезность и могут использоваться и с другими типами драйверов (такими как SCSI и NDIS ). Служба расширений драйверов WMI отслеживает все драйверы и поставщики трассировки событий, настроенные на публикацию информации WMI или трассировки событий. Данные инструментированного оборудования предоставляются посредством драйверов, предназначенных для расширений WMI для WDM. Расширения WMI для WDM предоставляют набор интерфейсов драйверов устройств Windows для инструментирования данных в моделях драйверов, встроенных в Windows, поэтому OEM-производители и IHV могут легко расширить набор инструментальных данных и повысить ценность аппаратного/программного решения. Однако расширения драйверов WMI не поддерживаются Windows Vista и более поздними операционными системами. [11]

Смотрите также

Рекомендации

  1. ^ «Распространяемый пакет WMI для Windows NT» . microsoft.com . Архивировано из оригинала 24 февраля 2010 года . Проверено 4 мая 2018 г.
  2. ^ «Распространяемый пакет WMI для Windows 95 и Windows 98» . microsoft.com . Архивировано из оригинала 23 апреля 2007 года . Проверено 4 мая 2018 г.
  3. ^ «Описание утилиты командной строки инструментария управления Windows (WMI) (Wmic.exe)» . Архивировано из оригинала 2 мая 2007 г.
  4. ^ «WMIC: утилита командной строки WMI» . Майкрософт. 8 марта 2023 г. Архивировано из оригинала 14 октября 2023 г.
  5. ^ «Управление клиентом Windows Vista» . microsoft.com . Архивировано из оригинала 3 марта 2016 года . Проверено 4 мая 2018 г.
  6. ^ «Поставщики WMI, поддерживаемые в Windows 10» . Майкрософт . 25 июня 2017 года. Архивировано из оригинала 30 сентября 2018 года . Проверено 30 сентября 2018 г.
  7. ^ "Пространство имен System.Management" . msdn2.microsoft.com . Архивировано из оригинала 16 апреля 2008 года . Проверено 4 мая 2018 г.
  8. ^ «Язык запросов WMI (WQL) через PowerShell» . ravichaganti.com . 1 мая 2011 г. Архивировано из оригинала 12 октября 2017 г. . Проверено 4 мая 2018 г.
  9. ^ «Задачи WMI: компьютерное программное обеспечение (Windows)» . msdn2.microsoft.com . Архивировано из оригинала 6 апреля 2008 года . Проверено 4 мая 2018 г.
  10. ^ Д'Вайн, Ронда. «Убунту – Ошибка». packages.ubuntu.com . Архивировано из оригинала 2 мая 2017 года . Проверено 4 мая 2018 г.
  11. ^ «История разработчиков серверов Windows Vista и Windows Longhorn: Поваренная книга совместимости приложений» . msdn2.microsoft.com . Архивировано из оригинала 21 апреля 2008 года . Проверено 4 мая 2018 г.

Внешние ссылки