Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
WMI biedt verschillende technieken voor het ophalen en bewerken van WMI-klasse- en exemplaargegevens, met behulp van Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) en C++.
De volgende tabel bevat de onderwerpen die de technieken bespreken voor het ophalen en bewerken van WMI-klasse- en instantiegegevens.
| Onderwerp | Beschrijving |
|---|---|
| WMI-klasse of instantiegegevens ophalen | Gegevens ophalen en instellen van en naar de WMI-gegevensopslagplaats. |
| Het Wijzigen van een Exemplarisch Eigenschap | Wijzig de informatie in de instantie nadat deze is opgehaald. |
| de overerving van een instantie wijzigen | Wijzig de bovenliggende klasse van een instantie. |
| een methode wijzigen | Wijzig de parameters van een exemplaar. |
| WMI- opsommen | WMI-objecten opsommen. |
| query's uitvoeren op WMI- | WMI-objecten opvragen. |
| een methode aanroepen | Gebruik gekoppelde methoden die zijn gemaakt door Microsoft of andere ontwikkelaars van derden om WMI-objecten verder te bewerken, of beïnvloed het object direct dat het WMI-object vertegenwoordigt. |
| een verzameling openen | Verzamelingen in script opsommen. |
Gegevens bewerken met VBScript
U kunt de directe toegangsmethode gebruiken om rechtstreeks toegang te krijgen tot de WMI-eigenschappen van een WMI-klasse of exemplaar op een SWbemObject, in plaats van via de eigenschapsverzameling van dat object. U kunt ook methoden voor dat object uitvoeren in de systeemeigen stijl van de programmeertaal in plaats van de SWbemServices.ExecMethod aanroep. De methode Create in Win32_Process had bijvoorbeeld drie parameters in Windows 2000, maar heeft vier parameters in Windows Server 2003.
Met directe toegang kunt u WMI-eigenschappen en -methoden behandelen alsof het automatiseringseigenschappen en -methoden van SWbemObjectzijn.
In het volgende voorbeeld ziet u hoe u toegang krijgt tot een eigenschap.
VolumeName = MyDisk.Properties_("VolumeName")
In het volgende voorbeeld kunt u zien hoe u toegang krijgt tot een eigenschap wanneer u directe toegang hebt.
VolumeName = MyDisk.VolumeName
Het koppelen van objecten is ook acceptabel.
In het volgende voorbeeld ziet u hoe u toegang krijgt tot een eigenschap van een object dat is ingesloten in een ander object.
value = MyComputer.MyDisk.VolumeName
In het volgende voorbeeld ziet u hoe u toegang krijgen tot een eigenschap met een matrixsubscript-notatie.
valueOfElement = MyDisk.MyArrayProperty(3)
In het volgende VBScript-codevoorbeeld wordt getoond hoe u een instantie van de invoerparameters voor de methode Create in de klasse Win32_Process als een SWbemObjectmaakt, de invoereigenschappen invult en vervolgens de methode Create uitvoert met behulp van SWbemServices.ExecMethod.
De eigenschap SWbemObject.Methods_ retourneert een SWbemMethodSet verzameling van de Win32_Process methoden. De leden van de methodeset zijn SWbemMethod objecten en SWbemMethod.InParameters retourneert de invoerparameters voor de methode Create. De vereiste CommandLine invoerparameter is ingesteld op 'calc.exe'. De methode wordt vervolgens uitgevoerd door SWbemServices.ExecMethod-, wat resulteert in het starten van een calc.exe proces.
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
In het volgende codevoorbeeld ziet u hoe u de vorige bewerking uitvoert met behulp van directe toegang.
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
Zie Een providermethode aanroepen en Scripting met SWbemObjectvoor meer informatie.