Partager via


Méthode DestroySystem de la classe Msvm_VirtualSystemManagementService

Supprime la machine virtuelle précédemment définie de l’étendue de gestion du système hôte. Toutes les définitions de ressources associées seront également supprimées. La machine virtuelle doit être à l’état hors tension ou enregistrée avant d’appeler cette méthode.

Syntaxe

uint32 DestroySystem(
  [in]  CIM_ComputerSystem REF AffectedSystem,
  [out] CIM_ConcreteJob    REF Job
);

Paramètres

AffectedSystem [in]

Type : CIM_ComputerSystem

Référence à une instance du CIM_ComputerSystem qui représente la machine virtuelle instance à détruire.

Travail [out]

Type : CIM_ConcreteJob

Si l’opération est effectuée de manière asynchrone, cette méthode retourne 4096 et ce paramètre contient une référence à un objet dérivé de CIM_ConcreteJob.

Valeur retournée

Type : uint32

Si cette méthode est exécutée de manière synchrone, elle retourne 0 si elle réussit. Si cette méthode est exécutée de manière asynchrone, elle retourne 4096 et le paramètre de sortie du travail peut être utilisé pour suivre la progression de l’opération asynchrone. Toute autre valeur de retour indique une erreur.

Terminé avec aucune erreur (0)

Non pris en charge (1)

Échec (2)

Délai d’expiration (3)

Paramètre non valide (4)

État non valide (5)

DMTF Reserved (..)

Paramètres de méthode vérifiés - Travail démarré (4096)

Méthode réservée (4097..32767)

Spécifique au fournisseur (32768..65535)

Notes

L’accès à la classe Msvm_VirtualSystemManagementService peut être limité par le filtrage UAC. Pour plus d’informations, consultez Contrôle de compte d’utilisateur et WMI.

Exemples

L’exemple C# suivant utilise la méthode DestroySystem pour supprimer une machine virtuelle planifiée. Ce code est extrait de l’exemple de machines virtuelles planifiées Hyper-V. Les utilitaires référencés se trouvent dans Utilitaires communs pour les exemples de virtualisation (V2).

Important

Pour fonctionner correctement, le code suivant doit être exécuté sur le serveur hôte de la machine virtuelle et doit être exécuté avec des privilèges d’administrateur.

/// <summary>
/// Finds the first Planned VM matching pvmName and removes it.
/// </summary>
/// <param name="pvmName">The name of the PVM to be removed.</param>
internal static void
RemovePvm(
    string pvmName
    )
{
    ManagementScope scope = new ManagementScope(@"root\virtualization\v2");

    using (ManagementObject pvm = WmiUtilities.GetPlannedVirtualMachine(pvmName, scope))
    using (ManagementObject managementService = WmiUtilities.GetVirtualMachineManagementService(scope))
    using (ManagementBaseObject inParams =
        managementService.GetMethodParameters("DestroySystem"))
    {
        inParams["AffectedSystem"] = pvm.Path;

        Console.WriteLine("Removing Planned Virtual Machine \"{0}\" ({1})...",
                pvm["ElementName"], pvm["Name"]);

        using (ManagementBaseObject outParams =
            managementService.InvokeMethod("DestroySystem", inParams, null))
        {
            WmiUtilities.ValidateOutput(outParams, scope);
        }
    }
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 [applications de bureau uniquement]
Espace de noms
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Voir aussi

Msvm_VirtualSystemManagementService