Hyper-V and the Phantom Network Adapter

Today I was working on migrating some virtual machines from Microsoft Virtual Server 2005 R2 to the newer Hyper-V included with Microsoft Windows Server 2008. Doing a quick search on the Internet will produce many results on what steps are required to make this move, so I will not repeat them here. I will say that you do need to pay close attention to the step where you uninstall Virtual Server Additions from your VM. Some guides say it is optional to remove it before the migration, as it can be done later. Forget the later part, and do it up front. This will save you a lot of headache in many situations.

Now to the part that is missing: the phantom network adapter.

See, if you are running DHCP on the VM, then you will not notice this. On the VMs I have been migrating, I have static IP addresses set, so after installing the Hyper-V Integration Services I see that the VMs network adapter has a different name, and it is set to DHCP. This is an easy fix. I just go into the IPv4 properties of the adapter and set it to the static IP address it had before, but as soon as I hit Apply, I get the following message:

The IP address XXX.XXX.XXX.XXX you have entered for this network adapter is already assigned to another adapter Name of adapter. Name of adapter is hidden from the network and Dial-up Connections folder because it is not physically in the computer or is a legacy adapter that is not working. If the same address is assigned to both adapters and they become active, only one of them will use this address. This may result in incorrect system configuration. Do you want to enter a different IP address for this adapter in the list of IP addresses in the advanced dialog box?

That’s right, the old network adapter is still in the system, but hidden from the device manager. Another easy fix: just go to View -> Hidden Devices in the Device Manager and…it is not freakin’ there! Again, I ask The Almighty Internet for it wisdom, and I find Microsoft Article ID: 269155. Feel free to take a look. Now really you can just click No at this point and everything will work just fine. That old adapter should not reappear considering it was a virtual adapter in the first place, and that type of virtual adapter is no longer used. Of course, if you can not stand the thought of that phantom adapter on your VM, I found that step one in the before mentioned article works well:

  1. Click Start, click Run, type cmd.exe, and then press ENTER.
  2. Type set devmgr_show_nonpresent_devices=1, and then press ENTER.
  3. Type Start DEVMGMT.MSC, and then press ENTER.
  4. Click View, and then click Show Hidden Devices.
  5. Expand the Network Adapters tree.
  6. Right-click the dimmed network adapter, and then click Uninstall.

That is it. Adapter gone. Almost anticlimactic, isn’t it?