2017-08-02 157 views
1

有在其上创建虚拟机群集节点: enter image description here如何从Hyper-V群集中删除虚拟机?

后,我使用方法AddVirtualMachine现有虚拟机添加到集群。

enter image description here

但没有相应的方法DeleteVirtualMachine

如果我只是从一个节点中删除虚拟机,那么下面的人工制品留在集群上: enter image description here

如何通过WMI从Hyper-V集群中删除我的虚拟机?

回答

0

我已反编译Microsoft.FailoverClusters.PowerShell.dll,发现我们需要使用WMI类MSCluster_ResourceGroup

这是怎么回事可以通过PowerShell中做到:

(Get-WmiObject -namespace root\mscluster -class MsCluster_ResourceGroup -filter "name='vm-name'").DestroyGroup() 

这里是MSCluster_ResourceGroup,我在C#代码中使用对象模型:

public class MsResourceGroup : ManagementObjectWrapperBase 
{ 
    public static MsResourceGroup Create(
     ManagementObject fromResourceGroupManagementObject) 
    { 
     var name = fromResourceGroupManagementObject.GetStringPropertyValue("Name"); 

     return new MsResourceGroup(
      name: name, 
      resourceGroupManagementObject: fromResourceGroupManagementObject); 
    } 

    private MsResourceGroup(
     string name, 
     ManagementObject resourceGroupManagementObject) 
     : base(resourceGroupManagementObject) 
    { 
     Name = name; 
    } 

    public string Name { get; } 

    public void DestroyGroup() 
    { 
     AsManagementObject.Invoke(
      methodName: "DestroyGroup", 
      fillInvocationParameters: inputParameters => { }); 
    } 
}