This is an interesting question. My first thought was to make sure you had a VM running virtual HW version 7, but I tried it with the same results.
So, I also started messing around with it to see if I could figure out how ESX is determining the adapter types. In the following output, adapter 1 is the Flexible type, followed by a VMXNET 3, a VMXNET and an Enhanced VMXNET. (I added the VMXNET3 using the GUI) As you can see, all of the VMXNET adapters show up as 'Vmxnet', meaning that there is somewhere else the type is stored.
[vSphere PowerCLI] C:\> get-vm test | Get-NetworkAdapter | select Name,Type,MacAddress
Name Type MacAddress
---- ---- ----------
Network adapter 1 Flexible 00:50:56:90:01:f9
Network adapter 2 Vmxnet 00:0c:29:a9:05:b2
Network adapter 3 Vmxnet 00:0c:29:a9:05:bc
Network adapter 4 Vmxnet 00:0c:29:a9:05:c6
I get the following error when I try to add the adapter
[vSphere PowerCLI] C:\> $nic = New-NetworkAdapter -NetworkName "VM Network" -vm $t -Type "VMXNET 3"
New-NetworkAdapter : Cannot bind parameter 'Type'. Cannot convert value "VMXNET 3" to type
"VMware.VimAutomation.Types.VirtualNetworkAdapterType" due to invalid enumeration values.
Specify one of the following enumeration values and try again.
The possible enumeration values are "Unknown, e1000, Flexible, Vmxnet, EnhancedVmxnet".
My guess is that the enumeration type that is being used by the New-NetworkAdapter cmdlet needs to be updated to support the new type of adapter so that all of the appropriate bits get flipped in the correct places.
Is Carter Shanklin around? :smileyhappy:
For completeness, I grabbed the .vmx file lines for the above VM
ethernet0.addressType = "vpx"
ethernet0.generatedAddress = "00:50:56:90:01:f9"
ethernet0.networkName = "VM Network"
ethernet0.pciSlotNumber = "32"
ethernet0.present = "TRUE"
ethernet1.addressType = "generated"
ethernet1.generatedAddress = "00:0c:29:a9:05:b2"
ethernet1.generatedAddressOffset = "10"
ethernet1.networkName = "VM Network"
ethernet1.pciSlotNumber = "160"
ethernet1.present = "TRUE"
*ethernet1.virtualDev = "vmxnet3"*
ethernet2.addressType = "generated"
ethernet2.allowGuestConnectionControl = "FALSE"
ethernet2.generatedAddress = "00:0c:29:a9:05:bc"
ethernet2.generatedAddressOffset = "20"
ethernet2.networkName = "VM Network"
ethernet2.pciSlotNumber = "34"
ethernet2.present = "TRUE"
ethernet2.startConnected = "FALSE"
*ethernet2.virtualDev = "vmxnet"*
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet3.addressType = "generated"
ethernet3.allowGuestConnectionControl = "FALSE"
*ethernet3.features = "15"*
ethernet3.generatedAddress = "00:0c:29:a9:05:c6"
ethernet3.generatedAddressOffset = "30"
ethernet3.networkName = "VM Network"
ethernet3.pciSlotNumber = "35"
ethernet3.present = "TRUE"
ethernet3.startConnected = "FALSE"
*ethernet3.virtualDev = "vmxnet"*
ethernet3.wakeOnPcktRcv = "FALSE"
it appears that the 'Enhanced VMxnet' adapter is flagged via the 'features="15"' option to a 'vmxnet' type and that 'vmxnet3' is its own type.