SWbemObject.Delete_-Methode

Die Delete\_-Methode des SWbemObject-Objekts löscht entweder die aktuelle Klasse oder die aktuelle Instanz. Wenn ein dynamischer Anbieter die Klasse oder Instanz bereitstellt, ist es manchmal nicht möglich, dieses Objekt zu löschen, es sei denn, der Anbieter unterstützt das Löschen von Klassen oder Instanzen. Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skript-API.

Syntax

SWbemObject.Delete_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parameter

iFlags [in, optional]

Reserviert und muss bei Angabe auf „0“ (null) festgelegt werden.

objwbemNamedValueSet [in, optional]

Dieser Parameter ist normalerweise nicht festgelegt. Andernfalls ist dies ein SWbemNamedValueSet-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

Diese Methode gibt keinen Wert zurück.

Fehlercodes

Nach Abschluss der Delete_-Methode enthält das Err-Objekt möglicherweise einen der Fehlercodes aus der folgenden Liste.

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 war nicht vorhanden.

wbemErrOutOfMemory – 2147749894 (0x80041006)

Es ist nicht genügend Arbeitsspeicher zum Abschließen des Vorgangs vorhanden.

Bemerkungen

Die Delete_-Methode schlägt fehl, wenn eine neue Instanz von SWbemObject erstellt wird, aber kein Wert für die Key-Eigenschaft angegeben wird. Die Windows-Verwaltungsinstrumentation (WMI) generiert automatisch einen GUID-Wert (Globally Unique Identifier), aber ein GUID-Wert wird von SWbemObject.Delete_ nicht akzeptiert. In diesem Fall funktioniert SWbemServices.Delete, die den Objektpfad verwendet. Beachten Sie, dass ein SWbemObjectPath-Objekt von der SWbemObject.Put_ -Methode zurückgegeben wird, nachdem ein Objekt an WMI committet wurde.

Beispiele

Im folgenden Beispiel wird eine neue Klasse erstellt, eine Key-Eigenschaft hinzugefügt, 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 es einfach die Klasse löscht.

On Error Resume Next
wbemCimtypeString = 8             ' String datatype
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString 
' Make the property a key property 
objClass.Properties_("PropertyName").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.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path

' Remove the new class and instance from the repository
objClass.Delete_()
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
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject