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.