如何从 Hyper-V 集群中删除虚拟机?

How to remove virtual machine from Hyper-V cluster?

有一个集群节点,我在上面创建了虚拟机:

之后,我使用方法 AddVirtualMachineexisting 虚拟机添加到集群。

但是没有对应的方法DeleteVirtualMachine

如果我只是从节点中删除虚拟机,那么集群上会留下以下工件:

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

我反编译了Microsoft.FailoverClusters.PowerShell.dll,发现我们需要使用WMIclassMSCluster_ResourceGroup

这是通过 powershell 完成的方法:

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

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

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 => { });
    }
}