Manipulation des informations relatives aux classes et aux instances

WMI fournit diverses techniques pour récupérer et manipuler les informations relatives aux classes et aux instances WMI via Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) et C++.

Le tableau suivant liste les rubriques qui décrivent les techniques de récupération et de manipulation des informations relatives aux classes et aux instances WMI.

Rubrique Description
Extraction de données de classe ou d’instance WMI Extrayez et définissez des données en provenance et à destination du dépôt d’informations WMI.
Modification d’une propriété d’instance Changez les informations de l’instance après leur extraction.
Changer l’héritage d’une instance Changez la classe parente d’une instance.
Modification d’une méthode Modifiez les paramètres d’une instance.
Énumération de WMI Énumérez les objets WMI.
Interrogation de WMI Interrogez les objets WMI.
Appel d’une méthode Utilisez les méthodes associées créées par Microsoft ou d’autres développeurs tiers pour manipuler davantage les objets WMI, ou modifiez directement l’objet représenté par l’objet WMI.
Accès à une collection Énumérez les collections du script.

 

Manipulation de données à l’aide de VBScript

Vous pouvez utiliser l’accès direct pour accéder aux propriétés WMI d’une classe ou d’une instance de WMI directement sur SWbemObject, au lieu d’utiliser la propriété collection de cet objet. Vous pouvez également exécuter des méthodes sur cet objet dans le style natif du langage de programmation au lieu d’utiliser l’appel de SWbemServices.ExecMethod. Par exemple, la méthode Create dans Win32_Process avait trois paramètres dans Windows 2000, mais en a quatre dans Windows Server 2003.

En utilisant l’accès direct, vous pouvez traiter les propriétés et méthodes WMI comme s’il s’agissait des propriétés et méthodes d’automatisation de SWbemObject.

L’exemple suivant montre comment accéder à une propriété.

VolumeName = MyDisk.Properties_("VolumeName")

L’exemple suivant montre comment accéder à une propriété quand vous disposez d’un accès direct.

VolumeName = MyDisk.VolumeName

Le chaînage d’objets est également acceptable.

L’exemple suivant montre comment accéder à une propriété d’un objet incorporé dans un autre objet.

value = MyComputer.MyDisk.VolumeName

L’exemple suivant montre comment accéder à une propriété avec une notation d’indice de tableau.

valueOfElement = MyDisk.MyArrayProperty(3)

L’exemple de code VBScript suivant montre comment générer une instance des paramètres d’entrée pour la méthode Create dans la classe Win32_Process en tant que SWbemObject, renseigner les propriétés d’entrée, puis exécuter la méthode Create via SWbemServices.ExecMethod.

La propriété SWbemObject.Methods_ retourne une collection SWbemMethodSet des méthodes Win32_Process. Les membres de la méthode définie sont des objets SWbemMethod. SWbemMethod.InParameters retourne les paramètres d’entrée de la méthode Create. Le paramètre d’entrée CommandLine obligatoire a la valeur « calc.exe ». La méthode est ensuite exécutée par SWbemServices.ExecMethod, ce qui entraîne le lancement d’un processus calc.exe.

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

L’exemple de code suivant montre comment effectuer l’opération précédente à l’aide de l’accès direct.

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

Pour plus d’informations, consultez Appel d’une méthode de fournisseur et Script avec SWbemObject.