Methode „SWbemServicesEx.Put“
Die Methode Put speichert das Objekt SWbemServicesEx im Namespace, der an dieses Objekt gebunden ist, und gibt ein SWbemObjectPath-Objekt mit dem Pfad des Objekts zurück, in das die Daten geschrieben wurden.
Diese Methode wird im semisynchronen Modus aufgerufen. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skript-API.
Syntax
objObjectPath = .Put( _
ByVal objWbemObject, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
Parameter
-
objWbemObject
-
Erforderlich. Das neue Objekt, das in den Namespace eingefügt werden soll. Dies kann entweder ein neu erstelltes Objekt oder ein geändertes Objekt sein.
-
iFlags [optional]
-
Dieser Parameter bestimmt, ob der Aufruf das Objekt erstellt oder es aktualisiert und ob der Aufruf sofort zurückgegeben wird. Dieser Parameter kann die folgenden Werte annehmen.
-
wbemChangeFlagUpdateCompatible (0 (0x0))
-
Ermöglicht das Aktualisieren einer Klasse, wenn keine abgeleiteten Klassen und keine Instanzen für diese Klasse vorhanden sind. Er lässt auch Updates in allen Fällen zu, wenn die Änderung nur an unwichtigen Qualifizierern (z B. dem Qualifizierer Beschreibung) vorgenommen wird. Dies ist das Standardverhalten für diesen Aufruf und wird aus Gründen der Kompatibilität bei früheren Versionen von WMI verwendet. Wenn die Klasse Instanzen hat, schlägt das Update fehl.
-
wbemChangeFlagUpdateSafeMode (32 (0x20))
-
Ermöglicht Updates von Klassen, selbst wenn untergeordnete Klassen vorhanden sind, wenn die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Sie können dieses Flag verwenden, wenn Sie einer Basisklasse eine neue Eigenschaft hinzufügen, die vorher in keiner der untergeordneten Klassen erwähnt wurde. Wenn die Klasse Instanzen hat, schlägt das Update fehl.
-
wbemChangeFlagUpdateForceMode (64 (0x40))
-
Dieses Flag erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. Dieses Flag erzwingt beispielsweise ein Update, wenn ein Klassenqualifizierer in einer untergeordneten Klasse definiert wurde und die Basisklasse versucht, denselben Qualifizierer im Konflikt mit der vorhandenen Klasse hinzuzufügen. Im Erzwingungsmodus wird dieser Konflikt gelöst, indem der in Konflikt stehende Qualifizierer in der untergeordneten Klasse gelöscht wird. Wenn die Klasse über Instanzen verfügt, ist die Aktualisierung nicht erfolgreich.
Die Nutzung des Erzwingungsmodus zum Aktualisieren einer statischen Klasse führt zum Löschen aller Instanzen dieser Klasse. Bei einer erzwungenen Aktualisierung einer Anbieterklasse werden keine Instanzen der Klasse gelöscht.
-
wbemChangeFlagCreateOrUpdate (0 (0x0))
-
Bewirkt, dass die Klasse oder Instanz erstellt wird, wenn sie nicht vorhanden ist, oder überschrieben wird, wenn sie bereits vorhanden ist.
-
wbemChangeFlagCreateOnly (2 (0x2))
-
Wird nur für die Erstellung verwendet. Der Aufruf ist nicht erfolgreich, wenn die Klasse oder Instanz bereits vorhanden ist.
-
wbemChangeFlagUpdateOnly (1 (0x1))
-
Bewirkt, dass dieser Aufruf nur ein Update durchführt. Die Klasse oder Instanz muss vorhanden sein, damit der Aufruf erfolgreich ist.
-
wbemFlagReturnImmediately (16 (0x10))
-
Bewirkt, dass der Aufruf sofort eine Antwort zurückgibt.
-
wbemFlagReturnWhenComplete (0 (0x0))
-
Bewirkt, dass dieser Aufruf so lange blockiert wird, bis der Vorgang abgeschlossen ist. Dieses Flag ruft die Methode im synchronen Modus auf.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
Bewirkt, dass WMI sowohl Klassenänderungsdaten als auch die Basisklassendefinition schreibt. Weitere Informationen finden Sie unter Lokalisieren von WMI-Klasseninformationen.
objWbemNamedValueSet [optional]
In der Regel nicht definiert. Andernfalls handelt es sich dabei um ein SWbemNamedValueSet-Objekt, dessen Elemente die Kontextinformationen darstellen, die von dem Anbieter verwendet werden können, der die Anforderung verarbeitet. Ein Anbieter, der solche Informationen unterstützt oder benötigt, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.
Rückgabewert
Wenn der Aufruf erfolgreich ist, wird ein SWbemObjectPath-Objekt zurückgegeben. Dieses Objekt enthält den Objektpfad der Instanz oder Klasse, die in WMI erfolgreich committet wurde.
Fehlercodes
Nach Abschluss der Methode Put enthält das Objekt Err möglicherweise einen der Fehlercodes aus der folgenden Liste.
-
wbemErrAccessDenied – 2147749891 (0x80041003)
-
Der aktuelle Benutzer hat keine Berechtigung für den Vorgang.
-
wbemErrAlreadyExists – 2147749913 (0x80041019)
-
Das Flag wbemChangeFlagCreateOnly wurde angegeben, aber die Instanz ist bereits vorhanden.
-
wbemErrFailed – 2147749889 (0x80041001)
-
Unbekannter Fehler.
-
wbemErrIllegalNull – 2147749898 (0x8004100A)
-
Der Wert NULL wurde für eine Eigenschaft angegeben, die nicht NULL sein kann. Ein Beispiel für eine solche Eigenschaft ist eine, die durch einen der Qualifizierer Key, Indexed oder Not_Null gekennzeichnet ist.
-
wbemErrInvalidObject – 2147749908 (0x80041014)
-
Das angegebene Objekt ist ungültig.
-
wbemErrInvalidParameter – 2147749896 (0x80041008)
-
Ein angegebener Parameter ist ungültig.
-
wbemErrNotFound – 2147749890 (0x80041002)
-
Das Flag wbemChangeFlagUpdateOnly wurde angegeben, aber die Instanz oder Klasse ist nicht vorhanden.
-
wbemErrIncompleteClass – 2147749920 (0x80041020)
-
Es wurden nicht alle erforderlichen Eigenschaften für Klassen festgelegt.
-
wbemErrOutOfMemory – 2147749894 (0x80041006)
-
Es ist nicht genügend Arbeitsspeicher zum Abschließen des Vorgangs vorhanden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista |
Unterstützte Mindestversion (Server) |
Windows Server 2008 |
Header |
|
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_ISWbemServicesEx |
IID |
IID_ISWbemServicesEx |