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 |
|
| Bibliothèque de types |
|
| DLL |
|
| CLSID |
CLSID _ SWbemObject |
| IID |
IID _ ISWbemObject |