Freigeben über


SWbemObject.Put_-Methode

Die Put\_-Methode von SWbemObject erstellt oder aktualisiert eine Instanz oder ein Klassenobjekt für die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI). Sie können diese Methode verwenden, wenn Sie Eigenschaften oder Methoden in einer SWbemObject-Instanz geändert haben und Ihre Änderungen in WMI geschrieben werden.

Eine Erläuterung dieser Syntax finden Sie in den Dokumentkonventionen für die Skripterstellungs-API.

Syntax

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

Parameter

iFlags [in, optional]

Dieser Parameter bestimmt, ob der Aufruf das die Klasse oder Instanz erstellt oder aktualisiert und ob der Aufruf sofort abgeschlossen wird. Dieser Parameter kann folgende Werte akzeptieren:

wbemChangeFlagUpdateCompatible (0 (0x0))

Ermöglicht das Aktualisieren einer Klasse, wenn keine abgeleiteten Klassen und keine Instanzen für diese Klasse vorhanden sind. Diese Option ermöglicht auch Updates in allen Fällen, wenn die Änderung nur unwichtige Qualifizierer (z B. den Qualifizierer Beschreibung) betrifft. Dies ist das Standardverhalten für diesen Aufruf und wird verwendet, um Kompatibilität mit früheren Versionen von WMI zu gewährleisten. Wenn die Klasse Instanzen hat, ist die Aktualisierung nicht erfolgreich.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Ermöglicht die Aktualisierung von Klassen, selbst wenn untergeordnete Klassen vorhanden sind – vorausgesetzt, die Änderung verursacht keine Konflikte mit untergeordneten Klassen. 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, ist die Aktualisierung nicht erfolgreich. Wenn die Klasse Instanzen hat, ist die Aktualisierung nicht erfolgreich.

WbemChangeFlagUpdateForceMode (64 (0x40))

Dieses Flag erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. So wird beispielsweise eine Aktualisierung erzwungen, wenn ein Klassenqualifizierer in einer untergeordneten Klasse definiert wurde und die Basisklasse versucht, den gleichen Qualifizierer so hinzuzufügen, dass ein Konflikt mit der vorhandenen Klasse entsteht. Im Erzwingungsmodus wird dieser Konflikt gelöst, indem der in Konflikt stehende Qualifizierer in der untergeordneten Klasse gelöscht wird. Wenn die Klasse Instanzen hat, ist die Aktualisierung nicht erfolgreich.

Wenn der Erzwingungsmodus zum Aktualisieren einer statischen Klasse verwendet wird, werden alle Instanzen dieser Klasse gelöscht. Bei einer erzwungenen Aktualisierung einer Anbieterklasse werden keine Instanzen der Klasse gelöscht.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Bewirkt, dass die Klasse oder Instanz erstellt wird, falls sie noch nicht vorhanden ist. Ist sie bereits vorhanden, wird sie überschrieben.

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 eine Aktualisierung durchführt. Die Klasse oder Instanz muss vorhanden sein, damit der Aufruf erfolgreich ist.

wbemFlagReturnImmediately (16 (0x10))

Bewirkt, dass der Aufruf sofort abgeschlossen wird.

wbemFlagReturnWhenComplete (0 (0x0))

Bewirkt, dass dieser Aufruf so lange blockiert wird, bis die Abfrage abgeschlossen ist.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Bewirkt, dass WMI sowohl Klassenänderungsdaten als auch die Basisklassendefinition schreibt. Weitere Informationen zu geänderten Qualifizierern finden Sie unter Lokalisieren von WMI-Klasseninformationen.

objwbemNamedValueSet [in, optional]

In der Regel nicht definiert. Andernfalls handelt es sich um ein SWbemObjectPath-Objekt, dessen Elemente die Kontextinformationen darstellen, die von dem Anbieter, der die Anforderung verarbeitet, verwendet werden können. 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 Put_-Methode enthält das Err-Objekt möglicherweise einen der Fehlercodes aus der folgenden Liste:

wbemErrAccessDenied – 2147749891

Der aktuelle Benutzer bzw. die aktuelle Benutzerin ist nicht berechtigt, eine Instanz der angegebenen Klasse zu aktualisieren.

wbemErrAlreadyExists – 2147749913 (0x80041019)

Das Flag wbemChangeFlagCreateOnly wurde angegeben, aber die Instanz ist bereits vorhanden.

wbemErrFailed – 2147749889 (0x80041001)

Unbekannter Fehler.

wbemErrIllegalNull – 2147749898 (0x8004100A)

Für eine Eigenschaft, die nicht Nichts sein darf, wurde der Wert Nichts angegeben. Ein Beispiel hierfür ist eine Eigenschaft, die durch einen der Qualifizierer Key, Indexed oder Not_Null gekennzeichnet ist.

wbemErrInvalidObject – 2147749908 (0x80041014)

Die angegebene Instanz ist ungültig.

wbemErrInvalidParameter – 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
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

Weitere Informationen

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier