Mester Windows med WMI: En komplett guide

Introduksjon til Windows Management Instrumentation (WMI)

Windows Management Instrumentation (WMI) utgjør rammeverket for administrasjonsinformasjon og operasjoner i Windows-baserte operativsystemer. Det tjener som en sentral kilde for administrasjonsdata, som brukes av forskjellige systemkomponenter og produkter som SCOM (System Center Operations Manager) og Windows Remote Management.

Hva er Windows Management Instrumentation (WMI)?

WMI er en plattform designet for å administrere og overvåke operativsystemet sammen med andre Microsoft-applikasjoner og tjenester på alt fra personlige datamaskiner til servere og andre nettverksenheter. Den tilbyr et omfattende, skalerbart og lett tilgjengelig programmeringsgrensesnitt, som gir programmatisk tilgang til informasjon og tjenester på Microsoft-administrerte maskiner og nettverksenheter.

Denne teknologien er instrumental for å identifisere og overvåke operativsystemer, tjenester, applikasjoner, registerdata og filsysteminformasjon. Den muliggjør også utvikling og styring av skript og programmer som automatiserer administrative oppgaver. WMI benytter seg av programmeringsspråket WQL (Windows Query Language) for å hente informasjon og utføre operasjoner på operativsystemer, maskiner og enheter.

WMI gir også tilgang til PowerShell, et robust og fleksibelt administrasjonsverktøy for Windows som kan brukes til å lage automatiserte skript. I tillegg tillater det utvikling av skreddersydde applikasjoner som utvider funksjonaliteten for administrasjon av Windows-systemer og applikasjoner. WMI er spesielt nyttig for brukere som trenger å overvåke systemtilstand, utføre feilsøking og samle inn ytelsesdata.

Hva er Formålet med WMI?

I et bedriftsnettverk er WMI svært verdifullt, da det effektiviserer driften og administrasjonen av nettverkskomponenter ved å levere data til andre produkter, noe som gir økt funksjonalitet og skalerbarhet. Hovedmålet med WMI er å tilby en enhetlig administrasjonsplattform på tvers av alle aspekter av et Windows-system, inkludert:

  • Operativsystemkomponenter
  • Prosesser og tråder
  • Tjenester
  • Enheter
  • Drivere
  • Applikasjoner
  • Brukerkontoer
  • Sikkerhetsinnstillinger

Ved å tilby en sentralisert tilgang for administrasjon, bidrar WMI til å redusere kostnader og tidsbruk knyttet til drift og utvikling av Windows-systemer. WMI muliggjør også overvåking av systemhendelser og samling av ytelsesdata, som er uvurderlig for feilsøking og trendanalyse over tid. Det er en ideell løsning for administratorer og utviklere som ønsker å automatisere tidkrevende oppgaver og få tilgang til systemdata uten å interagere direkte med operativsystemet.

Fra overvåking av systemytelse til henting av applikasjonsdata, WMI åpner for mange muligheter. Det gir utviklere verktøyene de trenger for å skape smartere applikasjoner, samtidig som IT-administratorer kan fullføre oppgaver mer effektivt. Som en referanseimplementering for tilgang til systeminformasjon er WMI et essensielt verktøy for å håndtere og overvåke Windows-systemer, som brukes av et bredt spekter av tredjepartsprodukter.

Anvendelse av WMI

Windows Management Instrumentation (WMI) er Microsofts implementering av Web-Based Enterprise Management (WBEM), et industriinitiativ for å utvikle standardiserte metoder for å få tilgang til bedriftsstyringsinformasjon. WMI representerer systemer, applikasjoner, nettverk, enheter og andre administrerte komponenter ved hjelp av industristandarden Common Information Model (CIM), som opprettes og vedlikeholdes av DMTF (Distributed Management Task Force).

WMI-designet er fleksibelt og støtter et bredt spekter av administrasjons- og styringsoppgaver, i tillegg til å tilby en arkitektur som kan utvides slik at produsenter kan utvikle nye WMI-leverandører for å støtte nye enheter og applikasjoner.

