Méthode SWbemServicesEx.Put

La méthode Put de l’objet SWbemServicesEx enregistre l’objet dans l’espace de noms lié à l’objet et retourne un objet SWbemObjectPath qui contient le chemin de l’objet dans lequel les données ont été écrites.

Cette méthode est appelée en mode semi-synchronisé. 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

objObjectPath = .Put( _
  ByVal objWbemObject, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Paramètres

objWbemObject

Obligatoire. Nouvel objet à placer dans l’espace de noms. Il peut s’agir d’un objet nouvellement créé ou d’un objet modifié.

iFlags [facultatif]

Ce paramètre détermine si l’appel crée ou met à jour l’objet et si l’appel retourne immédiatement. Ce paramètre peut accepter les valeurs suivantes.

wbemChangeFlagUpdateCompatible (0 (0x0))

Permet à une classe d’être mise à jour s’il n’existe aucune classe dérivée et qu’il n’y a pas d’instances pour cette classe. Cela permet également les mises à jour dans tous les cas si les modifications ont été apportées uniquement à des qualificateurs qui ne sont pas importants (par exemple, le qualificateur Description). Il s’agit du comportement par défaut de cet appel et est utilisé pour la compatibilité avec les versions précédentes de WMI. Si la classe comprend des instances, la mise à jour échouera.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Autorise les mises à jour des classes, même s’il existe des classes enfants, lorsque la modification n’entraîne aucun conflit avec les classes enfants. Vous pouvez utiliser cet indicateur lors de l’ajout d’une nouvelle propriété à une classe de base qui n’a été mentionnée dans aucune des classes enfants. Si la classe comprend des instances, la mise à jour échouera.

wbemChangeFlagUpdateForceMode (64 (0x40))

Cet indicateur force les mises à jour des classes quand il existe des classes enfants en conflit. Par exemple, cet indicateur force une mise à jour si un qualificateur de classe est défini dans une classe enfant et si la classe de base tente d’ajouter le même qualificateur qui est en conflit avec celui existant. En mode Forcer, ce conflit est résolu par la suppression du qualificateur en conflit dans la classe enfant. Si la classe comprend des instances, la mise à jour échouera.

L’utilisation du mode force pour mettre à jour une classe statique entraîne la suppression de toutes les instances de cette classe. Une mise à jour forcée sur une classe de fournisseur ne supprime pas les instances de la classe.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Provoque la création de la classe ou de l’instance si elle n’existe pas, ou le remplacement s’il existe déjà.

wbemChangeFlagCreateOnly (2 (0x2))

Utilisé pour la création uniquement. L’appel échoue si la classe ou l’instance existe.

wbemChangeFlagUpdateOnly (1 (0x1))

Cet appel n’effectue qu’une mise à jour. Pour que l’appel réussisse, la classe ou l’instance doit exister.

wbemFlagReturnImmediately (16 (0x10))

Provoque le retour immédiat de l’appel.

wbemFlagReturnWhenComplete (0 (0x0))

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

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Entraîne l’écriture par WMI des données de modification de classe ainsi que de 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 qui assure la maintenance de 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 l’appel réussit, un objet SWbemObjectPath est retourné. Cet objet contient le chemin de l’objet de l’instance ou de la classe qui a été validée avec succès sur WMI.

Codes d’erreur

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

wbemErrAccessDenied - 2147749891 (0x80041003)

L’utilisateur actuel n’a pas l’autorisation pour l’opération.

wbemErrAlreadyExists - 2147749913 (0x80041019)

L’indicateur wbemChangeFlagCreateOnly a été spécifié, mais l’instance existe déjà.

wbemErrFailed – 2147749889 (0x80041001)

Erreur non spécifiée.

wbemErrIllegalNull - 2147749898 (0x8004100A)

Une valeur NULL a été spécifiée pour une propriété qui ne peut pas être NULL. Par exemple, une propriété de ce type est marquée par un qualificateur Key, Indexed ou Not_Null.

wbemErrInvalidObject - 2147749908 (0x80041014)

L’objet spécifié n’est pas valide.

wbemErrInvalidParameter - 2147749896 (0x80041008)

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

wbemErrNotFound - 2147749890 (0x80041002)

L’indicateur wbemChangeFlagUpdateOnly a été spécifié, mais l’instance ou la classe n’existe pas.

wbemErrIncompleteClass - 2147749920 (0x80041020)

Les propriétés nécessaires pour les classes n’ont pas toutes été définies.

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

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_ISWbemServicesEx
IID
IID_ISWbemServicesEx