stringtranslate.com

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

Инструментарий управления Windows ( WMI ) состоит из набора расширений для модели драйверов Windows , которая обеспечивает интерфейс операционной системы , через который инструментированные компоненты предоставляют информацию и уведомления. WMI — это реализация Microsoft стандартов Web-Based Enterprise Management (WBEM) и Common Information Model (CIM) из Distributed Management Task Force (DMTF).

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

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

Цель WMI

Целью WMI является определение собственного набора независимых от среды спецификаций, которые позволяют обмениваться информацией управления между приложениями управления. WMI предписывает стандарты управления предприятием и связанные с ними технологии для Windows, которые работают с существующими стандартами управления, такими как Desktop Management Interface (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 для 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. Интерфейсы программирования C/C++ COM/DCOM:
    Как и большинство компонентов в Windows, программисты COM / DCOM могут использовать возможности поставщика, которые они разрабатывают на уровне интерфейсов COM/DCOM. Как и в предыдущих средах (скриптинг и .NET Framework ), потребителю COM/DCOM просто нужно взаимодействовать со стандартным набором интерфейсов WMI COM, чтобы использовать возможности поставщика WMI и его набор поддерживаемых классов WMI. Чтобы сделать всю информацию управления доступной из собственных API, разработчику поставщика WMI просто нужно взаимодействовать с набором предопределенных интерфейсов WMI COM. Это автоматически сделает информацию управления доступной на уровне WMI COM. Более того, объектная модель интерфейса сценариев COM очень похожа на объектную модель интерфейса COM/DCOM, что позволяет разработчикам легко ознакомиться с опытом написания сценариев.
  4. Возможности удаленного взаимодействия через DCOM и SOAP :
    WMI предлагает не просто локальные возможности COM, поскольку управление заключается в удаленном взаимодействии , а транспорт DCOM. Кроме того, транспорт SOAP будет доступен в Windows Server 2003 R2 через инициативу WS-Management, возглавляемую Microsoft , Intel , Sun Microsystems и Dell . Эта инициатива позволяет запускать любые сценарии удаленно или потреблять данные WMI через определенный набор интерфейсов, обрабатывающих запросы/ответы SOAP. Преимущество для разработчика поставщика WMI заключается в том, что когда он предоставляет все свои функции через WMI, удаленное управление Windows / 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 и определяет тип событий, которые должны быть возвращены. Механизм событий со всеми связанными обратными вызовами является частью интерфейсов WMI COM/DCOM и автоматизации. Любой, кто пишет поставщика WMI, может получить выгоду от этой функциональности бесплатно для своих клиентов. Потребитель должен решить, как он хочет использовать информацию управления, предоставляемую поставщиком WMI и его связанным набором классов WMI.
  7. Генератор шаблонов кода:
    Чтобы ускорить процесс написания поставщика WMI, включая все интерфейсы COM/DCOM и связанные определения, команда WMI разработала WMI ATL Wizard для генерации шаблона кода, реализующего поставщика. Сгенерированный код основан на модели классов WMI, изначально разработанной разработчиком. Разработчик поставщика WMI сможет связать предопределенные интерфейсы COM/DCOM для поставщика WMI с его набором собственных API, извлекая информацию управления для раскрытия. Упражнение состоит в заполнении «пробелов» в коде поставщика для создания желаемой логики сопряжения.
  8. Предсказуемость:
    Предсказуемость является важным вопросом для ИТ-специалистов, поскольку она определяет способность человека, имеющего опыт работы с набором интерфейсов, управляющих компонентом Windows, применять эти знания сразу, интуитивно, к любому другому управляемому компоненту Windows, не изучая все с нуля. Предсказуемость для клиента является реальным приобретением, поскольку она увеличивает возврат инвестиций ( ROI ). Человек, сталкивающийся с такой ситуацией, просто ожидает, что все будет работать так же, основываясь на своем предыдущем опыте. Постоянное увеличение интерфейсов программирования/скриптов COM оказывает огромное влияние на предсказуемость, поскольку это затрудняет для клиентов автоматизацию, управление Windows и использование их существующих знаний. WMI с CIM решают эту проблему, всегда предоставляя одну и ту же модель объектов программирования (COM/DCOM, Automation, .NET), независимо от управляемой сущности.
  9. Защита существующих инвестиций клиентов:
    Защита инвестиций клиентов и партнеров мотивирует клиентов инвестировать в технологии. Поскольку Microsoft в последние годы много инвестировала в написание поставщиков WMI, клиенты и партнеры инвестировали в инструменты, использующие возможности WMI Windows. Поэтому они, естественно, продолжают использовать эти возможности вместо того, чтобы использовать новый набор определенных интерфейсов для каждого управляемого компонента 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 представляет класс управления Common Information Model (CIM). Класс WMI может быть Win32_LogicalDiskв случае дискового накопителя или , Win32_Processнапример, запущенной программой вроде Notepad.exe.

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

ManagementClass mc = new ManagementClass ( "root\\WMI" , "MSNdis_80211_ServiceSetIdentifier" , null ) ; ManagementObjectCollection moc = mc.GetInstances ( );         foreach ( ManagementObject mo in moc ) { string wlanCard = ( string ) mo [ "InstanceName" ]; bool active ; 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 Driver Extensions отслеживает все драйверы и поставщиков трассировки событий, настроенных на публикацию информации WMI или трассировки событий. Инструментированные данные об оборудовании предоставляются посредством драйверов, инструментированных для расширений WMI для WDM. Расширения WMI для WDM предлагают набор интерфейсов драйверов устройств Windows для инструментирования данных в моделях драйверов, родных для Windows, поэтому OEM-производители и IHV могут легко расширить инструментированный набор данных и добавить ценность аппаратному/программному решению. Однако расширения WMI Driver Extensions не поддерживаются Windows Vista и более поздними операционными системами. [11]

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

Ссылки

  1. ^ "WMI Redistributable for Windows NT". microsoft.com . Архивировано из оригинала 24 февраля 2010 . Получено 4 мая 2018 .
  2. ^ "WMI Redistributable for Windows 95 and Windows 98". microsoft.com . Архивировано из оригинала 23 апреля 2007 г. Получено 4 мая 2018 г.
  3. ^ "Описание утилиты командной строки Windows Management Instrumentation (WMI) (Wmic.exe)". Архивировано из оригинала 2007-05-02.
  4. ^ "WMIC: Утилита командной строки WMI". Microsoft. 8 марта 2023 г. Архивировано из оригинала 14 октября 2023 г.
  5. ^ "Windows Vista Client Manageability". microsoft.com . Архивировано из оригинала 3 марта 2016 г. Получено 4 мая 2018 г.
  6. ^ "Поставщики WMI, поддерживаемые в Windows 10". Microsoft . 25 июня 2017 г. Архивировано из оригинала 30 сентября 2018 г. Получено 30 сентября 2018 г.
  7. ^ "System.Management Namespace". msdn2.microsoft.com . Архивировано из оригинала 16 апреля 2008 г. Получено 4 мая 2018 г.
  8. ^ "Язык запросов WMI (WQL) через PowerShell". ravichaganti.com . 1 мая 2011 г. Архивировано из оригинала 12 октября 2017 г. Получено 4 мая 2018 г.
  9. ^ "WMI Tasks: Computer Software (Windows)". msdn2.microsoft.com . Архивировано из оригинала 6 апреля 2008 г. Получено 4 мая 2018 г.
  10. ^ D'Vine, Rhonda. "Ubuntu – Ошибка". packages.ubuntu.com . Архивировано из оригинала 2 мая 2017 г. . Получено 4 мая 2018 г. .
  11. ^ «История разработчиков Windows Vista и Windows "Longhorn" Server: кулинарная книга по совместимости приложений». msdn2.microsoft.com . Архивировано из оригинала 21 апреля 2008 г. . Получено 4 мая 2018 г. .

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