SWbemServices.Delete-Methode
Die Delete-Methode des SWbemServices-Objekts löscht die Klasse oder Instanz, die im Objektpfad angegeben ist. Sie können nur Objekte im aktuellen Namespace löschen.
Wenn ein dynamischer Anbieter die Klasse oder Instanz zur Verfügung stellt, können Sie dieses Objekt nur löschen, wenn der Anbieter das Löschen von Klassen oder Instanzen unterstützt.
Diese Methode wird im synchronen Modus aufgerufen. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skripterstellungs-API.
Syntax
SWbemServices.Delete( _
ByVal strObjectPath, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
Parameter
-
strObjectPath
-
Erforderlich. Zeichenfolge, die den Objektpfad zu dem Objekt enthält, das Sie löschen möchten. Weitere Informationen finden Sie unter Beschreiben des Speicherorts eines WMI-Objekts.
-
iFlags [ Optional]
-
Reserviert. Dieser Wert muss null (0) sein.
-
objWbemNamedValueSet [ 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 bedient. Ein Anbieter, der solche Informationen unterstützt oder erfordert, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.
Rückgabewert
Diese Methode gibt keinen Wert zurück.
Fehlercodes
Nach Abschluss der Delete-Methode kann das Err-Objekt einen der Fehlercodes in der folgenden Liste enthalten.
-
wbemErrAccessDenied – 2147749891 (0x80041003)
-
Der aktuelle Kontext verfügt nicht über ausreichende Sicherheitsrechte zum Löschen des Objekts.
-
wbemErrFailed – 2147749889 (0x80041001)
-
Unbekannter Fehler.
-
wbemErrInvalidClass – 2147749904 (0x80041010)
-
Die angegebene Klasse ist nicht vorhanden.
-
wbemErrInvalidOperation – 2147749910 (0x80041016)
-
Das Objekt kann nicht gelöscht werden.
-
wbemErrNotFound – 2147749890 (0x80041002)
-
Das Objekt ist nicht vorhanden.
-
wbemErrOutOfMemory – 2147749894 (0x80041006)
-
Nicht genügend Arbeitsspeicher, um den Vorgang abzuschließen.
Hinweise
Die SWbemServices.Delete-Methode kann verwendet werden, wenn die Schlüsseleigenschaft für das Objekt keinen Wert erhält, da diese Methode nur einen Objektpfad als Eingabe erfordert. Diese Methode kann in Situationen verwendet werden, in denen SWbemObject.Delete _ aufgrund eines fehlenden Schlüsselwerts fehlschlägt. Wenn für das Objekt über SWbemObject.Put _ein Commit an WMI ausgeführt wird, wurde über den Aufruf ein SWbemObjectPath-Objekt abgerufen.
Beispiele
Im folgenden Beispiel wird eine neue Klasse erstellt, eine Eigenschaft hinzugefügt, die kein Schlüssel ist, die neue Klasse in das Repository geschrieben und der Pfad des neuen Klassenobjekts angezeigt. Das Skript erstellt dann eine Instanz der neuen Klasse, schreibt die Instanz und zeigt den Pfad an. Beachten Sie, dass das Skript sowohl die -Klasse als auch ihre -Instanzen aus dem Repository löscht, indem die -Klasse gelöscht wird. Weitere Informationen zu WMI-Klassen und -Instanzen finden Sie unter Bearbeiten von Klassen- und Instanzinformationen und Common Information Model.
wbemCimtypeSint32 = 3
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"
' Add a property
' Integer property
objClass.Properties_.Add "iProperty", wbemCimtypeSint32
objClass.Properties_("iProperty").Qualifiers_.Add "key", TRUE
' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
wscript.echo objClassPath.Path
'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
"Winmgmts:root\default:NewClass").SpawnInstance_
objNewInst.iProperty = 1000
' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path
' Remove the new class and instance from the repository
objSWbemService.Delete("NewClass")
If Err <> 0 Then
WScript.Echo Err.Number & " " & Err.Description
Else
WScript.Echo "Delete succeeded"
End If
' Release SwbemServices object
Set objSWbemService = Nothing
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows Vista |
| Unterstützte Mindestversion (Server) |
Windows Server 2008 |
| Header |
|
| Typbibliothek |
|
| DLL |
|
| CLSID |
CLSID _ SWbemServices |
| IID |
IID _ ISWbemServices |