Windows Management Instrumentation (WMI) představuje systémový rámec pro správu dat a operací v operačních systémech postavených na platformě Windows.
WMI rovněž poskytuje klíčová data pro správu různým systémovým komponentám a externím produktům, jako jsou například SCOM (System Center Operations Manager) nebo Windows Remote Management.
Co je Windows Management Instrumentation (WMI)?
WMI je platforma určená ke správě a monitorování operačního systému a dalších aplikací a služeb od společnosti Microsoft. Je využívána na osobních počítačích, serverech a dalších zařízeních v síti.
Poskytuje komplexní, rozšiřitelné a snadno použitelné rozhraní pro programování, které umožňuje softwarový přístup k informacím a službám na počítačích spravovaných Microsoftem a dalšími síťovými zařízeními.
Jeho použití zahrnuje detekci a sledování operačního systému, systémových služeb a aplikací, stejně jako monitorování dat z registru a souborového systému. WMI se rovněž uplatňuje při tvorbě a správě skriptů a programů, které automatizují administrativní úlohy a celkovou správu počítače.
Pro dotazování na informace a provádění operací na operačním systému, počítačích a zařízeních využívá WMI specifický programovací jazyk WQL (Windows Query Language).
Dále poskytuje přístup k PowerShellu, jednomu z nejvýkonnějších a nejflexibilnějších nástrojů pro správu v prostředí Windows, který je klíčový pro vytváření automatizačních skriptů.
WMI také umožňuje vytváření vlastních aplikací, které mohou rozšířit možnosti správy a administrace systémů a aplikací Windows.
Uživatelé, kteří potřebují mít přehled o stavu svých počítačů, provádět základní diagnostiku a sbírat data o výkonu, shledají WMI velmi užitečným.
K jakému účelu slouží WMI?
WMI má velký význam v podnikových sítích založených na Windows. Zjednodušuje provoz a správu podnikové sítě, protože poskytuje data pro další produkty, které tak mohou být lépe využity a škálovány.
Hlavním cílem WMI je vytvořit jednotný systém pro správu všech aspektů Windows, včetně:
- Komponent operačního systému
- Procesů a vláken
- Služeb
- Zařízení
- Ovladačů
- Aplikací
- Uživatelských účtů
- Bezpečnostních nastavení
Díky WMI se snižují náklady i čas potřebný pro operace a vývoj systémů Windows. Navíc umožňuje sledování systémových událostí a shromažďování dat o výkonu. Tato data jsou neocenitelná pro řešení problémů a sledování trendů v čase.
WMI se nejčastěji používá k automatizaci administrativních úkolů a k získávání přístupu k datům bez přímé interakce s operačním systémem. Je tak ideální volbou pro administrátory a softwarové vývojáře, kteří chtějí automatizovat časově náročné procesy.
S WMI je možné monitorovat výkon systému, získávat aplikační data a další. Umožňuje vývojářům vytvářet inteligentnější aplikace a zároveň usnadňuje práci IT administrátorům.
WMI slouží jako referenční implementace pro přístup k systémovým informacím a je zásadním nástrojem pro správu a monitorování systémů Windows. Je to základní kámen pro Azure Machine Learning a AzureML a je využíván v mnoha produktech třetích stran.
Využití WMI
Windows Management Instrumentation (WMI) je produkt společnosti Microsoft, který implementuje standard Web-Based Enterprise Management (WBEM). WBEM je průmyslová iniciativa zaměřená na vývoj standardizovaných technologií pro přístup k informacím o správě podniků.
WMI reprezentuje systémy, aplikace, sítě, zařízení a další spravované komponenty za použití průmyslového standardu Common Information Model (CIM). CIM je vytvářen a udržován organizací Distributed Management Task Force (DMTF).
WMI je navržen s ohledem na flexibilitu a podporuje širokou škálu administrativních a manažerských úloh. Jeho architektura je flexibilní a rozšiřitelná, což výrobcům umožňuje vytvářet nové poskytovatele WMI pro podporu nových zařízení, aplikací a dalších vylepšení.
Další způsoby využití zahrnují:
- Komplexní správu operačního systému Windows a síťových zařízení a služeb společnosti Microsoft.
- Možnost připojení ke vzdáleným počítačům za účelem přístupu k datům WMI.
- Získávání informací o systému, například které programy jsou spuštěné a jaké služby jsou nastavené.
- Získávání informací o hardwarových specifikacích a provádění akcí, jako je vypnutí nebo restartování systému.
- Spouštění aplikací, spouštění, zastavování a konfigurace služeb, stejně jako přístup k datům.
- Vývojáři aplikací pro správu mohou využít WMI API pro vytváření skriptů ve Visual Basic nebo Windows Scripting Host (WSH).
Architektura WMI
WMI (Windows Management Instrumentation) je technologie od Microsoftu, která byla poprvé představena v systému Windows 2000. Umožňuje programátorům vytvářet aplikace pro správu, které fungují s jakýmkoli systémem podporujícím WMI.
Nyní se podívejme na architekturu a terminologii WMI.
Základem architektury WMI jsou spravované objekty. Komponenta, jako je pevný disk, síťová karta, operační systém nebo služba, je spravovaný objekt, který lze spravovat prostřednictvím WMI. Infrastruktura WMI získává data z těchto objektů prostřednictvím poskytovatele. Poskytovatel zpracovává zprávy a komunikaci mezi WMI a spravovaným objektem.
Poskytovatel WMI zahrnuje knihovnu DLL a soubor MOF (Managed Object Format), který monitoruje události a data z objektů. WMI kategorizuje poskytovatele podle funkčnosti poskytované rozhraním poskytovatele.
V operačním systému Windows je mnoho vestavěných poskytovatelů WMI, včetně poskytovatele služby Active Directory, poskytovatele WMI spouštěcích konfiguračních dat (BCD), poskytovatele distribuovaného souborového systému (DFS), poskytovatele protokolu událostí, poskytovatele Hyper-V WMI, poskytovatele Win32, poskytovatele registru a poskytovatele SNMP.
Infrastruktura WMI je součástí operačního systému Microsoft Windows a je známá jako služba WMI (winmgmt). Tato infrastruktura se skládá ze dvou hlavních částí: WMI Core a WMI Repository.
Úložiště WMI je hierarchická databáze organizovaná pomocí jmenných prostorů WMI, často označovaných jako Common Information Model (CIM). Při spuštění systému služba WMI vytvoří několik jmenných prostorů, včetně výchozích root, rootcimv2 a root/subscription.
Kromě toho služba vytvoří výchozí sadu definic tříd, které zahrnují systémové třídy Win32 a WMI. Další jmenné prostory WMI mohou být vytvářeny poskytovateli WMI a každý jmenný prostor obsahuje několik WMI objektů.
Služba WMI funguje jako prostředník mezi poskytovateli, aplikacemi pro správu a úložištěm WMI. V úložišti jsou uložena pouze statická data o objektech, jako jsou třídy definované poskytovateli. Většina dat je získávána dynamicky od poskytovatele, když o to klient požádá.
Zákazníkem WMI je aplikace nebo skript pro správu, který komunikuje s infrastrukturou WMI. Prostřednictvím rozhraní COM API for WMI nebo Scripting API for WMI může program pro správu dotazovat, získávat data, spouštět metody poskytovatele a přihlašovat se k odběru událostí.
WMI vytváří standardizované rozhraní pro získávání dat správy, jak lokálně, tak i vzdáleně. Toto jednotné rozhraní abstrahuje od aplikačních programovacích rozhraní (API) operačního systému. Aplikace a skripty tak mohou získávat data správy bez nutnosti znát rozhraní API operačního systému.
Jak spustit dotaz WMI?
Flexibilita platformy WMI se odráží ve schopnosti dotazovat se na její úložiště a získávat tak informace o datech tříd, instancích nebo schématech. Tato data souvisejí s inventářem lokálních i vzdálených systémů, operačních systémů, softwaru a dalších administrativních aspektů.
Typy dotazů
Obecně existují dva základní typy dotazů používaných pro získávání informací z úložiště WMI:
Synchronní dotaz: Při tomto typu dotazu je aplikace zodpovědná za řízení operace po celou dobu trvání dotazu. Jedná se o jednodušší přístup, který zahrnuje jediné volání rozhraní, ale v případě rozsáhlých nebo síťových dotazů může způsobit zamrznutí aplikace.
Asynchronní dotaz: Pokud dotazování na velkou skupinu dat může negativně ovlivnit rychlost systému nebo sítě, je vhodnější použít asynchronní dotaz.
WQL (dotazovací jazyk WMI)
Jedním z běžných způsobů dotazování na WMI je jazyk WQL.
V databázovém prostředí se používá SQL (Structured Query Language), zatímco WMI používá WQL. Oba jazyky mají podobnou strukturu syntaxe.
Základní příkazy WQL, které se používají pro spuštění dotazu, jsou Select, From a Where.
Běžný dotaz WMI začíná výběrem všech vlastností z třídy WMI pomocí příkazu „Select“. Hvězdička („*“) se používá k výběru všech vlastností z dané třídy. Klíčové slovo „From“ se pak používá pro určení třídy, na kterou se dotaz směřuje. Přesnou syntaxi je možné ověřit v SQL cheatsheet.
WQL lze spustit pomocí nástroje WMI Tester (wbemtest.exe), který je standardně součástí operačního systému Windows. Dotazy WMI lze spouštět také prostřednictvím prostředí Windows PowerShell, VBScript a jazyka C.
Typy dotazů WQL
Dotazy WQL se používají pro získání tří typů informací:
Objektové dotazy: Slouží k získávání informací o systémových prostředcích Windows.
Dotazy událostí: Tyto dotazy se používají pro sledování změn v protokolech událostí, spouštění procesů, stavu služeb, dostupnosti počítačů nebo obsazenosti disku a dalších událostí.
Dotazy na schéma: Používají se pro získání podrobností o struktuře schématu WMI.
Spuštění dotazu
Nyní se podíváme na to, jak spustit objektový dotaz.
Následující postup popisuje, jak zkontrolovat procesy WIN_32 v místním systému.
Nástroj WMI Tester se spustí z příkazového řádku zadáním příkazu wbemtest.exe.
Zobrazí se následující okno.
Pro připojení k jmennému prostoru WMI, který obsahuje třídu, kterou chceme dotazovat (nejčastěji RootCimv2), klikneme na tlačítko „Připojit“.
Pro spuštění dotazu klikneme na tlačítko „Dotaz“, jak je uvedeno níže:
Poté zadáme dotaz, pro který chceme získat informace. Například pro načtení všech procesů běžících na lokálním systému zadáme:
select * From Win32_process
Po kliknutí na tlačítko „Použít“ se zobrazí následující výsledky:
Stejný dotaz, který byl proveden pomocí GUI, lze provést i z příkazového řádku pomocí PowerShell:
V PowerShell pro získání seznamu všech win_32 procesů se používá následující kód:
Get-WmiObject -Class Win32_Process
Pro získání všech parametrů dotazu PowerShell navštivte stránku Správa Microsoft PowerShell.
Pro spuštění tohoto dotazu v jazycích VBScript a C, dokumentační stránka Microsoftu poskytuje kompletní přehled.
Další metodou dotazování na úložiště WMI je příkaz WMIC:
- Spusťte CMD z příkazového řádku.
- Zadejte WMIC a stiskněte enter pro spuštění programu.
- Příkazový řádek se změní na wmic:rootcli>.
Z této výzvy mohou správci spouštět dotazy WMI.
Například pro získání informací o procesoru místního systému bude příkaz vypadat takto:
wmic:rootcli> WMIC CPU
Výsledky/informace se zobrazí v příkazovém řádku.
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
Další informace o aliasech a slovesech WMIC najdete na stránce Microsoft wmic.
Často kladené otázky o WMI
Jaké porty používá WMI?
Používané porty jsou 49152 a 65535. Model DCOM (Distributed Component Object Model), na kterém je WMI postaveno, ve výchozím nastavení používá pro připojení náhodně vybraný port TCP z rozsahu 49152 až 65535.
Je WMI zastaralé?
WMI je stále podporováno. Od systému Windows 10 verze 21H1 a pololetního vydání kanálu 21H1 Windows Server již program příkazového řádku WMI (WMIC) není podporován.
Jaké jsou nástroje pro monitorování WMI?
Pro monitorování WMI je k dispozici mnoho nástrojů. Nejpopulárnější jsou:
SolarWinds WMI Monitor s monitorováním serverů a aplikací
Servisní senzor Paessler WMI s PRTG
Nagios XI
Sapien WMI Explorer
Bezplatné nástroje zahrnují WMI Explorer a Adrem Free WMI Tools.
Jak řešit problémy s WMI?
Při pokusu o přístup k lokálním nebo vzdáleným datům WMI v aplikaci nebo skriptu se mohou objevit chyby, od chybějících tříd až po problémy s přístupem. Řešení těchto chyb najdete v průvodci řešením problémů s WMI od Microsoftu.
Závěr
Windows Management Instrumentation je silný nástroj, který se dá využít k provádění mnoha různých operací souvisejících se systémem Windows. I když se může WMI na první pohled zdát komplikované, může být pro každého, kdo pracuje se systémy Windows, velmi užitečné.