Msvm_VirtualSystemManagementService 类的 DestroySystem 方法
从主机系统的管理范围中删除以前定义的虚拟机。 还将删除任何关联的资源定义。 在调用此方法之前,虚拟机必须处于关闭或保存状态。
语法
uint32 DestroySystem(
[in] CIM_ComputerSystem REF AffectedSystem,
[out] CIM_ConcreteJob REF Job
);
参数
-
AffectedSystem [in]
-
类型: CIM_ComputerSystem
对表示要销毁的虚拟机实例的 CIM_ComputerSystem 实例的引用。
-
作业 [out]
-
类型: CIM_ConcreteJob
如果异步执行操作,则此方法将返回 4096,此参数将包含对派生自 CIM_ConcreteJob 的对象的引用。
返回值
类型: uint32
如果此方法是同步执行的,则如果成功,则返回 0。 如果此方法以异步方式执行,它将返回 4096,并且 Job 输出参数可用于跟踪异步操作的进度。 任何其他返回值都指示错误。
-
已完成,无错误 (0)
-
不支持 (1)
-
失败 (2)
-
超时 (3)
-
参数 (4) 无效
-
无效状态 (5)
-
DMTF 保留 (.)
-
方法参数已选中 - 作业已启动 (4096)
-
方法保留 (4097..32767)
-
供应商特定 (32768..65535)
备注
UAC 筛选可能会限制对 Msvm_VirtualSystemManagementService 类的访问。 有关详细信息,请参阅 用户帐户控制和 WMI。
示例
以下 C# 示例使用 DestroySystem 方法删除计划的虚拟机。 此代码取自 Hyper-V 计划的虚拟机示例。 可以在 V2) (虚拟化示例的常用实用工具 中找到引用的实用工具。
重要
若要正常运行,必须在虚拟机主机服务器上运行以下代码,并且必须使用管理员权限运行。
/// <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);
}
}
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 8 [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2012 [仅限桌面应用] |
命名空间 |
Root\Virtualization\V2 |
MOF |
|
DLL |
|