Troubleshooting the Hyper-V Virtual Switch – Part 2 Troubleshooting the Hyper-V Virtual Switch – Part 2

11 Jun by Eric Siron     11     Hyper-V Articles

In the previous part of this series, we looked at poorly performing virtual switches. In this part, we’ll look at ways to troubleshoot virtual switches that don’t work at all.

Usually, a switch that doesn’t work at all is the result of a configuration error. The number one way to cause switch failure at creation is to use Hyper-V Manager from a remote computer to create a switch on the same physical adapter that the Hyper-V host is using to connect to the network (2008 R2 and prior). This causes a network disconnect that prevents the tool from finishing the creation process, leaving it in a state in which the switch isn’t created but the host can no longer use it is as a regular network connection, either.

The Easy Way

If possible, use Hyper-V Manager to remove the switch and start over. On 2012, try the Remove-VMSwitch cmdlet. Sometimes, it’s just that easy.

The Hard Way

On a GUI system, you’ll find that the physical adapter is bound to an item called the “Hyper-V Extensible Virtual Switch” and that this item cannot be unchecked. The system will allow it to be uninstalled. If you choose this approach, you can re-add it by clicking “Install” and choosing “Protocol”. This will also remove any switches, including any invalid ones.

NVSPBind

On a non-GUI system, repairing the switch will require a little more effort. Fortunately, there are some tools to help out. First among these is NVSPBIND. This tool gives you access to the bindings in a similar fashion to the GUI tool. It’s not an installable tool; the file you download is a self-extracting archive. When you run it, you’ll give it a target folder. Among the three extracted files is “nvspbind.exe”, which is the tool you’re looking for.

If you run just NVSPIND.EXE with no switches, it will dump a list of all adapters and the protocols that are bound to them. We’re not here for a list, though. We’re here to fix an adapter. You can scroll through the entire list looking for the adapter in question, or you can narrow it down to only the ones with the virtual switch bound to it. What you want first is the actual name of the adapter you’re working on. To find it quickly:

A sample output follows:

From the above, “Ethernet” is the name of the adapter we need. Now, we need that adapter’s GUID. Feed it back through NVSPBIND with the /n switch:

The quotes in the above aren’t strictly necessary since it’s only one word, but you’ll need those quotes if your adapter has more. The output has the ID we need:

Our adapter’s ID is {E868A1F0-A435-4421-BB97-AB506F336419}. Just feed it back into NVSPBIND with the /u switch:

If all is well, the virtual switch protocol will be disabled and all others will be enabled. You should now be able to use the adapter as desired.

NVSPSCRUB

If the above did not clear your issue, the next tool available to you is NVSPSCRUB. This download link is an unpackaged Javascript file, so you’ll need to unblock it in order to use it. There is an Unblock button on its properties sheet in Windows Explorer, or you can use the Unblock-File PowerShell cmdlet. This utility is much easier to use than NVSPBIND. If you’re trying to fix a broken switch and NVSPIND didn’t help, run:

You can also use it with /V if you want to clean out any virtual adapters that are no longer functional. The difference between this tool and NVSPBIND is that NVSPBIND will return the adapter to the condition it was in prior to the virtual switch being bound to it, which generally means that it will rebind it to TCP/IP and the Microsoft networking services. NVSPSCRUB will leave it unbound from everything.

NETCFG

NETCFG.EXE is a generic tool built-in to Windows. Its purpose is the installation and uninstallation of protocols, services, and clients on adapters. Start with the uninstallation:

Restart the system.

After it reboots, enter the following, depending on the system:

2008 R2 RTM:

2008 R2 SP1:

2012 and Windows 8:

2012 R2 and Windows 8.1

Note: These operating systems have multiple folders with the wvms_pp.inf driver. The text below references the most current version as of December 18th, 2014. When typing this line, press [TAB] after C:\Windows\winsxs\amd64_wvms_pp.inf and cycle through until you find the folder with the highest version number. Proceed from there.

Restart the system again, and the protocol will have been removed from all adapters.

Follow-Up

All of the above has been intended to reset the system so that you can try to create a functional switch. Make sure you understand how the switch works. If you’re going to create it on the primary adapter for the host, you must use the “Share” option or the host will be unable to communicate. If the host has another primary connection, do not use the “Share” option.

 

Have any questions?

Leave a comment below!

Backing up Hyper-V

