Partager via


Méthode SWbemObjectSet.ItemIndex

La méthode ItemIndex retourne l’objet SWbemObject associé à l’index spécifié dans la collection. L’index indique la position de l’élément au sein de la collection. La numérotation de la collection commence à zéro.

Syntaxe

objWbemObject = .ItemIndex( _
  ByVal lIndex _
)

Paramètres

lIndex

Index de l’élément dans la collection.

Valeur retournée

En cas de réussite, l’objet SWbemObject demandé est retourné.

Codes d’erreur

Une fois la méthode Item terminée, l’objet Err peut contenir l’un des codes d’erreur ci-dessous.

wbemErrFailed – 2147749889 (0x80041001)

Erreur non spécifiée.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Un paramètre non valide a été spécifié. Cette erreur est retournée si un numéro d’index négatif est fourni.

wbemErrOutOfMemory – 2147749894 (0x80041006)

La mémoire disponible est insuffisante pour terminer cette opération.

wbemErrNotFound - 2147749890 (0x80041002)

L’élément demandé est introuvable.

Notes

La méthode ItemIndex permet aux scripts et applications des clients WMI écrits dans n’importe quel langage de manipuler une collection comme un tableau. Cette méthode peut être utilisée avec les collections SWbemObjectSet. Les requêtes, telles que SWbemServices.AssociatorsOf, SWbemServices.ReferencesTo, SWbemServices.InstancesOf ou SWbemServices.ExecQuery retournent des collections SWbemObjectSet. La méthode ItemIndex ne fonctionne pas avec les collections qui ne contiennent pas d’objets SWbemObjects, telles que SWbemMethodSet, SWbemNamedValueSet, SWbemPrivilegeSet, SWbemPropertySet et SWbemQualifierSet.

ItemIndex peut également être utilisé pour obtenir l’instance unique d’une classe singleton.

Exemples

L’exemple de code VBScript suivant interroge une collection de toutes les instances Win32_Process, puis affiche les noms des trois premiers processus.

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & _
    strComputer & "\root\cimv2")

set colProcesses = _
    objWMIService.Execquery("Select * from Win32_Process")
Wscript.Echo  colProcesses.ItemIndex(0).Name
Wscript.Echo  colProcesses.ItemIndex(1).Name
Wscript.Echo  colProcesses.ItemIndex(2).Name

Une seule instance de Win32_OperatingSystem existe pour chaque installation du système d’exploitation. La création du chemin d’accès GetObject pour obtenir l’instance unique est maladroite, de sorte que les scripts énumèrent normalement Win32_OperatingSystem même si une seule instance est disponible. L’exemple de code VBScript suivant montre comment utiliser la méthode ItemIndex pour accéder à Win32_OperatingSystem sans utiliser de boucle For Each.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")

Wscript.Echo "Caption: " & colOperatingSystems.ItemIndex(0).Caption

L’exemple de code VBScript suivant obtient les instances associées à Win32_OperatingSystem, telles que Win32_SystemOperatingSystem.

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & _
    strComputer & "\root\cimv2")

set colOS = _
    objWMIService.Execquery("Select * from Win32_OperatingSystem")
    Wscript.Echo  colOS.ItemIndex(0).Name

set colAssociators = colOS.ItemIndex(0).Associators_
    For Each Associator in colAssociators 
        Wscript.Echo Associator.Path_.RelPath  
    Next

L’exemple de code suivant montre les instances associées à Win32_OperatingSystem.

Windows Server 2008 
    |C:\Windows|\Device\Harddisk0\Partition1
Win32_ComputerSystem.Name="Test1"
Win32_AutochkSetting.SettingID="Windows Server 2008 
    |C:\\Windows|\\Device\\Harddisk0\\Partition1"

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp.h
Bibliothèque de types
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

Voir aussi

SWbemObjectSet