En kort guide om Windows Management Instrumentation (WMI)

Ramverket för ledningsinformation och aktiviteter på Windows-baserade operativsystem kallas Windows Management Instrumentation (WMI).

WMI tillhandahåller även hanteringsdata till andra komponenter i operativsystemet och produkter, såsom SCOM (System Center Operations Manager) eller Windows Remote Management.

Vad är Windows Management Instrumentation (WMI?)

WMI är en plattform för att hantera och övervaka operativsystemet och andra Microsoft-applikationer och tjänster på persondatorer, servrar och andra nätverksenheter.

WMI tillhandahåller ett omfattande, skalbart och lättanvänt programmeringsgränssnitt som ger programmatisk åtkomst till information och tjänster på Microsoft-hanterade datorer och andra nätverksenheter.

Den används för att upptäcka och övervaka operativsystemet, tjänsterna och applikationerna på datorn, såväl som register- och filsystemdata. Det används också för att skapa och hantera skript och program som automatiserar hanteringen och administrationen av datorn.

Den använder programmeringsspråket WQL (Windows Query Language) för att söka information och utföra operationer på operativsystem, datorer och enheter.

Det ger dig också tillgång till PowerShell, ett av de mest kraftfulla och flexibla administrationsverktygen för Windows, som du kan använda för att skapa automatiseringsskript.

Dessutom gör WMI det möjligt för dig att konstruera anpassade applikationer som ger ytterligare funktionalitet för hantering och administration av Windows-system och applikationer.

Användare som behöver övervaka sina maskiners tillstånd, göra grundläggande felsökning och samla in prestandadata kommer att finna WMI praktiskt.

Vad är syftet med WMI?

WMI är användbart i ett Windows-företagsnätverk eftersom det förenklar driften och hanteringen av företagets nätverkskomponenter genom att leverera data till andra produkter för ytterligare förbättring och skalbarhet.

Hela syftet med WMI är att tillhandahålla en enhetlig hanteringsramverkupplevelse över alla aspekter av ett Windows-system, såsom:

  • Operativsystemkomponenter
  • Processer och trådar
  • Tjänster
  • Enheter
  • Förare
  • Ansökningar
  • Användarkonton
  • Säkerhetsinställningar

Syftet med WMI-uppfinningen leder till minskade kostnader och tid i drift och utveckling relaterad till Windows-system. WMI gör det också möjligt för dig att övervaka systemhändelser och samla in prestandadata. Dessa data kan användas för att felsöka problem eller för att spåra trender över tid.

WMI används oftast för att automatisera administrativa sysslor och få tillgång till data utan att ha att göra direkt med operativsystemet. Som ett resultat är WMI ett fantastiskt alternativ för administratörer och mjukvaruutvecklare som behöver automatisera tidskrävande processer.

Allt från att övervaka systemets prestanda till att hämta applikationsdata är möjligt med den. Det gör det möjligt för utvecklare att skapa smartare, mer intelligenta applikationer samtidigt som det säkerställer att IT-administratörer kan utföra sina uppgifter med minimal ansträngning.

WMI tillhandahåller en referensimplementering för åtkomst av systeminformation och är ett nyckelverktyg för att hantera och övervaka Windows-system. Det är hörnstenen för Azure Machine Learning och AzureML, och den används för att driva ett brett utbud av tredjepartsprodukter.

Användning av WMI

Windows Management Instrumentation (WMI) är Microsofts leverans av Web-Based Enterprise Management (WBEM), ett branschinitiativ för att utveckla standardiserade tekniker för att komma åt information om företagsstyrning.

WMI representerar system, applikationer, nätverk, enheter och andra hanterade komponenter som använder industristandarden Common Information Model (CIM). Distributed Management Task Force (DMTF) skapar och underhåller CIM.

WMI-designen är mångsidig och stöder ett brett utbud av administrations- och hanteringsuppgifter, samt tillhandahåller en flexibel och utbyggbar arkitektur som gör det möjligt för tillverkare att skriva nya WMI-leverantörer för att stödja nya enheter, applikationer och andra framsteg.

