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 |
|
DLL |
|