从.NET处理Hyper-V

时间:2009-11-14 23:33:03

标签: c# .net virtual-machine hyper-v

是否有任何方法可以让.NET应用程序创建,删除,启动和停止Hyper-V虚拟机?

我想创建一种从C#应用程序启动和停止(创建和删除是奖励)虚拟机的自动方法。我认为(至少)有一种方法可以通过P / Invoke这样做,但我找不到任何讨论如何做到这一点。

任何指向一些好的演练或文档的链接都是可取的。

5 个答案:

答案 0 :(得分:12)

Hyper-V的大部分自动化都是通过WMI实现的。 WMI不是一个明确的.NET API,但它很容易使用.NET。

Hyper-V WMI API文档位于http://msdn.microsoft.com/en-us/library/cc136992(VS.85).aspx

答案 1 :(得分:4)

适用于Hyper-V的C#中的WMI包装器可在http://hypervlib.codeplex.com

获得

答案 2 :(得分:3)

请不要忘记考虑到在最新版本的hyper-v中,命名空间已移至v2。例如,从Hyper-V 2008中的root \ virtualization,名称空间在2012年已更改为root \ virtualization \ v2。(Windows 服务器版) 查看this post了解详情。

这对我最新版本的Hyper-V有很大帮助

希望它有所帮助。

答案 3 :(得分:1)

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

但是,如果您使用的是原始Hyper-V而不是SCVMM,那么我不知道。看看你是否可以让你的老板参加SCVMM。

答案 4 :(得分:1)

你可以做到这一点以及更多。 http://archive.msdn.microsoft.com/ddc 它适用于托管商,但可以在内部轻松安装。