Krótki przewodnik dotyczący Instrumentacji zarządzania Windows (WMI)

Struktura informacji i działań związanych z zarządzaniem w systemach operacyjnych opartych na systemie Windows nosi nazwę Instrumentacja zarządzania Windows (WMI).

Usługa WMI dostarcza również dane zarządzania do innych składników systemu operacyjnego i produktów, takich jak SCOM (System Center Operations Manager) lub Windows Remote Management.

Co to jest Instrumentacja zarządzania Windows (WMI?)

WMI to platforma do zarządzania i monitorowania systemu operacyjnego oraz innych aplikacji i usług firmy Microsoft na komputerach osobistych, serwerach i innych urządzeniach sieciowych.

Usługa WMI zapewnia wszechstronny, skalowalny i łatwy w użyciu interfejs programistyczny, który zapewnia programowy dostęp do informacji i usług na komputerach zarządzanych przez firmę Microsoft i innych urządzeniach sieciowych.

Służy do wykrywania i monitorowania systemu operacyjnego, usług i aplikacji na komputerze, a także danych rejestru i systemu plików. Służy również do tworzenia i zarządzania skryptami i programami, które automatyzują zarządzanie i administrację komputerem.

Wykorzystuje język programowania WQL (Windows Query Language) do wyszukiwania informacji i wykonywania operacji na systemie operacyjnym, komputerach i urządzeniach.

Daje również dostęp do PowerShell, jednego z najpotężniejszych i najbardziej elastycznych narzędzi administracyjnych dla systemu Windows, którego możesz używać do tworzenia skryptów automatyzacji.

Ponadto WMI umożliwia tworzenie niestandardowych aplikacji, które zapewniają dodatkową funkcjonalność do zarządzania i administrowania systemami i aplikacjami Windows.

Użytkownicy, którzy muszą monitorować stan swoich maszyn, wykonywać podstawowe rozwiązywanie problemów i zbierać dane o wydajności, uznają WMI za przydatne.

Jaki jest cel WMI?

Usługa WMI jest przydatna w sieci korporacyjnej z systemem Windows, ponieważ upraszcza obsługę i zarządzanie składnikami sieci korporacyjnej poprzez dostarczanie danych do innych produktów w celu dalszego ulepszenia i skalowalności.

Głównym celem WMI jest zapewnienie ujednoliconej struktury zarządzania we wszystkich aspektach systemu Windows, takich jak:

  • Komponenty systemu operacyjnego
  • Procesy i wątki
  • Usługi
  • Urządzenia
  • Kierowcy
  • Aplikacje
  • Konta użytkowników
  • Ustawienia bezpieczeństwa

Cel wynalazku WMI prowadzi do zmniejszenia kosztów i czasu operacji i rozwoju związanych z systemami Windows. WMI umożliwia również monitorowanie zdarzeń systemowych i zbieranie danych dotyczących wydajności. Te dane mogą służyć do rozwiązywania problemów lub śledzenia trendów w czasie.

Usługa WMI jest najczęściej używana do automatyzacji prac administracyjnych i uzyskiwania dostępu do danych bez bezpośredniego kontaktu z systemem operacyjnym. W rezultacie WMI jest fantastyczną alternatywą dla administratorów i programistów, którzy muszą zautomatyzować czasochłonne procesy.

Dzięki niemu możliwe jest wszystko, od monitorowania wydajności systemu po pozyskiwanie danych aplikacji. Umożliwia programistom tworzenie inteligentniejszych, bardziej inteligentnych aplikacji, zapewniając jednocześnie administratorom IT możliwość wykonywania swoich zadań przy minimalnym wysiłku.

Usługa WMI zapewnia referencyjną implementację dostępu do informacji o systemie i jest kluczowym narzędziem do zarządzania i monitorowania systemów Windows. Jest to podstawa dla Azure Machine Learning i AzureML oraz jest używana do obsługi szerokiej gamy produktów innych firm.

