Export (0) Print
Expand All

DestroySystem method of the Msvm_VirtualSystemManagementService class


Removes the previously defined virtual machine from the management scope of the host system. Any associated resource definitions will also be removed. The virtual machine must be in the powered off or saved state prior to calling this method.


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


AffectedSystem [in]

Type: CIM_ComputerSystem

A reference to an instance of the CIM_ComputerSystem that represents the virtual machine instance to be destroyed.

Job [in, out]

Type: CIM_ConcreteJob

If the operation is performed asynchronously, this method will return 4096, and this parameter will contain a reference to an object derived from CIM_ConcreteJob.

Return value

Type: uint32

If this method is executed synchronously, it returns 0 if it succeeds. If this method is executed asynchronously, it returns 4096 and the Job output parameter can be used to track the progress of the asynchronous operation. Any other return value indicates an error.


Access to the Msvm_VirtualSystemManagementService class might be restricted by UAC Filtering. For more information, see User Account Control and WMI.


The following C# sample uses the DestroySystem method to remove a planned virtual machine. This code is taken from the Hyper-V planned virtual machines sample. The referenced utilities can be found in Common utilities for the virtualization samples (V2).

Important  To function correctly, the following code must be run on the virtual machine host server, and must be run with Administrator privileges.

/// <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
    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 =
        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);


Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]





See also




Community Additions

© 2015 Microsoft