我正在使用名为VMware
的.NET VMware.Vim.dll
程序集来管理我的虚拟机。我面临的问题是:当我克隆现有的没有网络适配器的虚拟机时,生成的虚拟机有一个新的网络适配器。
以下是我正在使用的代码:
var machineName = "testVmName";
var vmNameFilter = new NameValueCollection();
filter.Add("Name", machineName);
var vm = (VirtualMachine)this._vimClient.FindEntityView(typeof(VirtualMachine), null, vmNameFilter, null);
var dcNameFilter = new NameValueCollection();
dcNameFilter.Add("Name", _dataCenterName);
var dataCenter = (Datacenter)this._vimClient.FindEntityView(typeof(Datacenter), null, dcNameFilter, null);
var vmCloneSpec = new VirtualMachineCloneSpec
{
Location = new VirtualMachineRelocateSpec
{
},
PowerOn = false,
Template = false
};
vm.CloneVM(dataCenter.VmFolder, newVmName, vmCloneSpec)
如何强制API不创建新的网络适配器?
答案 0 :(得分:0)
免责声明:我不是这方面的专家,但我认为这就是你想做的事。
通过查看VirtualMachineCloneSpec的文档,似乎有一个名为config
的属性。然后,此属性有一个名为netowrkShaper
的属性,其中一个名为enabled
。我的猜测是尝试做类似以下的事情:
vmCloneSpec.config.netowrkShaper.enabled = false;
或者更有可能看到它们是自定义对象:
vmCloneSpec.config = new VirtualMachineConfigSpec()
{
networkShaper = new VirtualMachineNetworkShaperInfo()
{
enabled = false;
}
}
据我所知,这可能是你正在寻找的东西。