克隆没有网络适配器的VM

时间:2015-12-04 10:01:52

标签: c# vmware vsphere

我正在使用名为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不创建新的网络适配器?

1 个答案:

答案 0 :(得分:0)

免责声明:我不是这方面的专家,但我认为这就是你想做的事。

通过查看VirtualMachineCloneSpec的文档,似乎有一个名为config的属性。然后,此属性有一个名为netowrkShaper的属性,其中一个名为enabled。我的猜测是尝试做类似以下的事情:

vmCloneSpec.config.netowrkShaper.enabled = false;

或者更有可能看到它们是自定义对象:

vmCloneSpec.config = new VirtualMachineConfigSpec()
{
    networkShaper = new VirtualMachineNetworkShaperInfo()
    {
        enabled = false;
    }
}

据我所知,这可能是你正在寻找的东西。