Méthode SWbemServices.InstancesOf

La méthode InstancesOf de l’objet SWbemServices crée un énumérateur qui retourne les instances d’une classe spécifiée en fonction des critères de sélection spécifiés par l’utilisateur. Cette méthode implémente une requête simple. Des requêtes plus complexes peuvent nécessiter l’utilisation de SWbemServices.ExecQuery.

La méthode est appelée en mode semi-synchrone. Pour plus d’informations, consultez Appel d’une méthode.

Pour obtenir une explication de cette syntaxe, consultez Conventions de document pour l’API de script.

Syntaxe

objWbemObjectSet = .InstancesOf( _
  ByVal strClass, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Paramètres

strClass

Obligatoire. Chaîne qui contient le nom de la classe pour laquelle les instances sont souhaitées. Ce paramètre ne peut pas être vide.

iFlags [facultatif]

Ce paramètre détermine le détail de l’énumération de l’appel et si cet appel est retourné immédiatement. La valeur par défaut de ce paramètre est wbemFlagReturnImmediately. Ce paramètre peut accepter les valeurs suivantes.

wbemFlagForwardOnly (32 (0x20))

Provoque le retour d’un énumérateur uniquement vers l’avant. Les énumérateurs de ce type sont généralement beaucoup plus rapides et utilisent moins de mémoire que les énumérateurs conventionnels, mais ils ne permettent pas les appels à SWbemObject.Clone_.

wbemFlagBidirectional (0 (0x0))

Permet à WMI de conserver les pointeurs vers les objets de l’énumération jusqu’à ce que le client libère l’énumérateur.

wbemFlagReturnImmediately (16 (0x10))

Valeur par défaut pour ce paramètre. Cet indicateur entraîne le retour immédiat de l’appel.

wbemFlagReturnWhenComplete (0 (0x0))

Provoque le blocage de cet appel jusqu’à ce que la requête soit terminée. Cet indicateur appelle la méthode en mode synchrone.

wbemQueryFlagShallow (1 (0x1))

Force l’énumération à inclure uniquement les sous-classes immédiates de la classe parente spécifiée.

wbemQueryFlagDeep (0 (0x0))

Valeur par défaut pour ce paramètre. Cette valeur force l’énumération à inclure toutes les classes dans la hiérarchie.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Permet à WMI de retourner des données de modification de classe avec la définition de classe de base. Pour plus d’informations, consultez Localisation des informations de classe WMI.

objWbemNamedValueSet [facultatif]

En règle générale, ceci n’est pas défini. Sinon, il s’agit d’un objet SWbemNamedValueSet dont les éléments représentent les informations de contexte qui peuvent être utilisées par le fournisseur répondant à la demande. Un fournisseur qui prend en charge ou requiert de telles informations doit documenter les noms de valeur reconnus, le type de données de la valeur, les valeurs autorisées et la sémantique.

Valeur retournée

Si elle réussit, la méthode retourne un objet SWbemObjectSet.

Codes d’erreur

Une fois la méthode InstancesOf terminée, l’objet Err peut contenir l’un des codes d’erreur de la liste suivante.

Notes

Un énumérateur retourné avec zéro élément n’est pas une erreur.

wbemErrAccessDenied - 2147749891 (0x80041003)

L’utilisateur actuel n’a pas l’autorisation nécessaire pour voir les instances de la classe spécifiée.

wbemErrFailed - 2147749889 (0x80041001)

Une erreur non spécifiée s’est produite.

wbemErrInvalidClass - 2147749904 (0x80041010)

La classe spécifiée n’est pas valide.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Un paramètre spécifié n’est pas valide.

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

Notes

La méthode Instances_ fonctionne uniquement pour les objets de classe.

Par défaut, InstancesOf effectue une récupération approfondie. Autrement dit, InstancesOf récupère toutes les instances de la ressource managée que vous identifiez et toutes les instances de toutes les sous-classes définies sous la classe cible. Par exemple, le script suivant récupère toutes les ressources modélisées par toutes les classes dynamiques définies sous la classe abstraite CIM_Service.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("CIM_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Object Path: " & objSWbemObject.Path_.Path
Next

Si vous exécutez ce script, vous obtiendrez des informations. Toutefois, ces informations ne seront pas limitées aux services installés sur un ordinateur. Au lieu de cela, il inclut des informations provenant de toutes les classes enfants de CIM_Service, y compris les Win32_SystemDriver et les Win32_ApplicationService.

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_SWbemServices
IID
IID_ISWbemServices

Voir aussi

SWbemServices

SWbemObjectSet