Condividi tramite


Metodo DestroySystem della classe Msvm_VirtualSystemManagementService

Rimuove la macchina virtuale definita in precedenza dall'ambito di gestione del sistema host. Tutte le definizioni di risorse associate verranno rimosse anche. La macchina virtuale deve trovarsi nello stato disattivato o salvato prima di chiamare questo metodo.

Sintassi

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

Parametri

AffectedSystem [in]

Tipo: CIM_ComputerSystem

Riferimento a un'istanza del CIM_ComputerSystem che rappresenta l'istanza della macchina virtuale da eliminare.

Processo [out]

Tipo: CIM_ConcreteJob

Se l'operazione viene eseguita in modo asincrono, questo metodo restituirà 4096 e questo parametro conterrà un riferimento a un oggetto derivato da CIM_ConcreteJob.

Valore restituito

Tipo: uint32

Se questo metodo viene eseguito in modo sincrono, restituisce 0 se ha esito positivo. Se questo metodo viene eseguito in modo asincrono, restituisce 4096 e il parametro output job può essere usato per tenere traccia dello stato di avanzamento dell'operazione asincrona. Qualsiasi altro valore restituito indica un errore.

Completato senza errore (0)

Non supportato (1)

Errore (2)

Timeout (3)

Parametro non valido (4)

Stato non valido (5)

DMTF Riservato (..)

Parametri del metodo controllati - Processo avviato (4096)

Metodo riservato (4097..32767)

Fornitore specifico (32768..65535)

Commenti

L'accesso alla classe Msvm_VirtualSystemManagementService potrebbe essere limitato dal filtro dell'interfaccia utente. Per altre informazioni, vedere Controllo account utente e WMI.

Esempio

L'esempio C# seguente usa il metodo DestroySystem per rimuovere una macchina virtuale pianificata. Questo codice viene tratto dall'esempio di macchine virtuali pianificate hyper-V. Le utilità a cui si fa riferimento sono disponibili nelle utilità comuni per gli esempi di virtualizzazione (V2).

Importante

Per funzionare correttamente, il codice seguente deve essere eseguito nel server host della macchina virtuale e deve essere eseguito con privilegi di amministratore.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows 8 [solo app desktop]
Server minimo supportato
Windows Server 2012 [solo app desktop]
Spazio dei nomi
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Vedi anche

Msvm_VirtualSystemManagementService