使用.NET控制Hyper-V

18

有没有办法让.NET应用程序创建、删除、启动和停止Hyper-V虚拟机?

我想要通过C#应用程序自动化地启动和停止虚拟机(创建和删除也是相对应的)。我认为至少可以通过P/Invoke来实现这一点,但我找不到任何相关的讨论。

希望能提供一些好的教程或文档链接。


root\hypervisor 中有一个非常完整的 WMI 命名空间 -- 我不确定它是否有文档,但你可以自己浏览其中的类/实例/方法。 - ephemient
4个回答

16

大部分的Hyper-V自动化是通过WMI实现的。WMI并不是显式的.NET API,但从.NET方面来看,与它一起工作相当容易。

请参阅Hyper-V WMI API文档早期的v1文档


4
不要忘记考虑到在最新版本的Hyper-v中,命名空间已经移动到v2。例如,在Hyper-V 2008中,从root\virtualization到2012年,命名空间已更改为root\virtualization\v2。(Windows Server版本) 查看this post获取更多详细信息。 这对我在最新版本的Hyper-V中非常有帮助。 希望能帮到你。

2

System Center Virtual Machine Manager配备了一组非常好的.NET程序集,您可以在应用程序中自由引用。它还具有出色的Powershell界面,方便脚本编写。

但是,如果您使用的是原始Hyper-V而不是SCVMM,则我不知道该怎么办。看看能否让您的老板为您购买SCVMM。


+1 for PowerShell。看起来微软计划利用它来管理多个企业应用程序。 - TrueWill

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接