Método DestroySystem da classe Msvm_VirtualSystemManagementService

Remove a máquina virtual definida anteriormente do escopo de gerenciamento do sistema host. Todas as definições de recurso associadas também serão removidas. A máquina virtual deve estar no estado desligado ou salvo antes de chamar esse método.

Sintaxe

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

Parâmetros

AffectedSystem [in]

Tipo: CIM_ComputerSystem

Uma referência a uma instância do CIM_ComputerSystem que representa a instância da máquina virtual a ser destruída.

Trabalho [out]

Tipo: CIM_ConcreteJob

Se a operação for executada de forma assíncrona, esse método retornará 4096 e esse parâmetro conterá uma referência a um objeto derivado de CIM_ConcreteJob.

Valor retornado

Tipo: uint32

Se esse método for executado de forma síncrona, ele retornará 0 se for bem-sucedido. Se esse método for executado de forma assíncrona, ele retornará 4096 e o parâmetro de saída trabalho poderá ser usado para acompanhar o progresso da operação assíncrona. Qualquer outro valor retornado indica um erro.

Concluído sem erro (0)

Sem suporte (1)

Falha (2)

Tempo limite (3)

Parâmetro inválido (4)

Estado inválido (5)

DMTF Reservado (..)

Parâmetros de método verificados – Trabalho iniciado (4096)

Método Reservado (4097..32767)

Específico do fornecedor (32768..65535)

Comentários

O acesso à classe Msvm_VirtualSystemManagementService pode ser restrito pela Filtragem UAC. Para obter mais informações, consulte Controle de Conta de Usuário e WMI.

Exemplos

O exemplo de C# a seguir usa o método DestroySystem para remover uma máquina virtual planejada. Esse código é obtido do exemplo de máquinas virtuais planejadas do Hyper-V. Os utilitários referenciados podem ser encontrados em utilitários comuns para os exemplos de virtualização (V2).

Importante

Para funcionar corretamente, o código a seguir deve ser executado no servidor host da máquina virtual e deve ser executado com privilégios de administrador.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2012 [somente aplicativos da área de trabalho]
Namespace
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Confira também

Msvm_VirtualSystemManagementService