在没有网络适配器的情况下克隆 VM

Cloning VM without network adapter

我正在使用名为 VMware.Vim.dll 的 .NET VMware 程序集来管理我的虚拟机。我面临的问题是:当我克隆没有网络适配器的现有虚拟机时,生成的虚拟机有一个新的网络适配器。

这是我使用的代码:

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 不创建新的网络适配器?

免责声明:我不是这方面的专家,但在我看来这就是你想要做的。

通过查看 VirtualMachineCloneSpec 的文档,似乎有一个名为 config 的 属性。这个 属性 然后有一个叫做 netowrkShaper,它又有一个叫做 enabled。我的猜测是尝试执行以下操作:

vmCloneSpec.config.netowrkShaper.enabled = false;

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

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

据我从文档中得知,这可能就是您要查找的内容。