Announcing NVSPBind


 

A quick post to announce the availability of a new utility written by a colleague of mine in the Hyper-V team, Keith Mange. NVSPBind (Network Virtual Service Provider Bind) overcomes a shortfall that many people hit in server core installations of Windows Server 2008, Windows Server 2008 R2 and Microsoft Hyper-V Server.

In a full installation of Windows, it is possible to enable or disable protocols from a network adapter using the network connections applet in the control panel (aka ncpl.cpl) by simply checking or unchecking protocols as necessary.

LAN Properties

This applet isn't available in server core and there is no in-box utility to perform this action. Let's walk through a really simple example and say we want to disable File and Printer Sharing for Microsoft Networks on an adapter.

The first step is to obtain the GUID which uniquely identifies the adapter. This can be achieved by running nvspbind with no command line parameters. Here's the truncated output from a test machine showing the NIC I'm looking for:

{F93672D9-9085-4EEF-9669154AD4391ED7}
"pci\ven_8086&dev_10c9&subsys_a03c8086"
"Intel(R) Gigabit ET Dual Port Server Adapter":
   enabled:  ms_netbios       (NetBIOS Interface)
   enabled:  ms_server        (File and Printer Sharing for Microsoft Networks)
   enabled:  ms_pacer         (QoS Packet Scheduler)
   disabled: ms_ndiscap       (NDIS Capture LightWeight Filter)
   enabled:  ms_wfplwf        (WFP Lightweight Filter)
   enabled:  ms_msclient      (Client for Microsoft Networks)
   enabled:  ms_tcpip6        (Internet Protocol Version 6 (TCP/IPv6))
   enabled:  ms_netbt         (WINS Client(TCP/IP) Protocol)
   enabled:  ms_smb           (Microsoft NetbiosSmb)
   enabled:  ms_tcpip         (Internet Protocol Version 4 (TCP/IPv4))
   enabled:  ms_lltdio        (Link-Layer Topology Discovery Mapper I/O Driver)
   enabled:  ms_rspndr        (Link-Layer Topology Discovery Responder)
   enabled:  ms_pppoe         (Point to Point Protocol Over Ethernet)
   enabled:  ms_ndisuio       (NDIS Usermode I/O Protocol)
   disabled: vms_pp           (Microsoft Virtual Network Switch Protocol)

The GUID is right at the top of the output (starting "{F9367"). The protocol I want to unbind in this example is ms_server (the short name for File and Printer Sharing for Microsoft Networks).

This is achieved using the -d parameter as follows:

C:\>nvspbind -d {F93672D9-9085-4EEF-9669154AD4391ED7} ms_server
Hyper-V Network VSP Bind Application 6.1.7672.0.
Copyright (c) Microsoft Corporation. All rights reserved.
acquiring write lock…success

Adapters:
{F93672D9-9085-4EEF-9669154AD4391ED7}
"pci\ven_8086&dev_10c9&subsys_a03c8086"
"Intel(R) Gigabit ET Dual Port Server Adapter":
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
applying changes…
cleaning up…releasing write lock…success
finished
C:\>

NVSPBind also has the ability to enable bindings, bind or unbind the Hyper-V network switch protocol from a NIC and repair bindings on a NIC. More information on scenarios and usage is in the package which can be downloaded from http://code.msdn.microsoft.com/NVSPBind. Update 19th June 2014 – The new home for this utility is http://gallery.technet.microsoft.com/Hyper-V-Network-VSP-Bind-cf937850

As with all utilities which change network configurations, be extremely careful as you may disrupt or even lose network connectivity if you are managing a machine remotely. It may be handy to have Keith's other utility around just in case. http://code.msdn.microsoft.com/nvspscrub

Cheers,
John.

