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.