Nuget for hyperv control from C#
Best used with inversion of control
Get it here: Install-Package HyperVRemote
###Initialisation An example when adding to IoC
private const string MachineName = "__YOUR__COMPUTER_OR__VM__";
private const string TestUserName = @"__YOUR_USERNAME__";
private const string TestPassword = @"__OUR_PASSWORD__";
private const string TestServerName = @"__YOUR_SERVER__";
private const string TestNameSpace = @"root\virtualization\v2";
builder.RegisterType<HyperVConfiguration>().As<IHyperVConfiguration>().WithParameters(new[]
{
new ResolvedParameter((p,c) =>
p.Name == "username",
(p,c) => TestUserName),
new ResolvedParameter((p,c) =>
p.Name == "userpassword",
(p,c) => TestPassword),
new ResolvedParameter((p,c) =>
p.Name == "servername",
(p,c) => TestServerName),
new ResolvedParameter((p,c) =>
p.Name == "nameSpace",
(p,c) => TestNameSpace),
});
builder.RegisterType<HyperVMachine>().As<IHyperVMachine>();
builder.RegisterType<HyperVProvider>().As<IHyperVProvider>();
Or initialising standalone
HyperVConfiguration configuration = new HyperVConfiguration {
TestUserName,
TestUserPassword,
TestServerName,
TestNameSpace
};
HyperVProvider provider = new HyperVProvider(configuration);
###API Overview
HyperVStatus GetStatus(IHyperVMachine machine);
void Connect();
IEnumerable<IHyperVMachine> GetMachines();
IHyperVMachine GetMachineByName(string name);
string GetName(IHyperVMachine machine);
void Start(IHyperVMachine machine);
void Stop(IHyperVMachine machine);
void Reset(IHyperVMachine machine);
void RestoreLastSnapShot(IHyperVMachine machine);
###Example
var provider = _container.Resolve<IHyperVProvider>();
provider.Connect();
IEnumerable<IHyperVMachine> machines = provider.GetMachines();
foreach (var machine in machines)
{
Debug.WriteLine("Found machine => " + provider.GetName(machine));
}
IHyperVMachine machine = provider.GetMachineByName("SomeVM");
provider.Reset(machine);