Dela via


Manipulera klass- och instansinformation

WMI tillhandahåller en mängd olika tekniker för att hämta och manipulera WMI-klass- och instansinformation med hjälp av Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) och C++.

I följande tabell visas de ämnen som beskriver teknikerna för att hämta och manipulera WMI-klass och instansinformation.

Ämne Beskrivning
Hämtar en WMI-klass eller instansdata Hämta och ange data från och till WMI-informationslagringsplatsen.
Ändra en instansegenskap Ändra informationen i instansen efter att den har hämtats.
Ändra arv av en instans Ändra den överordnade klassen för en instans.
Ändra en metod Ändra parametrarna för en instans.
räkna upp WMI- Räkna upp WMI-objekt.
Förfrågan mot WMI Hämta WMI-objekt.
anropar en metod Använd associerade metoder som skapats av Microsoft eller andra tredjepartsutvecklare för att ytterligare manipulera WMI-objekt, eller annars påverka det objekt som WMI-objektet representerar direkt.
åtkomst till en samling Räkna upp samlingar i skript.

 

Manipulera data med VBScript

Du kan använda direktåtkomst för att komma åt WMI-egenskaperna för en WMI-klass eller instans direkt på en SWbemObject-i stället för via egenskapen samling för objektet. Du kan också köra metoder på objektet i programmeringsspråkets interna format i stället för att använda SWbemServices.ExecMethod-anrop. Till exempel hade metoden Create i Win32_Process tre parametrar i Windows 2000 men har fyra parametrar i Windows Server 2003.

Med direkt åtkomst kan du behandla WMI-egenskaper och -metoder som om de vore automatiseringsegenskaper och metoder för SWbemObject.

I följande exempel visas hur man kommer åt en egenskap.

VolumeName = MyDisk.Properties_("VolumeName")

I följande exempel visas hur du kan komma åt en egenskap när du har direkt åtkomst.

VolumeName = MyDisk.VolumeName

Länkning av objekt är också acceptabelt.

I följande exempel visas hur du kommer åt en egenskap för ett objekt som är inbäddat i ett annat objekt.

value = MyComputer.MyDisk.VolumeName

I följande exempel visas hur du kommer åt en egenskap med arrayens hakparentesnotation.

valueOfElement = MyDisk.MyArrayProperty(3)

Följande VBScript-kodexempel visar hur du skapar en instans av indataparametrarna till metoden Create i klassen Win32_Process som en SWbemObject-, fyller i indataegenskaperna och kör sedan metoden Skapa med hjälp av SWbemServices.ExecMethod.

Egenskapen SWbemObject.Methods_ returnerar en SWbemMethodSet- samling av de Win32_Process metoderna. Medlemmarna i metoduppsättningen är SWbemMethod objekt och SWbemMethod.InParameters returnerar indataparametrarna för metoden Create. Den obligatoriska inparametern för kommandorad är inställd på "calc.exe". Metoden körs sedan av SWbemServices.ExecMethod, vilket resulterar i att en calc.exe process startas.

set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid

I följande kodexempel visas hur du utför den tidigare åtgärden med direkt åtkomst.

set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid

Mer information finns i Anropa en providermetod och skript med SWbemObject.