WMI

Windows Management Instrumentation (WMI) betyder bogstaveligt talt Windows Management Instrumentation . WMI er en af ​​de underliggende teknologier til central styring og overvågning af driften af ​​forskellige dele af en computerinfrastruktur, der kører på Windows-platformen.

Oversigt

WMI-teknologien er en udvidet og tilpasset Windows-implementering af WBEM- standarden ( på engelsk ), vedtaget af mange virksomheder, som er baseret på ideen om at skabe en universel grænseflade til overvågning og styring af forskellige systemer og komponenter i en distribueret virksomhedsinformationsmiljø ved hjælp af objektorienterede ideologier og HTML-protokoller og XML.

Datastrukturen i WBEM er baseret på Common Information Model (CIM), som implementerer en objektorienteret tilgang til at repræsentere systemkomponenter. CIM er en udvidelsesmodel, der tillader programmer, systemer og drivere at tilføje deres egne klasser, objekter, metoder og egenskaber til den.

WMI, baseret på CIM, er også et åbent, samlet system af grænseflader til at få adgang til alle operativsystemindstillinger, enheder og applikationer, der kører på det.

Et vigtigt træk ved WMI er, at objekterne, der er gemt i det, svarer til dynamiske ressourcer, det vil sige, at parametrene for disse ressourcer ændres konstant, så parametrene for sådanne objekter gemmes ikke permanent, men oprettes efter anmodning fra dataforbrugeren . Ejendomslageret af WMI-objekter kaldes et lager og er placeret i systemmappen i Windows-operativsystemet:

% SystemRoot% \ System32 \ WBEM \ Repository

Klasser, begivenheder og WMI-sikkerhed

Da WMI er bygget på en objektorienteret basis, er alle operativsystemdata repræsenteret som objekter og deres egenskaber og metoder.

Alle klasser er grupperet i navnerum, der er hierarkisk ordnet og logisk relateret til hinanden af ​​en bestemt teknologi eller kontrolområde. WMI har ét rodnavneområde, Root, som igen har 4 underrum: CIMv2, Default, Security og WMI.

Klasser har egenskaber og metoder og er hierarkisk afhængige af hinanden, det vil sige, at efterkommerklasser kan arve eller tilsidesætte egenskaberne for overordnede klasser, samt tilføje deres egne egenskaber.

Klasseegenskaber bruges til entydigt at identificere en forekomst af en klasse og til at beskrive tilstanden af ​​den ressource, der bruges. Typisk er alle klasseegenskaber skrivebeskyttede, selvom nogle af dem kan ændres ved en bestemt metode. Klassemetoder giver dig mulighed for at udføre handlinger på en administreret ressource.

Hver klasseinstans kan tilgås af en fuld sti, som har følgende struktur:

[\\ Computernavn \ NameSpace ][ : Klassenavn ][ . KeyProperty1 = Value1 ] [ , KeyProperty2 = Value2 ] ] hvor ComputerName er navnet computeren . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hvorved det er identificeret .

Et eksempel på adgang til en proces ved navn "Calc.exe", der kører på den lokale maskine:

\\ . \ CIMv2 : Win32_Process . Navn = "Calc.exe"

Forekomster af klasser kan generere begivenheder, som du kan abonnere på. Når en hændelse opstår, opretter WMI automatisk en forekomst af den klasse, som hændelsen svarer til. Det er praktisk at bruge en sådan mekanisme til at udføre en bestemt kommando, når en bestemt hændelse opstår, det vil sige at overvåge tilstanden af ​​operativsystemobjekter.

Generel sikkerhed i WMI er implementeret på operativsystemniveau, og yderligere sikkerhedspolitik er baseret på DCOM-navneområdet og protokolniveauerne. Det vil sige, at hvis brugeren ikke har ret til at foretage en handling gennem operativsystemet, vil han heller ikke være i stand til at gøre det gennem WMI. Hvis brugeren får en eller anden form for rettighed i operativsystemet, så betyder det ikke, at denne rettighed også vil være i WMI, da WMI har yderligere sikkerhedsindstillinger på navnerumsniveau.

