Короткий посібник про інструментарій керування Windows (WMI)

Інфраструктура для управлінської інформації та дій в операційних системах Windows називається інструментарієм керування Windows (WMI).

WMI також надає дані керування іншим компонентам операційної системи та продуктам, таким як SCOM (System Center Operations Manager) або Windows Remote Management.

Що таке Windows Management Instrumentation (WMI?)

WMI — це платформа для керування та моніторингу операційної системи та інших програм і служб Microsoft на персональних комп’ютерах, серверах та інших мережевих пристроях.

WMI надає комплексний, масштабований і простий у використанні інтерфейс програмування, який забезпечує програмний доступ до інформації та послуг на керованих Microsoft комп’ютерах та інших мережевих пристроях.

Він використовується для виявлення та моніторингу операційної системи, служб і програм на комп’ютері, а також даних реєстру та файлової системи. Він також використовується для створення та керування сценаріями та програмами, які автоматизують керування та адміністрування комп’ютера.

Він використовує мову програмування WQL (Windows Query Language) для запиту інформації та виконання операцій в операційній системі, комп’ютерах і пристроях.

Це також надає вам доступ до PowerShell, одного з найпотужніших і найгнучкіших інструментів адміністрування для Windows, який можна використовувати для створення сценаріїв автоматизації.

Крім того, WMI дає змогу створювати користувацькі програми, які надають додаткові функції для керування та адміністрування систем і програм Windows.

Користувачі, яким потрібно стежити за станом своїх машин, виконувати базове усунення несправностей і збирати дані про продуктивність, знайдуть WMI у пригоді.

Яке призначення WMI?

WMI корисний у корпоративній мережі Windows, оскільки він спрощує роботу та керування компонентами корпоративної мережі, доставляючи дані іншим продуктам для подальшого покращення та масштабованості.

Загальна мета WMI полягає в тому, щоб забезпечити уніфікований досвід керування всіма аспектами системи Windows, наприклад:

  • Компоненти операційної системи
  • Процеси та потоки
  • Послуги
  • Пристрої
  • Водії
  • Додатки
  • Облікові записи користувачів
  • Налаштування безпеки

Мета винаходу WMI призводить до скорочення витрат і часу на операції та розробки, пов’язані з системами Windows. WMI також дозволяє відстежувати системні події та збирати дані про продуктивність. Ці дані можна використовувати для вирішення проблем або відстеження тенденцій у часі.

WMI найчастіше використовується для автоматизації адміністративної роботи та отримання доступу до даних без безпосередньої роботи з операційною системою. У результаті WMI є фантастичною альтернативою для адміністраторів і розробників програмного забезпечення, яким потрібно автоматизувати трудомісткі процеси.

З ним можливо все, від моніторингу продуктивності системи до отримання даних додатків. Це дозволяє розробникам створювати розумніші та інтелектуальніші додатки, водночас гарантуючи, що ІТ-адміністратори можуть виконувати свої завдання з мінімальними зусиллями.

WMI надає еталонну реалізацію для доступу до системної інформації та є ключовим інструментом для керування та моніторингу систем Windows. Це наріжний камінь для машинного навчання Azure та AzureML, і він використовується для забезпечення широкого спектру продуктів сторонніх розробників.

  Як змінити план живлення в режимі очікування системи в Windows 10

Використання WMI

Інструмент керування Windows (WMI) — це розробка Microsoft Web-Based Enterprise Management (WBEM), галузева ініціатива з розробки стандартизованих технологій для доступу до інформації про корпоративне управління.

WMI представляє системи, програми, мережі, пристрої та інші керовані компоненти за допомогою галузевого стандарту Common Information Model (CIM). Цільова група розподіленого управління (DMTF) створює та підтримує CIM.

Конструкція WMI є універсальною, підтримує широкий спектр функцій адміністрування та управління, а також забезпечує гнучку та розширювану архітектуру, яка дозволяє виробникам створювати нові постачальники WMI для підтримки нових пристроїв, програм та інших досягнень.

Інші способи використання:

  • Комплексне керування операційною системою Windows і мережевими пристроями та службами Microsoft.
  • Його можна використовувати для підключення віддалених комп’ютерів для доступу до даних WMI
  • Виявляє інформацію про систему, наприклад, які програми запущено та які служби налаштовано.
  • Щоб отримати інформацію про специфікації обладнання та виконати такі дії, як вимикання або перезавантаження системи.
  • Запуск програм, запуск, зупинка, налаштування служб і доступ до даних.
  • Розробники програм керування можуть використовувати цей API для створення сценаріїв у Visual Basic або Windows Scripting Host (WSH).

Архітектура WMI

WMI (Windows Management Instrumentation) — це технологія Microsoft, спочатку представлена ​​в Windows 2000. Вона дозволяє програмістам створювати програми керування, які працюють з будь-якою системою, яка підтримує WMI.