Korzystanie z WMI

Instrumentacja zarządzania Windows (WMI) jest dostarczaną przez firmę Microsoft platformą Web-Based Enterprise Management (WBEM), inicjatywą branżową mającą na celu opracowanie ustandaryzowanych technologii dostępu do informacji dotyczących ładu korporacyjnego.

Usługa WMI reprezentuje systemy, aplikacje, sieci, urządzenia i inne zarządzane składniki przy użyciu standardu branżowego Common Information Model (CIM). Distributed Management Task Force (DMTF) tworzy i utrzymuje CIM.

Projekt WMI jest wszechstronny, obsługuje szeroki zakres zadań administracyjnych i zarządczych, a także zapewnia elastyczną i rozszerzalną architekturę, która umożliwia producentom pisanie nowych dostawców WMI w celu obsługi nowych urządzeń, aplikacji i innych zaawansowanych rozwiązań.

Inne zastosowania to:

  • Kompleksowe zarządzanie systemem operacyjnym Windows oraz urządzeniami i usługami sieciowymi Microsoft.
  • Może być używany do łączenia zdalnych komputerów w celu uzyskania dostępu do danych WMI
  • Wykrywa informacje o systemie, takie jak uruchomione programy i skonfigurowane usługi.
  • Pobieranie informacji o specyfikacji sprzętu i wykonywanie działań, takich jak wyłączanie lub ponowne uruchamianie systemu.
  • Uruchamianie aplikacji, uruchamianie, zatrzymywanie, konfigurowanie usług i uzyskiwanie dostępu do danych.
  • Deweloperzy aplikacji do zarządzania mogą używać tego interfejsu API do tworzenia skryptów w języku Visual Basic lub Windows Scripting Host (WSH).

Architektura WMI

WMI (Windows Management Instrumentation) to technologia firmy Microsoft zaprezentowana początkowo w systemie Windows 2000. Umożliwia programistom konstruowanie programów do zarządzania, które współpracują z dowolnym systemem obsługującym WMI.

Zobaczmy architekturę i terminologię WMI.

Przebieg architektury WMI zaczyna się od obiektów: komponent, taki jak dysk twardy, karta sieciowa, system operacyjny lub usługa, jest obiektem zarządzanym (którym można zarządzać za pośrednictwem usługi WMI). Infrastruktura WMI odbiera dane z obiektu za pośrednictwem dostawcy. Dostarcza i odbiera komunikaty z WMI i przekazuje je do obiektu.

Dostawca WMI zawiera bibliotekę DLL i plik Managed Object Format (MOF), który monitoruje zdarzenia i dane z obiektów. Usługa WMI kategoryzuje dostawców zgodnie z funkcjonalnością udostępnianą przez interfejs dostawcy.

Istnieje wiele wbudowanych dostawców WMI w systemie Windows, w tym dostawca usługi Active Directory, dostawca WMI danych konfiguracji rozruchu (BCD), dostawca rozproszonego systemu plików (DFS), dostawca dziennika zdarzeń, dostawca usługi Hyper-V WMI, dostawca Win32, dostawca rejestru, i dostawcę SNMP.

Infrastruktura WMI jest składnikiem systemu operacyjnego Microsoft Windows, znanego jako usługa WMI (winmgmt). Rdzeń WMI i repozytorium WMI to dwie części infrastruktury WMI.

Repozytorium WMI to hierarchiczny magazyn danych zorganizowany przez przestrzenie nazw usługi WMI, często nazywany modelem wspólnych informacji (CIM). Usługa WMI ustanawia szereg przestrzeni nazw podczas uruchamiania systemu, w tym domyślną usługę root, rootcimv2 i subskrypcję root.

Ponadto usługa tworzy domyślny zestaw definicji klas, który obejmuje klasy systemowe Win32 i WMI. Inne przestrzenie nazw WMI mogą być tworzone przez dodatkowych dostawców WMI, a każda przestrzeń nazw zawiera kilka obiektów WMI.

