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