Andre bruksområder inkluderer:

  • Omfattende administrasjon av Windows-operativsystemet og Microsofts nettverksenheter og tjenester.
  • Muligheten til å koble til eksterne datamaskiner for å få tilgang til WMI-data.
  • Innsamling av systeminformasjon, som hvilke applikasjoner som er aktive og hvilke tjenester som kjører.
  • Henting av maskinvarespesifikasjoner og utføring av handlinger som å slå av eller starte et system på nytt.
  • Start av applikasjoner, samt starte, stoppe og konfigurere tjenester.
  • Utviklere kan bruke dette API-et til å lage skript i Visual Basic eller Windows Scripting Host (WSH).

WMI Arkitektur

WMI (Windows Management Instrumentation) ble introdusert med Windows 2000. Det gir programmerere mulighet til å utvikle administrasjonsprogrammer som kan fungere med alle systemer som støtter WMI.

La oss se nærmere på arkitekturen og terminologien i WMI.

WMI-arkitekturen opererer med et hierarki der et administrert objekt, som en harddisk eller operativsystem, sender data til WMI-infrastrukturen via en leverandør. Leverandøren overfører meldinger mellom WMI og objektet.

En WMI-leverandør består av en DLL og en MOF-fil (Managed Object Format), som overvåker hendelser og data fra objekter. Leverandører er klassifisert etter funksjonaliteten de tilbyr via grensesnittet. Windows inneholder mange innebygde WMI-leverandører, som for eksempel Active Directory, Boot Configuration Data (BCD), Distributed File System (DFS), Event Log, Hyper-V, Win32, Registry og SNMP.

WMI-infrastrukturen, kjent som WMI-tjenesten (winmgmt), består av to hovedkomponenter: WMI Core og WMI Repository. WMI-depotet er en hierarkisk datalagring organisert etter WMI-navneområder, basert på Common Information Model (CIM). WMI-tjenesten etablerer flere navneområder ved oppstart, som root-standard, rootcimv2 og root-abonnement. I tillegg produserer tjenesten et standardsett med klassedefinisjoner, inkludert systemklassene Win32 og WMI. Andre WMI-navneområder kan opprettes av ulike WMI-leverandører, og hvert navneområde inneholder flere WMI-objekter.

WMI-tjenesten fungerer som et bindeledd mellom leverandørene, administrasjonsapplikasjonene og WMI-depotet. Depotet lagrer statiske data, mens de fleste dynamiske data hentes fra leverandøren på forespørsel fra en klient. En WMI-forbruker er en applikasjon eller et skript som kommuniserer med WMI-infrastrukturen ved hjelp av COM API eller Scripting API for WMI. Dette gjør det mulig for administrasjonsprogrammer å hente data, kjøre leverandørmetoder og abonnere på hendelser.

WMI sørger for et standardisert grensesnitt for å hente administrasjonsdata, både lokalt og eksternt. Dette grensesnittet abstraherer fra operativsystemets applikasjonsprogrammeringsgrensesnitt (API), noe som gjør det mulig for apper og skript å samle administrasjonsdata uten å være avhengig av operativsystemets spesifikke API.

Hvordan Utføre en WMI-Spørring?

En av WMI-plattformens styrker er muligheten til å søke i depotet for detaljer om klasser, forekomster eller skjemadata. Disse spørringene kan brukes til å administrere inventaret i lokale og eksterne systemer, operativsystemer, programvare og andre administrative aktiviteter.

Typer av Spørringer

Det finnes hovedsakelig to typer spørringer for å hente informasjon fra WMI-depotet:

Synkron Spørring: Denne type spørring holder kontroll over applikasjonen til spørringen er fullført. Det er en enklere metode sammenlignet med en asynkron tilnærming, men kan fryse applikasjonen ved større søk eller over nettverket.

Asynkron Spørring: Dette er en foretrukken metode når et større datasett skal hentes, da den forhindrer at systemet eller nettverket blir negativt påvirket under prosessen.

WQL (WMI Query Language)

