The IP address is already assigned to another Microsoft Virtual Machine Bus Network Adapter


If you recreate a virtual machine and re-attach the original hard drive, you’ll sometimes get a new NIC created and the original NIC will be ‘hidden’.  There’s other scenarios but that’s the most common for me.  Then new 2nd nic will default to ‘Server Assigned IP’ and then if you try to give it the original IP (assuming you were using static IP’s), you’ll get the error below:

The IP address you have entered for this network adapter is already assigned to another adapter 'Microsoft Virtual Machine Bus Network Adapter'. 'Microsoft Virtual Machine Bus Network Adapter' is hidden from the Network Connections folder because it is not physically in the computer. If the same address is assigned to both adapters and they both become active, only one of them will use this address.  This may result in incorrect system configuration.

I noticed that my NIC was now listed as “Microsoft Virtual Machine Bus Network Adapter #2”.  But how do I remove the original phanthom network adatper.  In Device Manager, if I clicked View and Show Hidden Devices, it wasn’t there.  Finally I found this post by Shankaran with the missing piece. Here’s the steps.

  1. Open a elevated command prompt (run as administrator)
  2. Enter set devmgr_show_nonpresent_devices=1
  3. Enter start devmgmt.msc (Note: Do this from the same command window where you entered the previous command.  This is an important concept that I missed)
  4. In Device Manager, click View and Show Hidden Devices.
  5. Open Network Adapters, and right-click on the hidden NIC most likely named ‘Microsoft Virtual Machine Buss Network Adapter’ and select Uninstall.

Now you can give the IP to your NIC without any conflict.

Updating Hyper-V Guest Time


Based on this post, I tried disabling Time Synchronization in VMM but though it seemed to save it never did.

For us, hyper-v servers were part of a domain so the guest AD server was setting the time for the hyper-v hosts and they were setting it for all the guests. So we were in a bit of a loop.  More research led me to Ben Armstrong’s post and his answer to Question #6 got me going.

On the primary Active Directory server (If it’s a hyper-v Guest) add this registry setting

  • reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0
  • When prompted to “overwrite”, type Y and hit <enter>

Now you just set the NTP server as normal on that AD server and now it’ll stick.

  • win32tm /config /update / /synchfromflags:MANUAL
  • w32tm /resync

Then to send to each server if you don’t want to wait.

  • w32tm /resync /computer:<computerName> /rediscover

That should do it.