Fixing Sleepy Nics in Windows Server

After hearing about sleepy nics from an Exchange field engineer Mike O’Neill on RunAs Radio Show #367: EHLO with Mike O’Neill, I decided to incorporate the process into our buildouts and possibly via GPO/scripts. Of course, I chose powershell.

Essentially, there’s a setting for the drivers/firmware that allows the NIC to go to sleep. This can affect things like DAG groups. Coupled with the fact Power Plan settings in Windows Server can limit the CPU, it makes you wonder why there weren’t more sensible defaults for a Server OS. Also, firmware updates can change the NIC setting back.

Neither setting seems desirable, especially for the kind of stuff that generally still runs on iron (e.g. Exchange, SQL, etc).

I first made the changes manually and noted the registry values in HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\* (see: MS #2740020).

Note that the registry value PnPCapabilities is actually a hex value with various bit combinations that encompass the NIC settings. As such, I wouldn’t use the value directly indicated by Microsoft. In our case, the proper valued seemed to be 280.

The Characteristics value of 132 indicates only physical NICs (wired/wireless).


Leave a Reply

Your email address will not be published. Required fields are marked *