Usługa WMI działa jako pośrednik między dostawcami, aplikacjami do zarządzania i repozytorium WMI. W repozytorium przechowywane są tylko statyczne dane o obiektach, takie jak klasy zdefiniowane przez dostawców. Usługa WMI pobiera większość danych dynamicznie od dostawcy, gdy klient tego zażąda.

Konsument WMI to aplikacja lub skrypt do zarządzania, który komunikuje się z infrastrukturą WMI. Korzystając z interfejsu COM API for WMI lub Scripting API for WMI, program zarządzający może wysyłać zapytania, wyszczególniać dane, uruchamiać metody dostawcy i subskrybować zdarzenia.

WMI tworzy ustandaryzowany interfejs do zdalnego i lokalnego pobierania danych zarządzania. Jednolity interfejs abstrahuje od interfejsów programowania aplikacji (API) systemu operacyjnego. Dzięki temu aplikacje i skrypty mogą zbierać dane dotyczące zarządzania bez konieczności znajomości interfejsu API systemu operacyjnego.

Jak uruchomić zapytanie WMI?

Cechą wszechstronności platformy WMI jest możliwość odpytywania jej repozytorium w celu uzyskania szczegółowych informacji o klasie, instancji lub danych schematu. Te metryki są połączone z inwentaryzacją lokalnych i odległych systemów, systemów operacyjnych, oprogramowania i innych czynności administracyjnych.

Rodzaj zapytań

Ogólnie rzecz biorąc, istnieją dwa typy zapytań używanych do pobierania informacji z repozytorium WMI:

Zapytanie synchroniczne: jest to zapytanie, które kontroluje działanie aplikacji przez cały czas trwania zapytania. Jest to łatwiejsze niż wywołanie asynchroniczne, ponieważ zajmuje tylko jedno wywołanie interfejsu. W przypadku dużych wyszukiwań lub zapytań dotyczących sieci może jednak zawiesić aplikację.

Zapytanie asynchroniczne: gdy zapytanie o sporą grupę danych wpłynie na szybkość systemu lub sieci, preferowanym typem jest zapytanie asynchroniczne.

WQL (Język zapytań WMI)

Jedną z popularnych metod zapytań WMI jest język zapytań WMI.

SQL (Structured Query Language) jest używany w środowisku bazy danych, a WQL jest używany w WMI. Oba mają podobną strukturę składni.

Select, From i Where to podstawowe instrukcje WQL używane do uruchomienia zapytania.

Typowe zapytanie WMI rozpoczyna się od wybrania wszystkich właściwości z klasy WMI za pomocą polecenia „Wybierz”. Gwiazdka („*”) służy do wybierania każdej właściwości z klasy WMI. Można użyć słowa kluczowego „From”, aby określić klasę WMI do zapytania po wybraniu właściwości (jednej lub więcej właściwości lub wszystkich). Możesz sprawdzić dokładną składnię w ściągawce SQL.

WQL można wykonać za pomocą testera WMI (wbemtest.exe), który jest domyślnie instalowany z systemem operacyjnym Windows. Zapytania WMI można również wykonywać za pomocą programu Windows PowerShell, VBScript i języka C.

Rodzaj zapytań WQL

Zapytania WQL są wykorzystywane do uzyskania trzech różnych typów informacji.

Zapytania dotyczące obiektów: Za pomocą tych zapytań można uzyskać informacje o zasobach systemu Windows.

Zapytania o zdarzenia: Zapytania te są używane do śledzenia zmian w dziennikach zdarzeń, inicjacji procesów, stanu usług, dostępności komputerów lub ilości wolnego miejsca na dysku, między innymi podmiotami lub zdarzeniami.

Zapytania schematu: te zapytania służą do uzyskiwania szczegółowych informacji o strukturze schematu WMI.

Uruchamianie zapytania

