Dela via


about_WMI

Kort beskrivning

Windows Management Instrumentation (WMI) använder Common Information Model (CIM) för att representera system, program, nätverk, enheter och andra hanterbara komponenter i det moderna företaget.

Lång beskrivning

Windows Management Instrumentation (WMI) är Microsofts implementering av Web-Based Enterprise Management (WBEM), branschstandarden.

Klassisk WMI använder DCOM för att kommunicera med nätverksenheter för att hantera fjärrsystem. Windows PowerShell 3.0 introducerar en CIM-providermodell som använder WinRM för att ta bort beroendet av DCOM. Den här CIM-providermodellen använder också nya WMI-provider-API:er som gör det möjligt för utvecklare att skriva Windows PowerShell-cmdletar i inbyggd kod (C++).

Blanda inte ihop WMI-leverantörer med Windows PowerShell-leverantörer. Många Windows-funktioner har en associerad WMI-provider som exponerar deras hanteringsfunktioner. För att hämta WMI-providrar kör du en WMI-fråga som hämtar instanser av WMI-klassen __Provider , till exempel följande fråga.

Get-WmiObject -Class __Provider

TRE KOMPONENTER I WMI

Följande tre komponenter i WMI interagerar med Windows PowerShell: Namnområden, providers och klasser.

WMI-namnområden organiserar WMI-providers och WMI-klasser i grupper med relaterade komponenter. På så sätt liknar de .NET Framework-namnområden. Namnområden är inte fysiska platser, men liknar mer logiska databaser. Alla WMI-namnområden är instanser av systemklassen __Namespace. WMI-standardnamnområdet är root/cimv2 (sedan Microsoft Windows 2000). Om du vill använda Windows PowerShell för att hämta WMI-namnområden i den aktuella sessionen använder du ett kommando med följande format.

Get-WmiObject -Class __Namespace

Om du vill hämta WMI-namnområden i andra namnområden använder du parametern Namnområde för att ändra sökplatsen. Följande kommando hittar WMI-namnområden som finns i root/cimv2/Applications namnområdet.

Get-WmiObject -Class __Namespace -Namespace root/cimv2/applications

WMI-namnområden är hierarkiska. Därför måste du utföra en rekursiv fråga som börjar på rotnamnområdet för att hämta en lista över alla namnområden i ett visst system.

WMI-leverantörer exponerar information om hanterbara Windows-objekt. En provider hämtar data från en komponent och skickar dessa data via WMI till ett hanteringsprogram, till exempel Windows PowerShell. De flesta WMI-leverantörer är dynamiska leverantörer, vilket innebär att de hämtar data dynamiskt när de begärs via hanteringsprogrammet.

HITTA WMI-KLASSER

I en standardinstallation av Windows 8 finns det fler än 1 100 WMI-klasser i root/cimv2. Med så här många WMI-klasser blir utmaningen att identifiera lämplig WMI-klass som ska användas för att utföra en specifik uppgift. Windows PowerShell 3.0 innehåller två sätt att hitta WMI-klasser som är relaterade till ett specifikt ämne.

Om du till exempel vill hitta WMI-klasser i root/cimv2 WMI-namnområdet som är relaterade till diskar kan du använda en fråga som den som visas här.

Get-WmiObject -List *disk*

Om du vill hitta WMI-klasser som är relaterade till minne kan du använda en fråga som den som visas här.

Get-WmiObject -List *memory*

CIM-cmdletarna ger också möjlighet att identifiera WMI-klasser. Det gör du genom att använda cmdleten Get-CimClass . Kommandot som visas här visar WMI-klasser relaterade till video.

Get-CimClass *video*

Flikexpansion fungerar när WMI-namnrymder ändras, och därför kan du enkelt identifiera under-WMI-namnområden med hjälp av flikexpansion. I följande exempel visar cmdleten Get-CimClass WMI-klasser relaterade till energisparinställningar. Du hittar det genom att root/cimv2 skriva namnområdet och sedan trycka på tabbtangenten flera gånger tills power-namnområdet visas. Här är kommandot:

Get-CimClass *power* -Namespace root/cimv2/power