Давайте подивимося на архітектуру та термінологію WMI.

Потік архітектури WMI починається з об’єктів: такий компонент, як жорсткий диск, мережева карта, операційна система або служба, є керованим об’єктом (яким можна керувати через WMI). Інфраструктура WMI отримує дані від об’єкта через постачальника. Він надає та отримує повідомлення від WMI і передає їх об’єкту.

Постачальник WMI містить DLL і файл формату керованого об’єкта (MOF), який відстежує події та дані з об’єктів. WMI класифікує постачальників відповідно до функцій, які надає інтерфейс постачальника.

У Windows є багато вбудованих постачальників WMI, зокрема постачальник Active Directory, постачальник даних конфігурації завантаження (BCD), постачальник WMI, постачальник розподіленої файлової системи (DFS), постачальник журналу подій, постачальник Hyper-V WMI, постачальник Win32, постачальник реєстру, і постачальника SNMP.

Інфраструктура WMI є компонентом операційної системи Microsoft Windows, відомою як служба WMI (winmgmt). Ядро WMI і репозиторій WMI є двома частинами інфраструктури WMI.

Репозиторій WMI — це ієрархічне сховище даних, організоване просторами імен WMI, часто відоме як Загальна інформаційна модель (CIM). Служба WMI встановлює ряд просторів імен після запуску системи, включаючи root за замовчуванням, rootcimv2 і кореневу підписку.

Крім того, служба створює стандартний набір визначень класів, який включає системні класи Win32 і WMI. Інші простори імен WMI можуть бути створені додатковими постачальниками WMI, і кожен простір імен містить кілька об’єктів WMI.

Служба WMI діє як посередник між постачальниками, програмами керування та репозиторієм WMI. У сховищі зберігаються лише статичні дані про об’єкти, наприклад класи, визначені постачальниками. WMI динамічно отримує більшість даних від постачальника, коли їх запитує клієнт.

  Як безпечно видалити диск у Windows 10

Споживач WMI — це програма керування або сценарій, який взаємодіє з інфраструктурою WMI. Використовуючи COM API для WMI або API сценаріїв для WMI, програма керування може надсилати запити, деталізувати дані, запускати методи провайдера та підписуватися на події.

WMI створює стандартизований інтерфейс для віддаленого та локального отримання даних керування. Уніфікований інтерфейс абстрагується від інтерфейсів прикладного програмування (API) операційної системи. Це дозволяє програмам і сценаріям збирати дані керування без необхідності знати про API операційної системи.

Як запустити запит WMI?

Особливістю універсальності платформи WMI є можливість запитувати її репозиторій, щоб отримати подробиці про дані класу, екземпляра або схеми. Ці показники пов’язані з інвентаризацією локальних і віддалених систем, операційних систем, програмного забезпечення та іншої адміністративної діяльності.

Тип запитів

Загалом існує два типи запитів, які використовуються для отримання інформації зі сховища WMI:

Синхронний запит: це запит, який контролює роботу вашої програми протягом усього запиту. Це легше, ніж асинхронний виклик, оскільки він приймає лише один виклик інтерфейсу. Проте для великих пошуків або мережевих запитів це може призвести до зависання вашої програми.

Асинхронний запит: якщо на швидкість системи чи мережі впливатиме запит значної групи даних, краще використовувати асинхронний запит.

WQL (мова запитів WMI)

Одним із популярних методів запиту WMI є мова запитів WMI.

SQL (Structured Query Language) використовується в середовищі бази даних, а WQL використовується в WMI. Вони обидва мають подібну синтаксичну структуру.

Select, From і Where є основними операторами WQL, які використовуються для запуску запиту.

Типовий запит WMI починається з вибору всіх властивостей із класу WMI за допомогою команди «Вибрати». Зірочка («*») використовується для вибору кожної властивості з класу WMI. Можна використати ключове слово «From», щоб вказати клас WMI для запиту після вибору властивостей (одного чи кількох властивостей або всіх). Ви можете перевірити точний синтаксис у шпаргалці SQL.

WQL можна виконати через тестер WMI (wbemtest.exe), який за замовчуванням інстальовано з операційною системою Windows. Запити WMI також можна виконувати за допомогою Windows PowerShell, VBScript і мови C.

Тип запитів WQL

Запити WQL використовуються для отримання трьох різних типів інформації.

Об’єктні запити: за допомогою цих запитів можна отримати інформацію про системні ресурси Windows.

Запити подій: ці запити використовуються для відстеження змін у журналах подій, ініціації процесів, статусу служб, доступності комп’ютерів або обсягу вільного місця на диску, серед інших об’єктів або випадків.

Запити схеми: ці запити використовуються для отримання деталей про структуру схеми WMI.

Виконання запиту

Давайте подивимося, як запустити об’єктний запит.

Наступний метод визначає, як перевірити процеси WIN_32 у локальній системі.