Andra användningsområden är:

  • Omfattande hantering av Windows operativsystem och Microsofts nätverksenheter och tjänster.
  • Den kan användas för att ansluta fjärrdatorerna för att komma åt WMI-data
  • Upptäcker information om systemet, till exempel vilka program som körs och vilka tjänster som är inställda.
  • För att hämta information om hårdvaruspecifikationer och utföra åtgärder, som att stänga av eller starta om systemet.
  • Starta applikationer, starta, stoppa, konfigurera tjänster och komma åt data.
  • Utvecklare av administrationsapplikationer kan använda detta API för att skapa skript i Visual Basic eller Windows Scripting Host (WSH).

WMI-arkitektur

WMI (Windows Management Instrumentation) är en Microsoft-teknik som ursprungligen presenterades i Windows 2000. Den tillåter programmerare att konstruera hanteringsprogram som fungerar med alla system som stöder WMI.

Låt oss se arkitekturen och terminologin för WMI.

Flödet av WMI-arkitektur startar från Objekt: En komponent som en hårddisk, nätverkskort, operativsystem eller tjänst är ett hanterat objekt (som kan hanteras via WMI). WMI-infrastruktur tar emot data från ett objekt genom en leverantör. Den tillhandahåller och tar emot meddelanden från WMI och lämnar över dem till objektet.

En WMI-leverantör består av en DLL och en MOF-fil (Managed Object Format) som övervakar händelser och data från objekt. WMI kategoriserar leverantörer enligt den funktionalitet som tillhandahålls av leverantörens gränssnitt.

Det finns många inbyggda WMI-leverantörer i Windows, inklusive en Active Directory-leverantör, Boot Configuration Data (BCD) WMI-leverantör, Distributed File System (DFS)-leverantör, Event Log-leverantör, Hyper-V WMI-leverantör, Win32-leverantör, Registry-leverantör, och SNMP-leverantör.

WMI-infrastrukturen är en komponent i Microsoft Windows-operativsystemet som kallas WMI-tjänsten (winmgmt). WMI Core och WMI Repository är de två delarna av WMI-infrastrukturen.

WMI-förrådet är en hierarkisk datalagring organiserad av WMI-namnområden, ofta känd som Common Information Model (CIM). WMI-tjänsten upprättar ett antal namnområden vid systemstart, inklusive root default, rootcimv2 och root-prenumeration.

Dessutom producerar tjänsten en standarduppsättning klassdefinitioner, som inkluderar systemklasserna Win32 och WMI. Andra WMI-namnområden kan skapas av ytterligare WMI-leverantörer, och varje namnområde innehåller flera WMI-objekt.

WMI-tjänsten fungerar som en mellanhand mellan leverantörerna, hanteringsapplikationerna och WMI-förrådet. Endast statisk data om objekt lagras i förvaret, till exempel de klasser som definieras av leverantörer. WMI hämtar mest data dynamiskt från leverantören när en klient begär det.

En WMI-konsument är en hanteringsapplikation eller ett skript som kommunicerar med WMI-infrastrukturen. Genom att använda COM API för WMI eller Scripting API för WMI kan ett hanteringsprogram fråga, specificera data, köra leverantörsmetoder och prenumerera på händelser.

WMI skapar ett standardiserat gränssnitt för att fjärr- och lokalt hämta hanteringsdata. Det enhetliga gränssnittet abstraherar från operativsystemets applikationsprogrammeringsgränssnitt (API). Detta gör att appar och skript kan samla in hanteringsdata utan att behöva känna till operativsystemets API.

Hur kör man en WMI-fråga?

En egenskap hos WMI-plattformens mångsidighet är möjligheten att fråga i dess arkiv för att få detaljer om klass-, instans- eller schemadata. Dessa mätvärden är kopplade till inventeringen av lokala och avlägsna system, operativsystem, programvara och andra administrativa aktiviteter.

Typ av frågor

I stort sett finns det två typer av frågor som används för att hämta information från WMI-förvaret:

Synchronous Query: Det är en fråga som håller kontroll över din applikations funktion under hela frågan. Det är enklare än ett asynkront samtal eftersom det bara tar ett gränssnittsanrop. För stora sökningar eller nätverksbaserade förfrågningar kan det dock frysa din ansökan.

Asynkron fråga: När hastigheten på ett system eller nätverk kommer att påverkas av att fråga efter en stor grupp data, är en asynkron fråga att föredra att använda.

WQL (WMI Query Language)

En av de populära metoderna för att fråga WMI är WMI Query Language.

SQL (Structured Query Language) används i databasmiljön och WQL används i WMI. De har båda en liknande syntaxstruktur.

Välj, Från och Var är de grundläggande WQL-satserna som används för att starta frågan.

