SWbemObject.PutAsync-Methode _
Die PutAsync-Methode _ von SWbemObject erstellt oder aktualisiert asynchron eine Instanz oder ein Klassenobjekt in Windows Management Instrumentation (WMI). Sie können diese Methode verwenden, nachdem Sie Eigenschaften oder Methoden in SWbemObject geändert haben und Ihre Änderungen in WMI geschrieben wurden.
Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skripterstellungs-API.
Syntax
SWbemObject.PutAsync_( _
ByVal objWbemSink, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ], _
[ ByVal objWbemAsyncContext ] _
)
Parameter
-
objWbemSink [ In]
-
Erforderlich. Objektsenke, die das Ergebnis des Put-Vorgangs asynchron empfängt.
-
iFlags [ in, optional]
-
Bestimmt, ob der Aufruf die Klasse oder Instanz erstellt oder aktualisiert und ob der Aufruf sofort zurückgegeben wird. Dieser Parameter kann die folgenden Werte akzeptieren.
-
wbemChangeFlagUpdateCompatible( 0 (0x0))
-
Ermöglicht das Aktualisieren einer Klasse, wenn keine abgeleiteten Klassen vorhanden sind und keine Instanzen für diese Klasse vorhanden sind. Sie ermöglicht auch Updates in allen Fällen, wenn die Änderung nur zu unwichtigen Qualifizierern erfolgt (z. B. dem Description-Qualifizierer). Dies ist das Standardverhalten für diesen Aufruf und wird für die Kompatibilität mit früheren Versionen von WMI verwendet. Wenn die -Klasse Über -Instanzen verfügt, schlägt das Update fehl.
-
wbemChangeFlagUpdateSafeMode( (32 (0x20))
-
Ermöglicht Updates von Klassen, auch wenn untergeordnete Klassen vorhanden sind, wenn die Änderung keine Konflikte mit untergeordneten Klassen verursacht. Sie können dieses Flag verwenden, wenn Sie einer Basisklasse, die zuvor in keiner der untergeordneten Klassen erwähnt wurde, eine neue Eigenschaft hinzufügen. Wenn die -Klasse Über -Instanzen verfügt, schlägt das Update fehl.
-
WbemChangeFlagUpdateForceMode( (64 (0x40))
-
Erzwingt Aktualisierungen von Klassen, wenn in Konflikt stehende untergeordnete Klassen vorhanden sind. Dieses Flag erzwingt z. B. ein Update, wenn ein Klassenqualifizierer in einer untergeordneten Klasse definiert wurde und die Basisklasse versucht, den gleichen Qualifizierer in Konflikt mit dem vorhandenen hinzuzufügen. Im Force-Modus wird dieser Konflikt gelöst, indem der in Konflikt geratene Qualifizierer in der untergeordneten Klasse gelöscht wird. Wenn die -Klasse Über -Instanzen verfügt, schlägt das Update fehl.
Die Verwendung des Force-Modus zum Aktualisieren einer statischen Klasse führt zum Löschen aller Instanzen dieser Klasse. Bei einem erzwungenen Update für eine 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 schlägt fehl, wenn die Klasse oder Instanz bereits vorhanden ist.
-
wbemChangeFlagUpdateOnly( 1 (0x1))
-
Bewirkt, dass dieser Aufruf aktualisiert wird. Die Klasse oder Instanz muss vorhanden sein, damit der Aufruf erfolgreich ist.
-
wbemFlagReturnImmediately** (16 (0x10))
-
Bewirkt, dass der Aufruf sofort zurückgegeben wird.
-
wbemFlagReturnWhenComplete( (0 (0x0))
-
Bewirkt, dass dieser Aufruf blockiert wird, bis die Abfrage abgeschlossen ist.
-
wbemFlagSendStatus( (128 (0x80))
-
Bewirkt, dass asynchrone Aufrufe Statusupdates an den SWbemSink.OnProgress-Ereignishandler für die Objektsenke senden.
-
wbemFlagDontSendStatus( (0 (0x0))
-
Verhindert, dass asynchrone Aufrufe Statusupdates an den OnProgress-Ereignishandler für die Objektsenke senden.
-
wbemFlagUseAmendedQualifiers( (131072 (0x20000))
-
Bewirkt, dass WMI Klassenänderungsdaten zusammen mit der Basisklassendefinition schreibt. Weitere Informationen zu geänderten Qualifizierern finden Sie unter Lokalisieren von WMI-Klasseninformationen.
objWbemNamedValueSet [ in, optional]
In der Regel ist dies nicht definiert. Andernfalls ist dies ein SWbemNamedValueSet-Objekt, dessen Elemente die Kontextinformationen darstellen, die vom Anbieter verwendet werden können, der die Anforderung wartet. Ein Anbieter, der diese Informationen unterstützt oder erfordert, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.
objWbemAsyncContext [ in, optional]
Dies ist ein SWbemNamedValueSet-Objekt, das zur Objektsenke zurückkehrt, um die Quelle des ursprünglichen asynchronen Aufrufs zu identifizieren. Verwenden Sie diesen Parameter, wenn Sie mehrere asynchrone Aufrufe mit derselben Objektsenke vornehmen. Um diesen Parameter zu verwenden, erstellen Sie ein SWbemNamedValueSet-Objekt, und verwenden Sie die SWbemNamedValueSet.Add-Methode, um einen Wert hinzuzufügen, der den asynchronen Aufruf identifiziert, den Sie vornehmen. Dieses SWbemNamedValueSet-Objekt wird an die Objektsenke zurückgegeben, und die Quelle des Aufrufs kann mithilfe der SWbemNamedValueSet.Item-Methode extrahiert werden. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Rückgabewert
Diese Methode gibt keinen Wert zurück. Wenn der Aufruf erfolgreich ist, empfängt das OnObjectPut-Ereignis der angegebenen Objektsenke ein SWbemObjectPath-Objekt, das den Objektpfad der Instanz oder Klasse enthält, für die erfolgreich ein Commit an WMI ausgeführt wurde.
Fehlercodes
Nach Abschluss der PutAsync-Methode _ kann das Err-Objekt einen der Fehlercodes in der folgenden Liste enthalten.
-
wbemErrAccessDenied – 2147749891 (0x80041003)
-
Der aktuelle Benutzer verfügt nicht über die Berechtigung zum Aktualisieren einer Instanz der angegebenen Klasse.
-
wbemErrAlreadyExists – 2147749913 (0x80041019)
-
Das Flag wbemChangeFlagCreateOnly wurde angegeben, aber die Instanz ist bereits vorhanden.
-
wbemErrFailed – 2147749889 (0x80041001)
-
Unbekannter Fehler.
-
wbemErrBiogalNull – 2147749898 (0x8004100A)
-
Für eine Eigenschaft, die möglicherweise nicht Nothing ist, wurde der Wert Nothing angegeben. Ein Beispiel für eine solche Eigenschaft ist eine Eigenschaft, die durch einen Key-, Indexed- oder Not _ NULL-Qualifizierer gekennzeichnet ist.
-
wbemErrInvalidObject – 2147749908 (0x80041014)
-
Die angegebene Instanz 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)
-
Erforderliche Eigenschaften für Klassen wurden nicht alle festgelegt.
-
wbemErrOutOfMemory – 2147749894 (0x80041006)
-
Nicht genügend Arbeitsspeicher, um den Vorgang abzuschließen.
Hinweise
Dieser Aufruf wird sofort zurückgegeben, und das Ergebnis des Put-Vorgangs wird dem Aufrufer über Rückrufe zurückgegeben, die an die Senke übermittelt werden, die in objWbemSink angegeben ist. Implementieren Sie objWbemSink. OnObjectPut-Methode, um den Objektpfad der Instanz oder Klasse abzurufen, die in das WMI-Repository geschrieben wird. Weitere Informationen zu Senkenmethoden finden Sie unter Aufrufen einer Methode.
Ein asynchroner Rückruf ermöglicht es einem nicht authentifizierten Benutzer, Daten für die Senke bereitzustellen. Dies stellt Sicherheitsrisiken für Ihre Skripts und Anwendungen dar. Um die Risiken zu vermeiden, verwenden Sie semisynchrone oder synchrone Kommunikation. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows Vista |
| Unterstützte Mindestversion (Server) |
Windows Server 2008 |
| Header |
|
| Typbibliothek |
|
| DLL |
|
| CLSID |
CLSID _ SWbemObject |
| IID |
IID _ ISWbemObject |