Hvert operativsystemobjekt har sin egen sikkerhedsbeskrivelse (SD) med sin egen adgangsliste (ACL), som viser brugeridentifikatorer (SID) og deres privilegier. Hvert navneområde kan have sit eget SD med sin egen ACL, hvor brugere kan tildeles tilladelser til at læse data, udføre metoder, skrive klasser og data og andre. Yderligere tilladelsesoplysninger gemmes i WMI-lageret. Separate klasser fra navneområder har ikke deres egne sikkerhedserklæringer, de arver dem fra deres navneområde.

Som standard har computeradministratoren fulde rettigheder til at bruge WMI, og andre brugere kan kun kalde metoder, læse data og skrive forekomster af WMI-udbyderklasser til lageret.

For at få adgang til WMI-infrastrukturen bruges DCOM-protokollen, hvorigennem brugeren opretter forbindelse til WMI. Efterligningen og godkendelsesmekanismerne i DCOM-protokollen bruges til at bestemme, hvilke rettigheder den tilsluttede bruger vil have.

Efterligningsniveauer kan have følgende værdier:

Anonym Anonym WMI-objekt kan ikke få brugeroplysninger - ingen adgang givet af denne type
Identificere Identifikation WMI-objekt anmoder om brugerens adgangstoken - adgang gives kun lokalt
efterligne personificering WMI-objektet har samme rettigheder som brugeren - det anbefalede niveau for udførelse af kommandoer på en fjerncomputer
delegeret Delegation Et WMI-objekt kan få adgang til et andet WMI-objekt på vegne af en bruger - ikke et anbefalet niveau, da kommandoer kan udføres eksternt gennem en kæde af flere computere

Godkendelsesniveauer (ægthed) kan have følgende værdier:

Ingen Mangler Ingen godkendelse
Standard Standard Standard sikkerhedsindstillinger, der er indstillet af kommandoens målcomputer
Opret forbindelse Forbindelse Kontroller kun under tilslutning til målcomputeren, ingen kontrol under drift
opkald Opkald Godkendelse Ved hver anmodning til målcomputeren signeres pakkehovederne, men indholdet er ikke krypteret
pkt Pakke Godkendelse af alle pakker til kommandoens målcomputer, pakkeoverskrifter er signeret, men indholdet er ikke krypteret
PktIntegritet Pakkeintegritet Autentificering og integritet af alle pakker til kommandomålcomputeren, pakkeoverskrifter er signeret, men indholdet er ikke krypteret
PktPrivatliv Pakkebeskyttelse Autentificering og integritet af alle pakker til målcomputeren - kommandoer, overskrifter og indhold af pakkerne er signeret og krypteret

WMI-værktøjer

wmimgmt.msc  - Et MMC-snap-in til konfiguration af WMI på den lokale computer.

winmgmt.exe  er et konsolbaseret WMI-administrationsværktøj til den lokale computer.

wbemtest.exe  er et grafisk værktøj til at interagere med WMI-strukturen på en lokal eller fjerncomputer.

wmic.exe  er et konsolværktøj til at interagere med WMI-strukturen på en lokal eller fjerncomputer.

mofcomp.exe  er en MOF-compiler til udvidelse af WMI-rammeværket, styring af WMI-klassebiblioteket og gendannelse af repository.

WMI forespørgselssprog

For at få adgang til WMI-objekter bruges et specifikt forespørgselssprog WMI Query Language (WQL), som er en af ​​varianterne af SQL. Dens største forskel fra ANSI SQL er umuligheden af ​​at ændre data, det vil sige ved hjælp af WQL er kun datavalg ved hjælp af SELECT-kommandoen muligt. Ud over begrænsninger for at arbejde med objekter, understøtter WQL ikke operatører såsom DISTINCT, JOIN, ORDER, GROUP, matematiske funktioner. IS- og NOT IS-konstruktionerne bruges kun i kombination med NULL-konstanten.

WQL-forespørgsler bruges normalt i scripts, men de kan også testes i Wbemtest-programmet og i Wmic-konsolværktøjet (wmic-værktøjet kræver ikke, at du skriver SELECT-nøgleordet og vælg felter)

Referencer

Se også