Suppression d’une instance

La suppression d’une instance est la commande de suppression la plus courante que vous êtes susceptible d’effectuer dans WMI. À l’instar de la suppression d’une classe, la commande réelle est assez simple. Toutefois, WMI fonctionne de façon très différente selon le type d’instance que vous supprimez. Si l’instance est statique, WMI supprime simplement l’instance de l’espace de stockage WMI. Pour plus d’informations sur la suppression de classes et d’instances de l’espace de stockage WMI, consultez la commande de préprocesseur pragma deleteclass .

Si l’instance est dynamique, WMI doit appeler IWbemServices ::D eleteinstanceasync sur les fournisseurs qui sont responsables des classes suivantes :

  • Classe qui possède l’instance de.
  • Chaque classe parente de la classe qui possède l’instance de.
  • Chaque sous-classe de la classe qui possède l’instance.

La réussite de la suppression dépend de la classe non abstraite la plus grande pour l’instance d’origine. Si le fournisseur de toute classe non abstraite de niveau supérieur réussit à terminer la suppression, l’opération réussit. Pour plus d’informations, consultez la section Notes de IWbemServices ::D eleteinstance.

L' API com pour WMI a différentes méthodes pour supprimer une instance et supprimer un objet.

La procédure suivante décrit comment utiliser C++ pour supprimer une instance d’une classe de base ou d’une classe dérivée.

Pour supprimer une instance d’une classe de base ou d’une classe dérivée à l’aide de C++

Notes

Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser le mode semi-synchrone au lieu de la communication asynchrone. Pour plus d’informations, consultez appel d’une méthode.

L' API de script pour WMI utilise les mêmes méthodes pour supprimer un objet de classe ou une instance.

La procédure suivante décrit comment utiliser VBScript pour supprimer une instance d’une classe de base ou d’une classe dérivée.

Pour supprimer une instance d’une classe de base ou d’une classe dérivée à l’aide de VBScript

  • Appelez les méthodes SWbemObject. Delete _ ou SWbemObject. DeleteAsync _ .

    Comme son nom l’indique , _ Delete supprime une instance de façon synchrone, tandis que DeleteAsync _ supprime une instance de façon asynchrone. Pour plus d’informations sur la suppression d’une instance de façon asynchrone, consultez appel d’une méthode.

    L’exemple suivant décrit comment supprimer une instance de à l’aide de VBScript.

    Dim service
    
    Set service = GetObject("winmgmts:{impersonationLevel=impersonate}") 
    
    Set objwbemobject= service.get("")
    
    objwbemobject.Path_.Class = "MyNewClass" 
    objwbemobject.put_
    service.delete  "MyNewClass"
    

Notes

Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser le mode semi-synchrone au lieu de la communication asynchrone. Pour plus d’informations, consultez appel d’une méthode.