If you’d like to make backing up your Hyper-V VMs easy, fast and reliable, check out Altaro Hyper-V Backup v4. It’s free for up to 2 VMs and supports Hyper-V Server 2012 R2! Need more? Download a 30-day trial of our Unlimited Edition here: http://www.altaro.com/hyper-v-backup/.

Receive all our free Hyper-V guides, checklists and ebooks first via email!

(Don’t worry, we hate spam too!)

Eric Siron

I have worked in the information technology field since 1998. I have designed, deployed, and maintained server, desktop, network, and storage systems. I provided all levels of support for businesses ranging from single-user through enterprises with thousands of seats. Along the way, I have achieved a number of Microsoft certifications and was a Microsoft Certified Trainer for four years. In 2010, I deployed a Hyper-V Server 2008 R2 system and began writing about my experiences. Since then, I have been writing regular blogs and contributing what I can to the Hyper-V community through forum participation and free scripts.

11 Responses to “Troubleshooting the Hyper-V Virtual Switch – Part 2”

  1. Nigel

    Hi Eric,
    Great content but I’ve got something different I’m hoping you can help me with. I have a virtual switch on a host that has lost it’s NIC altogether. I’m unable to remove the virtual switch either from VMM or Powershell. Have you any ideas how I can remove it. Below is the powershell output:

    Remove-VSwitch : Failed while removing virtual Ethernet switch.
    Failed to connect Ethernet switch port (switch name =
    ’19C995FD-3E13-4ACB-967C-4B77D3DF8935′, port name =
    ’359B5EEC-6279-4EB4-86F0-94736F93E289′, adapter GUID =
    ‘{01DA4A52-CC56-4785-A436-828AB3F3807D}’): The system cannot find file specified. (0×80070002).
    Ethernet port ‘{01DA4A52-CC56-4785-A436-828AB3F3807D}’ unbind failed: No more data available. (0×80070103).

    Also and aside from the above, when I check Hardware | Network Adapters, I still have a NIC with it’s logical network associated to a now deleted uplink port profile! How do I disassociated it?

    Any help clearing either or both of these two issue would be appreciated.

    Thanks.
    Nigel

    • Eric Siron
      Eric Siron

      Hi Nigel,
      Have you tried the above? The information in this post is specifically intended to provide assistance when PowerShell and Hyper-V Manager do not work.

  2. Nigel

    Hi Eric,
    The problem I have isn’t that I have a NIC that needs to be unbound. I have a vswitch on a host without a NIC that I can’t remove. Any ideas?

    • Eric Siron
      Eric Siron

      I understand that. But even switches that aren’t bound to a physical adapter still have to follow all these rules. I expect that NVSPBIND won’t do a lot for you, but the other two might. But, they might not. If I could duplicate your issue I’d try it.

  3. Nigel

    Hi Eric,
    I bow to your superior knowledge. The javascript did the job with the /p. Thanks.

    • Eric Siron
      Eric Siron

      Ha! No bowing, please. It gives me fathead disease.
      Glad you got it fixed!

  4. Nigel

    Ok, nearly there. I still have an uplink port profile set that is associated to a NIC that I can’t unassociate, as the profile has previously been removed. Any idea how I might unassociate the NIC from the now deleted port profile?

    • Eric Siron
      Eric Siron

      I’m still at minimal competence level in SCVMM 2012. Usually I have to fix stuff like that by dipping into the database. How’s your SQL?

  5. Nigel

    Very rusty, but I get by. I used to be software developer so I can man handle T-SQL. Any idea where to start. Have you a schema for the DB?

    • Eric Siron
      Eric Siron

      I usually just drop right into it. Of course, I always make a backup and work on that. Well, usually. OK, occasionally.
      I’m looking at these tables:
      [VirtualManagerDB].[dbo].[tbl_NetMan_UplinkPortProfile]
      [VirtualManagerDB].[dbo].[tbl_ADHC_HostNetworkAdapter]
      [VirtualManagerDB].[dbo].[tbl_NetMan_LogicalSwitch]
      Maybe:
      [VirtualManagerDB].[dbo].[tbl_NetMan_VirtualNicPortProfile]

      The foreign keys can usually help you track back to what you need.

  6. Nigel

    Thanks the info. The wife’s giving me THAT look now as I promised her I’d take he out. I’ll take a look over the weekend. Thanks again for your time on this.

Leave a comment