WMI Query Language (WQL) er et populært verktøy for å gjøre spørringer i WMI. WQL deler likhetstrekk med SQL (Structured Query Language), som brukes i databasemiljøer. De mest grunnleggende setningene i WQL er «Velg», «Fra» og «Hvor». En typisk WMI-spørring begynner med å velge alle egenskaper fra en WMI-klasse med kommandoen «Select», hvor en stjerne (“*”) brukes for å velge alle egenskaper. «Fra»-nøkkelordet brukes til å spesifisere WMI-klassen.

WQL kan kjøres gjennom WMI Tester (wbemtest.exe), som er en standardkomponent i Windows-operativsystemet. WMI-spørringer kan også utføres i Windows PowerShell, VBScript og C-språk.

Typer WQL-Spørringer

WQL-spørringer kan brukes til å hente tre ulike typer informasjon:

Objektspørringer: Brukes til å hente informasjon om Windows-systemressurser.

Hendelsesspørringer: Brukes til å spore endringer i hendelseslogger, prosessstart, tjenestestatus og diskplass, blant annet.

Skjemaspørringer: Brukes for å få detaljert informasjon om strukturen til WMI-skjemaet.

Kjøring av en Spørring

La oss se på et eksempel på hvordan man utfører en objektspørring for å sjekke WIN_32-prosesser på et lokalt system:

Åpne WMI Tester ved å skrive «wbemtest.exe» i kommandolinjen.

Klikk på «Koble til» for å koble til WMI-navneområdet du ønsker å spørre fra, som vanligvis er RootCimv2.

Klikk på «Spørring»-fanen for å utføre spørringen:

Skriv inn spørringen du vil utføre, for eksempel for å hente alle prosesser som kjører på systemet:

select * From Win32_process

Klikk på «Bruk» for å se resultatet:

Denne GUI-baserte prosessen kan også utføres gjennom PowerShell ved hjelp av denne kommandoen:

Get-WmiObject -Class Win32_Process

Du finner mer informasjon om PowerShell-parametere på Microsoft PowerShell-administrasjonssiden. For å utføre denne spørringen i VBScript og C-språk, se Microsoft dokumentasjonsside.

WMIC Kommando

En annen metode for å spørre WMI-depotet er gjennom WMIC-kommandoen:

  1. Åpne CMD fra ledeteksten.
  2. Skriv «WMIC» og trykk Enter for å starte programmet.
  3. Ledeteksten endres til «wmic:rootcli>».

Administratorer kan utføre WMI-spørringer fra denne ledeteksten. For å laste CPU-informasjon for et lokalt system, bruk denne kommandoen:

wmic:rootcli> WMIC CPU

Resultatene vises i ledeteksten:

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

Mer informasjon om WMIC Alias og verb finnes på Microsoft wmic.

Ofte Stilte Spørsmål om WMI

Hvilke porter bruker WMI?

WMI bruker portene 49152 til 65535. DCOM, som WMI er basert på, benytter en tilfeldig valgt TCP-port i dette området for forbindelser.

Er WMI utdatert?

WMI er fortsatt støttet. Men fra og med Windows 10, versjon 21H1, og den halvårlige kanalutgivelsen av Windows Server 21H1, støttes ikke lenger kommandolinjeverktøyet WMIC.

Hvilke WMI-overvåkingsverktøy finnes?

Det finnes mange tilgjengelige verktøy for å overvåke WMI, men noen av de mest brukte er:
SolarWinds WMI Monitor med server og applikasjonsmonitor
Paessler WMI Service Sensor med PRTG
Nagios XI
Sapien WMI Explorer
Gratis verktøy som WMI Explorer og Adrem Free WMI Tools.

Hvordan feilsøke WMI-problemer?

Feil kan variere fra manglende klasser til tilgangsproblemer når du prøver å få tilgang til lokale eller eksterne WMI-data. Microsoft har publisert en feilsøkingsveiledning for WMI som kan hjelpe deg med å løse disse problemene.

Konklusjon

Windows Management Instrumentation er et kraftig verktøy for å håndtere et bredt spekter av funksjoner knyttet til Windows-systemer. Selv om det kan virke skremmende i begynnelsen, er WMI et nyttig verktøy for alle som jobber med Windows-systemer.