Mechanizm gromadzenia informacji i zarządzania w systemach operacyjnych Windows jest określany mianem Instrumentacji Zarządzania Windows, w skrócie WMI.
WMI udostępnia dane menedżerskie innym komponentom systemowym oraz produktom takim jak SCOM (System Center Operations Manager) czy usługa zdalnego zarządzania Windows, czyli Windows Remote Management.
Czym jest Instrumentacja Zarządzania Windows (WMI)?
WMI to platforma przeznaczona do administrowania i monitorowania systemów operacyjnych, a także różnorodnych aplikacji i usług firmy Microsoft, działających na komputerach osobistych, serwerach oraz innych urządzeniach sieciowych.
WMI oferuje rozbudowany, skalowalny i przyjazny interfejs programistyczny, umożliwiający dostęp do informacji i usług w środowisku zarządzanym przez Microsoft, jak również na innych urządzeniach w sieci.
WMI służy do rozpoznawania i obserwowania stanu systemu operacyjnego, usług i aplikacji na danym komputerze, a także danych z rejestru systemowego i systemu plików. Ułatwia również tworzenie i kontrolę skryptów oraz programów, które automatyzują zadania administracyjne.
Wykorzystuje specjalny język zapytań, WQL (Windows Query Language), do wyszukiwania informacji i wykonywania operacji w obrębie systemu operacyjnego, komputerów i urządzeń.
Zapewnia również integrację z PowerShell, jednym z najbardziej zaawansowanych narzędzi administracyjnych dla Windows, które można wykorzystać do pisania skryptów automatyzujących zadania.
Dodatkowo, WMI pozwala na tworzenie własnych aplikacji, które rozszerzają funkcjonalność zarządzania i administrowania systemami i aplikacjami Windows.
Użytkownicy, którzy muszą śledzić kondycję swoich komputerów, przeprowadzać podstawową diagnostykę problemów i gromadzić dane o wydajności, z pewnością docenią możliwości WMI.
Jaki jest cel WMI?
W środowiskach korporacyjnych opartych na systemie Windows, WMI jest szczególnie wartościowe, ponieważ ułatwia zarządzanie elementami sieci, dostarczając dane innym produktom w celu zwiększenia ich efektywności i skalowalności.
Głównym zadaniem WMI jest ustanowienie jednolitej struktury zarządzania we wszystkich aspektach systemu Windows, takich jak:
- Elementy systemu operacyjnego
- Procesy i wątki
- Usługi
- Urządzenia
- Sterowniki
- Aplikacje
- Konta użytkowników
- Ustawienia bezpieczeństwa
Cel, jaki przyświecał stworzeniu WMI, to obniżenie kosztów i czasu potrzebnego na operacje i rozwój systemów Windows. WMI umożliwia również monitorowanie zdarzeń systemowych i zbieranie danych o wydajności, które mogą być wykorzystane do analizy problemów i śledzenia trendów.
WMI jest często wykorzystywane do automatyzacji zadań administracyjnych i uzyskiwania dostępu do danych bez konieczności bezpośredniej interakcji z systemem operacyjnym. Dzięki temu WMI jest doskonałym narzędziem dla administratorów i programistów, którzy chcą zautomatyzować powtarzalne procesy.
Umożliwia ono monitorowanie wydajności systemu i pobieranie danych aplikacji. Pozwala programistom tworzyć inteligentniejsze aplikacje, a administratorom IT wykonywać zadania przy minimalnym wysiłku.
WMI stanowi referencyjną implementację dostępu do informacji o systemie i jest kluczowym narzędziem w zarządzaniu i monitorowaniu systemów Windows. Stanowi fundament dla platform Azure Machine Learning i AzureML oraz jest wykorzystywane przez wiele produktów innych firm.
Wykorzystanie WMI
Instrumentacja Zarządzania Windows (WMI) jest platformą Web-Based Enterprise Management (WBEM) firmy Microsoft, która jest częścią inicjatywy branżowej mającej na celu stworzenie standardowych technologii dostępu do informacji o zarządzaniu przedsiębiorstwem.
WMI reprezentuje systemy, aplikacje, sieci, urządzenia i inne zarządzane elementy, stosując standard Common Information Model (CIM). Standard CIM jest opracowywany i utrzymywany przez Distributed Management Task Force (DMTF).
WMI jest wszechstronne, obsługuje szeroki zakres zadań administracyjnych i zarządczych, i oferuje elastyczną, rozszerzalną architekturę, która umożliwia producentom tworzenie nowych dostawców WMI dla nowych urządzeń, aplikacji i zaawansowanych rozwiązań.
Inne zastosowania WMI to:
- Wszechstronne zarządzanie systemem operacyjnym Windows oraz urządzeniami i usługami sieciowymi firmy Microsoft.
- Możliwość łączenia się z odległymi komputerami w celu uzyskania dostępu do danych WMI.
- Pobieranie informacji o systemie, takich jak uruchomione programy i skonfigurowane usługi.
- Pobieranie danych o specyfikacji sprzętu i wykonywanie działań, takich jak wyłączanie lub restart systemu.
- Uruchamianie aplikacji, sterowanie usługami, dostęp do danych i konfiguracja.
- Ułatwienie programistom tworzenia skryptów w języku Visual Basic lub Windows Scripting Host (WSH).
Architektura WMI
WMI (Windows Management Instrumentation) to technologia Microsoft, wprowadzona po raz pierwszy w systemie Windows 2000. Pozwala programistom na tworzenie programów do zarządzania, które współpracują z każdym systemem obsługującym WMI.
Przyjrzyjmy się bliżej architekturze i terminologii WMI.
Architektura WMI rozpoczyna się od obiektów: każdy element, taki jak dysk twardy, karta sieciowa, system operacyjny lub usługa, jest obiektem zarządzanym. Infrastruktura WMI pobiera dane z obiektu za pośrednictwem dostawcy. Dostawca przekazuje informacje do WMI i z powrotem do obiektu.
Dostawca WMI zawiera bibliotekę DLL i plik Managed Object Format (MOF), który monitoruje zdarzenia i dane z obiektów. WMI klasyfikuje dostawców według funkcji, jakie oferują poprzez interfejs dostawcy.
W systemie Windows istnieje wiele wbudowanych dostawców WMI, takich jak dostawca Active Directory, dostawca WMI danych konfiguracji rozruchu (BCD), dostawca rozproszonego systemu plików (DFS), dostawca dziennika zdarzeń, dostawca Hyper-V WMI, dostawca Win32, dostawca rejestru i dostawca SNMP.
Infrastruktura WMI jest częścią systemu operacyjnego Microsoft Windows, znaną jako usługa WMI (winmgmt). Na infrastrukturę WMI składają się rdzeń WMI i repozytorium WMI.
Repozytorium WMI to hierarchiczny magazyn danych, zorganizowany w przestrzenie nazw WMI, często określane jako model wspólnych informacji (CIM). Usługa WMI tworzy szereg przestrzeni nazw przy starcie systemu, w tym domyślną usługę root, rootcimv2 i subskrypcję root.
Dodatkowo, usługa tworzy domyślny zbiór definicji klas, który zawiera klasy systemowe Win32 i WMI. Dodatkowe przestrzenie nazw WMI mogą być tworzone przez dostawców, a każda przestrzeń nazw zawiera różne obiekty WMI.
Usługa WMI działa jako pośrednik między dostawcami, aplikacjami zarządzającymi i repozytorium WMI. W repozytorium przechowywane są wyłącznie statyczne dane o obiektach, takie jak definicje klas. Usługa WMI pobiera większość danych dynamicznie od dostawcy, gdy klient tego potrzebuje.
Konsumentem WMI jest aplikacja lub skrypt zarządzający, który komunikuje się z infrastrukturą WMI. Program zarządzający, korzystając z interfejsu COM API lub Scripting API, może wykonywać zapytania, pobierać dane, uruchamiać metody dostawcy i subskrybować zdarzenia.
WMI tworzy standardowy interfejs do zdalnego i lokalnego pobierania danych. Jednolity interfejs oddziela aplikacje od interfejsów programowania (API) systemu operacyjnego. Dzięki temu aplikacje i skrypty mogą zbierać dane bez znajomości API systemu.
Jak uruchomić zapytanie WMI?
Jedną z kluczowych cech WMI jest możliwość odpytywania repozytorium w celu uzyskania informacji o klasach, instancjach lub danych schematu. Dane te pozwalają na inwentaryzację lokalnych i zdalnych systemów, systemów operacyjnych, oprogramowania i innych elementów administracyjnych.
Typy zapytań
Wyróżniamy dwa główne rodzaje zapytań używanych do pobierania danych z repozytorium WMI:
Zapytanie synchroniczne: kontroluje działanie aplikacji przez cały czas trwania zapytania. Jest prostsze w obsłudze niż zapytanie asynchroniczne, ponieważ wymaga tylko jednego wywołania interfejsu. Może jednak spowolnić aplikację przy dużych wyszukiwaniach lub zapytaniach sieciowych.
Zapytanie asynchroniczne: Preferowany wybór, gdy zapytanie o dużą ilość danych może wpłynąć na szybkość działania systemu lub sieci.
WQL (Język zapytań WMI)
WQL jest jednym z powszechnych sposobów odpytywania WMI.
SQL (Structured Query Language) jest używany w bazach danych, a WQL służy do zapytań WMI. Oba języki mają podobną składnię.
Podstawowe instrukcje WQL to Select, From i Where.
Typowe zapytanie WMI zaczyna się od wybrania wszystkich właściwości z klasy WMI za pomocą polecenia „Select”. Gwiazdka („*”) służy do wybrania każdej właściwości klasy. Słowo kluczowe „From” określa klasę WMI, z której będą pobierane dane. Szczegółową składnię można znaleźć w dokumentacji SQL.
WQL można uruchomić za pomocą testera WMI (wbemtest.exe), który jest standardowo instalowany z systemem Windows. Zapytania WMI można również wykonywać w PowerShell, VBScript i języku C.
Rodzaje zapytań WQL
Zapytania WQL służą do uzyskiwania trzech rodzajów informacji.
Zapytania o obiekty: pozwalają uzyskać dane o zasobach systemu Windows.
Zapytania o zdarzenia: służą do monitorowania zmian w dziennikach zdarzeń, inicjacji procesów, stanu usług, dostępności komputerów, ilości wolnego miejsca na dysku oraz innych zdarzeń.
Zapytania o schemat: pozwalają uzyskać informacje o strukturze schematu WMI.
Uruchamianie zapytania
Sprawdźmy, jak uruchomić zapytanie o obiekt.
Poniżej opisano, jak sprawdzić procesy WIN_32 w systemie lokalnym.
Tester WMI uruchamiamy z wiersza poleceń, wpisując wbemtest.exe.
Pojawi się następujące okno.
Aby połączyć się z przestrzenią nazw WMI, która zawiera klasę, o którą pytamy (w większości przypadków RootCimv2): kliknij „Połącz”.
Aby uruchomić zapytanie, kliknij zakładkę „Zapytanie”, jak pokazano poniżej:
Następnie wpisz zapytanie. Aby pobrać listę wszystkich procesów działających w systemie lokalnym, uruchom:
select * From Win32_process
Po kliknięciu „Zastosuj” otrzymasz wyniki:
Powyższe działanie, wykonywane w graficznym interfejsie użytkownika, można również zrealizować w wierszu polecenia za pomocą PowerShell:
Aby uzyskać listę wszystkich procesów win_32 w PowerShell, użyj poniższego kodu:
Get-WmiObject -Class Win32_Process
Szczegóły dotyczące parametrów zapytania PowerShell można znaleźć na stronie Microsoft PowerShell Management.
Aby uruchomić to zapytanie w VBScript i C, pełne informacje znajdują się na stronie dokumentacji firmy Microsoft.
Innym sposobem odpytywania repozytorium WMI jest użycie polecenia WMIC:
- Uruchom CMD z wiersza poleceń.
- Wpisz WMIC i naciśnij Enter.
- Wiersz polecenia zmieni się na wmic:rootcli>.
Administratorzy mogą stąd uruchamiać zapytania WMI.
Na przykład, aby uzyskać informacje o procesorze systemu lokalnego, należy użyć polecenia:
wmic:rootcli> WMIC CPU
Wyniki 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
Więcej informacji o aliasach i czasownikach WMIC można znaleźć na stronie Microsoft wmic.
Często zadawane pytania dotyczące WMI
Jakie porty są wykorzystywane przez WMI?
Porty używane przez WMI to 49152 i 65535. Distributed Component Object Model (DCOM), na którym opiera się WMI, domyślnie wykorzystuje losowo wybrany port TCP z zakresu 49152-65535.
Czy usługa WMI jest przestarzała?
WMI jest nadal wspierane. Od systemu Windows 10, wersja 21H1, i półrocznej wersji kanału 21H1 systemu Windows Server, program wiersza poleceń WMI (WMIC) nie jest już rozwijany.
Czym są narzędzia do monitorowania WMI?
Dostępnych jest wiele narzędzi do monitorowania WMI. Najpopularniejsze z nich to:
Monitor SolarWinds WMI z monitorem serwera i aplikacji
Czujnik Paessler WMI w PRTG
Nagios XI
Eksplorator Sapien WMI
Bezpłatne narzędzia to WMI Explorer i Adrem Free WMI Tools
Jak rozwiązywać problemy z WMI?
Podczas próby dostępu do danych WMI, mogą pojawić się błędy, takie jak brakujące klasy lub naruszenia dostępu. Sprawdź Przewodnik rozwiązywania problemów z usługą Microsoft WMI, aby znaleźć rozwiązania.
Podsumowanie
Instrumentacja Zarządzania Windows jest potężnym narzędziem do obsługi różnych funkcji związanych z systemem Windows. Mimo że początkowo może wydawać się skomplikowana, WMI jest niezwykle przydatne dla każdego, kto ma styczność z systemami Windows.
newsblog.pl