Інструмент WMI Tester запускається через командний рядок шляхом введення wbemtest.exe.

З’явиться наступне вікно.

Щоб підключитися до простору імен WMI, який містить клас, який ви хочете запитати (у більшості випадків RootCimv2): натисніть вкладку підключення.

Щоб запустити запит, клацніть вкладку «Запит», як показано нижче:

Потім введіть запит, для якого потрібно отримати інформацію. Наприклад, давайте відновимо всі процеси, запущені в локальній системі, виконавши:

select * From Win32_process

Після натискання вкладки застосування ви отримаєте наведені нижче результати

  Як відключити повноекранну оптимізацію для ігор на Windows 10

Наведене вище виконання на основі графічного інтерфейсу також можна виконати в командному рядку через PowerShell:

На платформі PowerShell для отримання списку всіх процесів win_32 використовується наведений нижче код:

Get-WmiObject -Class Win32_Process

Щоб отримати всі параметри запиту PowerShell, відвідайте Керування Microsoft PowerShell сторінки.

Щоб запустити цей запит мовою VBScript і C, Сторінка документації Microsoft дасть повне розуміння.

Ще один спосіб запиту до сховища WMI — команда WMIC:

  • Запустіть CMD із командного рядка
  • Введіть WMIC і введіть, щоб запустити програму
  • Тоді командний рядок зміниться на wmic:rootcli>

Адміністратори можуть запускати запити WMI із цієї підказки.

Наприклад, щоб завантажити інформацію про центральний процесор локальної системи, команда буде такою:

wmic:rootcli> WMIC CPU

Результати/інформація буде відображено в командному рядку.

AddressWidth  Architecture  AssetTag                Availability  Caption                                 Characteristics  ConfigManagerErrorCode  ConfigManagerUserConfig  CpuStatus  CreationClassName  CurrentClockSpeed  CurrentVoltage  DataWidth  Description                             DeviceID  ErrorCleared  ErrorDescription  ExtClock  Family  InstallDate  L2CacheSize  L2CacheSpeed  L3CacheSize  L3CacheSpeed  LastErrorCode  Level  LoadPercentage  Manufacturer  MaxClockSpeed  Name                                      NumberOfCores  NumberOfEnabledCore  NumberOfLogicalProcessors  OtherFamilyDescription  PartNumber              PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProcessorId       ProcessorType  Revision  Role  SecondLevelAddressTranslationExtensions  SerialNumber            SocketDesignation  Status  StatusInfo  Stepping  SystemCreationClassName  SystemName  ThreadCount  UniqueId  UpgradeMethod  Version  VirtualizationFirmwareEnabled  VMMonitorModeExtensions  VoltageCaps
64            9             To Be Filled By O.E.M.  3             Intel64 Family 6 Model 142 Stepping 10  252                                                               1          Win32_Processor    1801               7               64         Intel64 Family 6 Model 142 Stepping 10  CPU0                                      100       205                  1024                       6144         0                            6      31              GenuineIntel  1801           Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz  4              4                    8                                                  To Be Filled By O.E.M.                                            FALSE                     BFEBFBFF000806EA  3                        CPU   TRUE                                     To Be Filled By O.E.M.  U3E1               OK      3                     Win32_ComputerSystem     RENEE-HP     8                      51                      FALSE                          TRUE

Для отримання додаткової інформації про псевдоніми та дієслова WMIC відвідайте Microsoft wmic.

Поширені запитання про WMI

Які порти використовуються в WMI?

Використовуються порти 49152 і 65535. Модель розподілених компонентних об’єктів (DCOM), на якій базується WMI, за замовчуванням використовує випадково вибраний порт TCP для з’єднань між діапазоном 49152 і 65535.

WMI застаріла?

WMI все ще підтримується. Починаючи з Windows 10 версії 21H1 і піврічного випуску Windows Server 21H1, програма командного рядка WMI (WMIC) більше не підтримується.

Що таке засоби моніторингу WMI?

Існує багато інструментів для моніторингу WMI. Однак кілька особливо популярних:
Монітор SolarWinds WMI із сервером і монітором програм
Службовий датчик Paessler WMI з PRTG
Нагіос XI
Sapien WMI Explorer
Безкоштовними інструментами є WMI Explorer, Adrem Free WMI Tools

Як усунути проблеми з WMI

Під час спроб отримати доступ до локальних або віддалених даних WMI у програмі чи сценарії ви можете побачити помилки, починаючи від відсутності класів і закінчуючи порушеннями доступу. Перевірте Керівництво з усунення несправностей Microsoft WMI щоб отримати рішення для таких помилок.

Висновок

Загалом, Windows Management Instrumentation є потужним інструментом, який можна використовувати для обробки широкого спектру різноманітних системних функцій Windows. WMI може бути дуже корисним інструментом для тих, хто має справу з системами Windows, незважаючи на те, що спочатку це може здатися страшним.