Méthode SWbemServices.Delete

La méthode Delete de l’objet SWbemServices supprime la classe ou instance spécifiée dans le chemin d’accès de l’objet. Vous pouvez uniquement supprimer des objets dans l’espace de noms actuel.

Si un fournisseur dynamique fournit la classe ou l’instance, vous ne pouvez pas supprimer cet objet, sauf si le fournisseur prend en charge la suppression de classe ou de l’instance.

Cette méthode est appelée en mode synchrone. Pour plus d’informations, consultez Appel d’une méthode.

Pour obtenir une explication de cette syntaxe, consultez Conventions de document pour l’API de script.

Syntaxe

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

Paramètres

strObjectPath

Obligatoire. Chaîne qui contient le chemin d’accès de l’objet à supprimer. Pour plus d’informations, consultez Description de l’emplacement d’un objet WMI.

iFlags [facultatif]

Réservé. Cette valeur doit être zéro.

objWbemNamedValueSet [facultatif]

En règle générale, ceci n’est 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 qui assure la maintenance de 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'existe pas.

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

Notes

La méthode SWbemServices.Delete peut être utilisée lorsque la propriété key de l’objet ne reçoit pas de valeur, car cette méthode nécessite uniquement un chemin d’accès à l’objet comme entrée. Cette méthode peut être utilisée dans les situations où SWbemObject.Delete_ échoue en raison de l’absence d’une valeur de clé. Si l’objet est validée sur WMI via SWbemObject.Put_, un objet SWbemObjectPath a été obtenu via l’appel.

Exemples

L’exemple suivant crée une classe, ajoute une propriété qui n’est pas une 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, écrit l’instance 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 la classe. Pour plus d’informations sur les classes et instances WMI, consultez Manipulation des informations sur les classes et les instances et 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

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_SWbemServices
IID
IID_ISWbemServices

Voir aussi

SWbemServices

SWbemObjectPath