Share via


Méthode SWbemObject.Delete_

La méthode Delete\_ de l’objet SWbemObject supprime la classe ou instance actuelle. Si un fournisseur dynamique fournit la classe ou l’instance, il n’est parfois pas possible de supprimer cet objet, sauf si le fournisseur prend en charge la suppression de classe ou d’instance. Pour plus d’explications sur cette syntaxe, consultez Conventions de document pour l’API de script.

Syntaxe

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

Paramètres

iFlags [in, facultatif]

Réservé et doit être égal à 0 (zéro) si spécifié.

objwbemNamedValueSet [entrée, facultatif]

Ce paramètre n’est généralement pas défini. Sinon, il s’agit d’un objet SWbemNamedValueSet dont les éléments représentent les informations de contexte qui peuvent être utilisées par le fournisseur répondant à la demande. Un fournisseur qui prend en charge ou requiert de telles informations doit documenter les noms de valeur reconnus, le type de données de la valeur, les valeurs autorisées et la sémantique.

Valeur retournée

Cette méthode ne retourne pas de valeur.

Codes d’erreur

Une fois la méthode Delete terminée, l’objet Err peut contenir l’un des codes d’erreur de la liste suivante.

wbemErrAccessDenied - 2147749891 (0x80041003)

Le contexte actuel ne dispose pas des droits de sécurité adéquats pour supprimer l’objet.

wbemErrFailed - 2147749889 (0x80041001)

Erreur non spécifiée.

wbemErrInvalidClass - 2147749904 (0x80041010)

La classe spécifiée n’existe pas.

wbemErrInvalidOperation - 2147749910 (0x80041016)

L’objet ne peut pas être supprimé.

wbemErrNotFound - 2147749890 (0x80041002)

L’objet n’existait pas.

wbemErrOutOfMemory - 2147749894 (0x80041006)

La mémoire disponible est insuffisante pour terminer cette opération.

Notes

La méthode Delete_ échoue si une nouvelle instance de SWbemObject est créée, mais qu’aucune valeur n’est fournie pour la propriété clé. Windows Management Instrumentation (WMI) génère automatiquement une valeur d’identificateur global unique (GUID), mais cette dernière n’est pas acceptée par SWbemObject.Delete_. Dans ce cas, SWbemServices.Delete, qui utilise le chemin d’accès de l’objet, fonctionne. Notez qu’un objet SWbemObjectPath est retourné par la méthode SWbemObject.Put_ après la validation d’un objet dans WMI.

Exemples

L’exemple suivant crée une classe, ajoute une propriété de clé, écrit la nouvelle classe dans le référentiel, et affiche le chemin d’accès du nouvel objet de classe. Le script génère ensuite une instance de la nouvelle classe, l’écrit, et affiche le chemin d’accès. Notez que le script supprime à la fois la classe et ses instances du référentiel en supprimant simplement la classe .

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp.h
Bibliothèque de types
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject