Bearbeiten von Klassen- und Instanzinformationen
WMI bietet eine Vielzahl von Techniken zum Abrufen und Bearbeiten von WMI-Klassen und Instanzinformationen mithilfe von Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) und C++.
In der folgenden Tabelle sind die Themen aufgeführt, in denen die Techniken zum Abrufen und Bearbeiten der WMI-Klasse und Instanzinformationen erläutert werden.
Thema | BESCHREIBUNG |
---|---|
Abrufen von WMI-Klassen- oder -Instanzdaten | Abrufen und Festlegen von Daten aus und in das WMI-Informationsrepository. |
Ändern einer Instanzeigenschaft | Ändern Sie die Informationen im Instanz nach dem Abrufen. |
Ändern der Vererbung einer Instanz | Ändern Sie die übergeordnete Klasse eines Instanz. |
Ändern einer Methode | Ändern Sie die Parameter einer Instanz. |
WMI-Enumeration | Auflisten von WMI-Objekten. |
Abfragen von WMI | Abfragen von WMI-Objekten. |
Aufrufen einer Methode | Verwenden Sie zugeordnete Methoden, die von Microsoft oder anderen Drittanbieterentwicklern erstellt wurden, um WMI-Objekte weiter zu bearbeiten oder sich direkt auf das Objekt zu auswirken, das das WMI-Objekt darstellt. |
Zugreifen auf eine Sammlung | Sammlungen im Skript auflisten. |
Bearbeiten von Daten mit VBScript
Sie können den direkten Zugriff verwenden, um auf die WMI-Eigenschaften einer WMI-Klasse oder -Instanz zuzugreifen, direkt auf einem SWbemObject anstatt über die Eigenschaft Collection dieses Objekts. Sie können Methoden auch für dieses Objekt im nativen Stil der Programmiersprache ausführen, anstatt den Aufruf SWbemServices.ExecMethod zu verwenden. Beispielsweise verfügte die Methode Create in Win32_Process in Windows 2000 über drei Parameter, in Windows Server 2003 jedoch über vier Parameter.
Mithilfe des direkten Zugriffs können Sie WMI-Eigenschaften und -Methoden so behandeln, als wären sie Automatisierungseigenschaften und -Methoden von SWbemObject.
Im folgenden Beispiel wird der Zugriff auf eine Eigenschaft veranschaulicht.
VolumeName = MyDisk.Properties_("VolumeName")
Das folgende Beispiel zeigt, wie Sie auf eine Eigenschaft zugreifen können, wenn Sie über direkten Zugriff verfügen.
VolumeName = MyDisk.VolumeName
Die Verkettung von Objekten ist ebenfalls akzeptabel.
Das folgende Beispiel zeigt, wie Sie auf eine Eigenschaft eines Objekts zugreifen, das in ein anderes Objekt eingebettet ist.
value = MyComputer.MyDisk.VolumeName
Im folgenden Beispiel wird gezeigt, wie Sie auf eine Eigenschaft mit einer Array-Index-Schreibweise zugreifen.
valueOfElement = MyDisk.MyArrayProperty(3)
Im folgenden VBScript-Codebeispiel wird gezeigt, wie Sie eine Instanz der Eingabeparameter für die Methode Create in der Klasse Win32_Process als SWbemObject erstellen, die Eingabeeigenschaften auffüllen und dann die Methode Create mit SWbemServices.ExecMethod ausführen.
Die Eigenschaft SWbemObject.Methods_ gibt eine Sammlung SWbemMethodSet der Methoden Win32_Process zurück. Die Member des Methodensatzes sind Objekte SWbemMethod und SWbemMethod.InParameters gibt die Eingabeparameter für die Methode Create zurück. Der erforderliche Eingabeparameter CommandLine ist auf "calc.exe" festgelegt. Die Methode wird dann von SWbemServices.ExecMethod ausgeführt, was zum Start eines Prozesses calc.exe führt.
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
Das folgende Codebeispiel zeigt, wie Sie den vorherigen Vorgang mithilfe des direkten Zugriffs ausführen.
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
Weitere Informationen finden Sie unter Aufrufen einer Anbietermethode und Skripterstellung mit SWbemObject.