在 C# 中设置新的来宾虚拟网络适配器?

Setting up a new guest virtual network adapter in C#?

在 PowerCLI 中,您基本上会这样做

$vm | New-NetworkAdapter -Portgroup $name -Type Vmxnet3 -StartConnected

完成。

但是,我正在尝试在 .Net 中完成此操作。我能够连接到 vsphere 并查询获取 VirtualMachine。我什至可以使用

查询适配器是否存在
vm.Guest.Net.NotEmpty() && vm.Guest.Net.Where(nicInfo => nicInfo.Network == portgroupName).NotEmpty();

我只是不确定如何在确定适配器不存在后实际添加它。

有什么帮助吗? link 举个例子就好了,我用谷歌搜索了整个地方,但找不到我要找的东西。

您使用的是标准 vSphere SDK 还是在其之上的某种包装器?我没有在 vSphere SDK 中看到 vm.Guest.Net 语法。

假设您正在使用网络服务 SDK,您可以通过 ReconfigVM_Task API 调用 (http://pubs.vmware.com/vsphere-60/topic/com.vmware.wssdk.apiref.doc/vim.VirtualMachine.html?path=7_1_0_2_5_16_25#reconfigure) 添加 NIC。在高级别,您将需要创建一个 VirtualMachineConfigSpec 和一个包含您要创建的 NIC 的 deviceChange 字段。由于您的 PowerShell 示例提到了 VmxNet3,因此您需要 VirtualVmxnet3 类型的设备,其 backing 字段的类型为 VirtualEthernetCardDistributedVirtualPortBackingInfo(如果您连接到 VDS)或 VirtualEthernetCardNetworkBackingInfo(如果您连接到 VSS)。

一旦您将该配置规范传递给 ReconfigVM_Task API,它应该会更新 VM 并为您添加 NIC。