Zobaczmy, jak uruchomić zapytanie obiektowe.

Poniższa metoda określa sposób sprawdzania procesów WIN_32 w systemie lokalnym.

Narzędzie WMI Tester jest uruchamiane za pomocą wiersza poleceń, wpisując wbemtest.exe.

Pojawi się następujące okno.

Aby połączyć się z przestrzenią nazw WMI, która zawiera klasę, której dotyczy zapytanie (w większości przypadków RootCimv2): kliknij kartę Połącz.

Aby uruchomić zapytanie, kliknij kartę „Zapytanie”, jak pokazano poniżej:

Następnie wpisz zapytanie, dla którego chcesz pobrać informacje. Na przykład, pobierzmy wszystkie procesy działające w systemie lokalnym, uruchamiając:

select * From Win32_process

Po kliknięciu zakładki Zastosuj, otrzymasz poniższe wyniki

Powyższe wykonanie oparte na graficznym interfejsie użytkownika można również wykonać w wierszu polecenia za pomocą programu PowerShell:

W platformie PowerShell, aby uzyskać listę wszystkich procesów win_32, używany jest poniższy kod:

Get-WmiObject -Class Win32_Process

Aby uzyskać wszystkie parametry zapytania PowerShell, odwiedź Zarządzanie Microsoft PowerShell strona.

Aby uruchomić to zapytanie w języku VBScript i C, Strona dokumentacji firmy Microsoft zapewni pełny wgląd.

Inną metodą odpytywania repozytorium WMI jest użycie polecenia WMIC:

  • Uruchom CMD z wiersza poleceń
  • Wpisz WMIC i wejdź, aby uruchomić program
  • Następnie wiersz polecenia zmieni się na wmic:rootcli>

Administratorzy mogą uruchamiać zapytania WMI z tego wiersza.

Na przykład, aby załadować informacje o procesorze systemu lokalnego, poleceniem będzie:

wmic:rootcli> WMIC CPU

Wyniki/informacje zostaną wyświetlone w wierszu polecenia.

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

Aby uzyskać więcej informacji o aliasach i czasownikach WMIC, odwiedź Microsoft wmic.

Często zadawane pytania dotyczące WMI

Jakie porty są używane w WMI?

Używane porty to 49152 i 65535. Distributed Component Object Model (DCOM), na którym oparta jest usługa WMI, domyślnie wykorzystuje losowo wybrany port TCP dla połączeń z zakresu 49152 i 65535.

Czy usługa WMI jest przestarzała?

Usługa WMI jest nadal obsługiwana. Począwszy od systemu Windows 10, wersja 21H1 i półrocznej wersji kanału 21H1 systemu Windows Server, program wiersza polecenia WMI (WMIC) nie jest już obsługiwany.

Czym są narzędzia do monitorowania WMI?

Dostępnych jest wiele narzędzi do monitorowania WMI. Jednak garstka jest szczególnie popularna:
Monitor SolarWinds WMI z monitorem serwera i aplikacji
Czujnik serwisowy Paessler WMI z PRTG
Nagios XI
Eksplorator Sapien WMI
Darmowe narzędzia to WMI Explorer, Adrem Free WMI Tools

Jak rozwiązywać problemy z WMI

Podczas próby uzyskania dostępu do lokalnych lub zdalnych danych WMI w aplikacji lub skrypcie mogą pojawić się błędy, od brakujących klas po naruszenia dostępu. Sprawdź Przewodnik rozwiązywania problemów z usługą Microsoft WMI aby uzyskać rozwiązania takich błędów.

Wniosek

Ogólnie rzecz biorąc, Instrumentacja zarządzania Windows jest silnym narzędziem, którego można używać do obsługi szerokiej gamy różnych funkcji związanych z systemem Windows. WMI może być bardzo pomocnym narzędziem dla każdego, kto ma do czynienia z systemami Windows, mimo że początkowo może wydawać się onieśmielający.