En typisk WMI-fråga börjar med att välja alla egenskaper från en WMI-klass med kommandot ”Select”. Asterisken (”*”) används för att välja varje egenskap från en WMI-klass. Man kan använda nyckelordet ”Från” för att ange vilken WMI-klass som ska frågas efter att ha valt egenskaperna (en eller flera egenskaper, eller alla). Du kan kontrollera SQL-fuskbladet för den exakta syntaxen.

WQL kan köras via WMI Tester (wbemtest.exe), som som standard installeras med Windows operativsystem. WMI-frågor kan också köras via Windows PowerShell, VBScript och C-språk.

Typ av WQL-frågor

WQL-frågorna används för att få tre olika typer av information.

Objektfrågor: Information om Windows-systemresurser kan hämtas med dessa frågor.

Händelsefrågor: Dessa frågor används för att spåra ändringar i händelseloggar, initiering av processer, status för tjänster, tillgängligheten för datorer eller mängden ledigt skivutrymme, bland andra enheter eller händelser.

Schemafrågor: Dessa frågor används för att få detaljer om strukturen för WMI-schemat.

Kör en fråga

Låt oss se hur man kör en objektfråga.

Följande metod anger hur man kontrollerar WIN_32-processer på ett lokalt system.

Verktyget WMI Tester exekveras via kommandoraden genom att skriva in wbemtest.exe.

Följande fönster kommer att dyka upp.

För att ansluta till WMI-namnområdet som innehåller klassen du vill fråga (RootCimv2 i de flesta fall): klicka på fliken Connect.

För att köra frågan, klicka på fliken ”Fråga” som visas nedan:

Ange sedan den fråga som du vill hämta informationen för. Låt oss till exempel hämta alla processer som körs på det lokala systemet genom att köra:

select * From Win32_process

Efter att ha klickat på appliceringsfliken får du följande resultat

Ovanstående GUI-baserade körning kan också utföras vid kommandotolken via PowerShell:

I PowerShell-plattformen, för att få listan över alla win_32-processer, används följande kod:

Get-WmiObject -Class Win32_Process

För att få alla PowerShell-frågeparametrar, besök Microsoft PowerShell Management sida.

För att köra den här frågan i VBScript och C-språk, Microsofts dokumentationssida skulle ge fullständiga insikter.

En annan metod för att fråga WMI-förvaret är genom WMIC-kommandot:

  • Kör CMD från en kommandotolk
  • Skriv WMIC och enter för att starta programmet
  • Sedan ändras kommandotolken till wmic:rootcli>

Administratörer kan köra WMI-frågor från denna prompt.

Till exempel, för att ladda CPU-information för ett lokalt system, kommer kommandot att vara:

wmic:rootcli> WMIC CPU

Resultaten/informationen kommer att visas i kommandotolken.

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

För mer information om WMIC Alias ​​och verb, besök Microsoft wmic.

Vanliga frågor om WMI

Vilka portar används i WMI?

Portarna som används är 49152 och 65535. Distributed Component Object Model (DCOM), som WMI är baserad på, använder en slumpmässigt vald TCP-port för anslutningar mellan intervallet 49152 och 65535 som standard.

Är WMI utfasad?

WMI stöds fortfarande. Från och med Windows 10, version 21H1 och den halvårliga kanalversionen av Windows Server 21H1 stöds inte längre WMI-kommandoradsprogrammet (WMIC).

Vad är WMI-övervakningsverktyg?

Det finns många tillgängliga verktyg för att övervaka WMI. Men en handfull är särskilt populära:
SolarWinds WMI Monitor med Server och Application Monitor
Paessler WMI Service Sensor med PRTG
Nagios XI
Sapien WMI Explorer
Gratis verktyg är WMI Explorer, Adrem Free WMI Tools

Hur man felsöker WMI-problem

Du kan se fel som sträcker sig från saknade klasser till åtkomstöverträdelser när du försöker komma åt lokala WMI-data eller fjärrdata i en applikation eller ett skript. Kontrollera Microsoft WMI felsökningsguide för att få lösningar på sådana fel.

Slutsats

I allmänhet är Windows Management Instrumentation ett starkt verktyg som kan användas för att hantera ett brett utbud av olika Windows-systemrelaterade funktioner. WMI kan vara ett mycket användbart verktyg för alla som har att göra med Windows-system, trots att det från början kan verka skrämmande.