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-providers med Windows PowerShell providers. Många Windows-funktioner har en associerad WMI-provider som exponerar deras hanteringsfunktioner. Hämta WMI-providers genom att köra en WMI-fråga som hämtar instanser av __Provider WMI-klass, 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, utan mer logiska databaser. Alla WMI-namnområden är instanser av __Namespace-systemklassen. 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 namnområdet Root/Cimv2/Applications.

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

WMI-namnområden är hierarkiska. Därför kräver hämtning av en lista över alla namnområden i ett visst system att du utför en rekursiv fråga som börjar i rotnamnområdet.

WMI-providers visar 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 WMI-namnområdet root\CIMV2 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, till exempel 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 är det enkelt att identifiera under-WMI-namnområden med hjälp av flikexpansion. I följande exempel visar cmdleten Get-CimClass WMI-klasser relaterade till energiinställningar. Om du vill hitta den skriver du root/CIMV2/ namnområdet och trycker sedan på tabbtangenten flera gånger tills power-namnområdet visas. Här är kommandot:

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