SWbemObject. Delete, _ méthode

La méthode _ Delete de l’objet SWbemObject supprime la classe en cours ou l’instance actuelle. Si un fournisseur dynamique fournit la classe ou l’instance, il est parfois impossible de supprimer cet objet, sauf si le fournisseur prend en charge la suppression de classe ou d’instance. Pour une explication de cette syntaxe, consultez conventions de document pour l’API de script.

Syntaxe

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

Paramètres

IFlags [ dans, facultatif]

Réservé et doit avoir la valeur 0 (zéro) si elle est spécifiée.

objwbemNamedValueSet [ dans, facultatif]

Ce paramètre n’est généralement pas défini. Dans le cas contraire, 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 qui traite la requête. Un fournisseur qui prend en charge ou requiert ces 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 répertoriés dans 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)

Impossible de supprimer l’objet.

wbemErrNotFound -2147749890 (0x80041002)

L’objet n’existait pas.

wbemErrOutOfMemory -2147749894 (0x80041006)

Mémoire insuffisante pour terminer l’opération.

Remarques

La méthode _ Delete échoue si une nouvelle instance de SWbemObject est créée, mais aucune valeur n’est fournie pour la propriété Key. Windows WMI (Management Instrumentation) génère automatiquement une valeur d’identificateur global unique (GUID), mais une valeur GUID 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 qu’un objet a été validé dans WMI.

Exemples

L’exemple suivant crée une nouvelle 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 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

Configuration requise

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