Comments (29)

  1. Steve/Michael/Didier – quick question just to get 100% clarification. You are referring to connection ordering as seen on a full installation from the network control panel (ncpa.cpl) then on the Advanced menu, select Advanced Settings. From the dialog, on the Adapters and Bindings, you are referring to the top scroll box listing the connections, not the bottom scroll box for chosing the binding order.

    Thanks,

    John.

  2. Anonymous says:

    I just added options for querying and changing the NIC connection order.  You will have to keep in mind that ncpa.cpl shows a combination of protocols whereas NVSPBIND treats the protocols separately.  For example, the NIC connection order in ncpa.cpl is a combination of IPv4 and IPv6 whereas NVSPBIND treats them separately so you will have to do the same operations a number of times to get the equivalent behavior in ncpa.cpl.  ncpa.cpl also hides some virtual NICs whereas NVSPBIND does not so you will see some interesting NIC names.

  3. Didier/Michael – Keith has your feedback. Can’t promise anything though….

    Cheers,

    John.

  4. Anonymous says:

    I am getting an error:

    'unable to acquire write lock, error = 80070005, owner=(null)

    Any thoughts to resolve this please?

  5. Dave – looks like there's a problem on the site, I've reported it to support services. Try this direct link instead code.msdn.microsoft.com/…/ProjectReleases.aspx

    John.

  6. yup. _ says:

    This is good to avoid the registry, bu getting guid from wmic nicconfig is still easy/better.

  7. Anonymous says:

    Is possible use NVSPBind with non-english verzion Windows (Xp, 7)?

  8. Didier Van Hoye says:

    Very good Howard … very long overdue! But isn’t one thing still very much missing (one of the reasons we dumped core for full installs) NIC/connection ordering? That can be very useful and is hell to do in the registry when you have many NICS.

    Cheers

  9. Michael Åström says:

    I’m also very interested in NIC/connection ordering!

  10. Steve Winfield says:

    Please can we have nic connection ordering yesterday !!!!

    Its a show stopper for many customers trying to deploy core

    Especially if you have 2 on board & 2Xquad nics in a server

    and a 16 server cluster farm

    Your looking a 16 weeks just to get the networking confirgured correctly

  11. Didier Van Hoye says:

    Yes John,

    That’s what I’m referring to. The top one indeed!

    Cheers & Thank You for trying 🙂

  12. Didier Van Hoye says:

    Keith, John,

    Thank You, Thank You, Thank You. This is really very much appreciated.

  13. Hector Ortiz says:

    This is an awesome App.  Took me 10 minutes to figure it out and save me a lot of time on our Hyper-V core servers.  

  14. Scott Reber says:

    This is a great tool!  Can this tool or some other allow the rename of a NIC from Server Core Win2008R2?

  15. Scott Reber says:

    This is a great tool!  Can this tool or some other allow the rename of a NIC from Server Core Win2008R2?

  16. Paul Spontaneo says:

    Need some clarification with respect to NVSPBind vs ncpa.cpl — Basically, the connection ordering in ncpa.cpl is not protocol-specific.  So, when following Hyper-V R2 best practices, as listed here from NetApp:  blogs.netapp.com/…/hyper-v-networking-best-practices-part-three.html, it's easy to do.

    However, in order to achieve the same thing with NVSPBind, do I need to manually adjust the binding order for every single protocol (i.e.  ms_tcpip, ms_tcpip6, ms_netbt, ms_smb, etc.)??

    If so, is there anyway do to this globally using NVSPBind, instead of having to manually re-adjust the settings for every protocol?

    As of now, I have only adjusted the connection ordering for ms_tcpip, because we unbind ms_tcpip6.  However, I want to ensure that this is the equivalent of setting the connection order via ncpa.cpl.

    Thanks in advance.

  17. Paul Spontaneo says:

    Need some clarification with respect to NVSPBind vs ncpa.cpl — Basically, the connection ordering in ncpa.cpl is not protocol-specific.  So, when following Hyper-V R2 best practices, as listed here from NetApp:  blogs.netapp.com/…/hyper-v-networking-best-practices-part-three.html, it's easy to do.

    However, in order to achieve the same thing with NVSPBind, do I need to manually adjust the binding order for every single protocol (i.e.  ms_tcpip, ms_tcpip6, ms_netbt, ms_smb, etc.)??

    If so, is there anyway do to this globally using NVSPBind, instead of having to manually re-adjust the settings for every protocol?

    As of now, I have only adjusted the connection ordering for ms_tcpip, because we unbind ms_tcpip6.  However, I want to ensure that this is the equivalent of setting the connection order via ncpa.cpl.

    Thanks in advance.

  18. Dave says:

    The download link for NVSPBind is not working?

    code.msdn.microsoft.com/NVSPBind

  19. Roman says:

    Is possible use NVSPBind with non english Windows?

  20. Nomadd says:

    Many thanks guys!  IT Heroes!

    Have you added the ability to rename adapters yet? i.e. We have a quad NIC and rename them as Internal, External, Mgmt etc.

  21. JoeZeppy412 says:

    Are the exit codes documented anywhere?

  22. Johan Persson says:

    Is this tool still downloadable? Cannot seem to get the link
    http://code.msdn.microsoft.com/nvspbind to work…

  23. Kevin Gould says:

    I had our TAM reach out to the developer, and apparently the tool has been deliberately removed from the site, though he confirms there is no problem with it. There are no plans to put it back up. Unfortunate.

  24. devman says:

    Is there a new repository for nvspbind?
    http://code.msdn.microsoft.com/nvspbind has been retired.

  25. Harry Verge says:

    Searched "everywhere" and still no luck getting the NVSPBIND.exe tool. Can someone please share a valid link?

    Also, why isn't this part of Resource Kit or other….

    Thanks

  26. mkySupernoOdles says:

    Dearest, will this tool ever come back online?

  27. Troy Farrell says:

    Any updates on where we can find a current download site for NVSBIND and NVSPscrub?

    Regards

  28. Steve says:

    I tried Hyper-V on Windows 8.1. Launched the virtual machine but no internet connection. There is no external virtual switch selected (when I want to create one it doesnt let met because it s grayed). Hovering over the grayed external virtual switch a
    popup message says "No physical network drive found on the host computer. This smay be because you don't have access to view them." So I cannot create it to enable the internet for the virtual machine.

    Accessing the network adapter settings in the network and sharing center and enabling the hyper-v extensible virtual switch option doesn't let me create a external virtual switch in Hyper-V even i disable and reenable the network adapter.

    I searched the Internet but did not found the right answer for my situation.