Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
The following C# and VBScript samples import a virtual machine (VM).
C#: The referenced utilities can be found in Common Utilities for the Virtualization Samples.
using System;
using System.IO;
using System.Management;
namespace HyperVSamples
{
class ImportVirtualSystemExMoreGranularClass
{
static ManagementObject CreateSwitch(ManagementScope scope, string name, string friendlyName, int learnableAddress)
{
ManagementObject switchService = Utility.GetServiceObject(scope, "Msvm_VirtualSwitchManagementService");
ManagementObject createdSwitch = null;
ManagementBaseObject inParams = switchService.GetMethodParameters("CreateSwitch");
inParams["FriendlyName"] = friendlyName;
inParams["Name"] = name;
inParams["NumLearnableAddresses"] = learnableAddress;
inParams["ScopeofResidence"] = null;
ManagementBaseObject outParams = switchService.InvokeMethod("CreateSwitch", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
Console.WriteLine("{0} was created successfully", inParams["Name"]);
createdSwitch = new ManagementObject(outParams["CreatedVirtualSwitch"].ToString());
}
else
{
Console.WriteLine("Failed to create {0} switch.", inParams["Name"]);
}
return createdSwitch;
}
static ManagementBaseObject GetVirtualSystemImportSettingData(ManagementScope scope, string importDirectory, string rootDirectoryToCopy)
{
string targetVhdResourcePath = importDirectory + "\\Temp.vhd"; //Directories specified should exist
ManagementObject virtualSystemService = Utility.GetServiceObject(scope, "Msvm_VirtualSystemManagementService");
ManagementBaseObject importSettingData = null;
ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("GetVirtualSystemImportSettingData");
inParams["ImportDirectory"] = importDirectory;
ManagementBaseObject outParams = virtualSystemService.InvokeMethod("GetVirtualSystemImportSettingData", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
importSettingData = (ManagementBaseObject)outParams["ImportSettingData"];
Console.WriteLine("Import Setting Data for the ImportDirectory '{0}' was retrieved successfully.", importDirectory);
}
else
{
Console.WriteLine("Failed to get the Import Setting Data");
}
}
else if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
importSettingData = (ManagementBaseObject)outParams["ImportSettingData"];
Console.WriteLine("Import Setting Data for the ImportDirectory '{0}' was retrieved successfully.", importDirectory);
}
else
{
Console.WriteLine("Failed to get the Import Setting Data for the Import Directory :{0}", (UInt32)outParams["ReturnValue"]);
}
inParams.Dispose();
outParams.Dispose();
virtualSystemService.Dispose();
importSettingData["GenerateNewId"] = true;
importSettingData["CreateCopy"] = true;
importSettingData["Name"] = "NewSampleVM";
importSettingData["TargetResourcePaths"] = new string[] { (targetVhdResourcePath) };
ManagementObject newSwitch = CreateSwitch(scope, "Switch_For_Import_Export_Sample", "Switch_For_Import_Export_Sample", 1024);
importSettingData["TargetNetworkConnections"] = new string[] { (newSwitch.GetPropertyValue("Name").ToString())};
return importSettingData;
}
static void ImportVirtualSystemEx(string importDirectory)
{
string importCopyDirectory = importDirectory + "\\NewCopy";
ManagementScope scope = new ManagementScope(@"root\virtualization", null);
ManagementObject virtualSystemService = Utility.GetServiceObject(scope, "Msvm_VirtualSystemManagementService");
ManagementBaseObject importSettingData = GetVirtualSystemImportSettingData(scope, importDirectory, importCopyDirectory);
ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("ImportVirtualSystemEx");
inParams["ImportDirectory"] = importDirectory;
inParams["ImportSettingData"] = importSettingData.GetText(TextFormat.CimDtd20);
ManagementBaseObject outParams = virtualSystemService.InvokeMethod("ImportVirtualSystemEx", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("VM were Imported successfully.");
}
else
{
Console.WriteLine("Failed to Imported VM");
}
}
else if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
Console.WriteLine("VM were Imported successfully.");
}
else
{
Console.WriteLine("Import virtual system failed with error:{0}", outParams["ReturnValue"]);
}
inParams.Dispose();
outParams.Dispose();
virtualSystemService.Dispose();
}
static void Main(string[] args)
{
if (args != null && args.Length != 1)
{
Console.WriteLine("Usage: ImportVirtualSystemExMoreGranular importDirectory");
return;
}
ImportVirtualSystemEx(args[0]);
}
}
}
| VB |
|---|
|