Partager via


Méthode SWbemObject.Put_

La méthode Put\_ de SWbemObject crée ou met à jour une instance ou un objet de classe vers Windows Management Instrumentation (WMI). Vous pouvez utiliser cette méthode après avoir modifié des propriétés ou des méthodes dans un objet SWbemObject, et vos modifications sont écrites dans WMI.

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

Syntaxe

objObjectPath = .Put_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Paramètres

iFlags [entier, facultatif]

Ce paramètre détermine si l’appel crée ou met à jour la classe ou l’instance et si l’appel est retourné 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’instance pour cette classe. Elle autorise également les mises à jour dans tous les cas si les modifications ont été apportées à 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 échoue.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Autorise les mises à jour des classes, même s’il existe des classes enfants, si 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 échoue. Si la classe comprend des instances, la mise à jour échoue.

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 a été 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 force, 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 échoue.

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 si elle 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))

Provoque la mise à jour de cet appel. 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 la requête soit terminée.

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 sur les qualificateurs modifiés, consultez Localisation des informations de classe WMI.

objwbemNamedValueSet [in, facultatif]

En règle générale, ceci n’est pas défini. Sinon, il s’agit d’un objet SWbemObjectPath 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 exige de telles informations doit documenter les noms des valeurs reconnues, 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

L’utilisateur actuel n’a pas l’autorisation de mettre à jour une instance de la classe spécifiée.

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)

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

wbemErrInvalidObject - 2147749908 (0x80041014)

L'instance spécifiée n'est pas valide.

wbemErrInvalidParameter - 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_SWbemObject
IID
IID_ISWbemObject

Voir aussi

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier