Teilen über


SWbemServices.Delete-Methode

Die Delete-Methode des SWbemServices-Objekts löscht die im Objektpfad angegebene Klasse oder Instanz. Sie können nur Objekte im aktuellen Namespace löschen.

Wenn ein dynamischer Anbieter die Klasse oder Instanz bereitstellt, 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 Skript-API.

Syntax

SWbemServices.Delete( _
  ByVal strObjectPath, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parameter

strObjectPath

Erforderlich. Eine 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 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

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

wbemErrOutOfMemory – 2147749894 (0x80041006)

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

Bemerkungen

Die SWbemServices.Delete-Methode kann verwendet werden, wenn der Schlüsseleigenschaft für das Objekt kein Wert zugewiesen wird, weil diese Methode nur einen Objektpfad als Eingabe benötigt. Diese Methode kann in Situationen verwendet werden, in denen die Ausführung von SWbemObject.Delete_ aufgrund eines fehlenden Schlüsselwerts fehlschlägt. Wenn das Objekt durch SWbemObject.Put_ per Commit an WMI übergeben wird, wurde durch 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 es die Klasse löscht. 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
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

Weitere Informationen

SWbemServices

SWbemObjectPath