Configuring Jumbo Frames Using PowerShell

Another new version of Windows Server, more features, and another set of PowerShell scripts to write Smile  My host design will be taking advantage of the fact that I have 4 * 10 GbE NICs in each host to play with, and I’ll be implementing my recent converged networks design for SMB 3.0 storage (use the search tool on the top right).

A key in the design is to use the full bandwidth of the NICs.  That means configuring the packet or payload size of each NIC, aka configuring Jumbo Frames.  You can do this by hand, but that’s going to:

  • Get pretty boring after a couple of NICs.
  • Be mistake prone: please send €10 to me every time you get this setting wrong if you disagree with me and continue to do it by hand.


You can configure this setting using PowerShell.  It’s not immediately discoverable, but here’s how I discovered it for my NICs.

I ran Get-NetAdapterAdvancedProperty, targeting a 10 GbE NIC.  That returned the advanced settings and their values of the NIC.  These aren’t the traditional attributes.  Each setting has two values:

  • DisplayName: The NIC setting name
  • DisplayValue: The NIC setting value

I knew from the GUI that the DisplayName was Packet Size and that the desired DisplayValue would be 9014.  Now I could configure the setting:

Set-NetAdapterAdvancedProperty <NIC Name> –DisplayName “Packet Size” –DisplayValue “9014”

I could run that command over and over for each NIC.  Consistent Device Naming (CDN) would make this easier, if my servers were new enough to have CDN Smile  I want to configure all my 10 GbE NICs and not configure my still-enabled 1 GbE NIC (used for remote management).  Here’s how I can target the NICs with the setting:

Get-NetAdapter * | Where-Object { $_.TransmitLinkSpeed –EQ “10000000000” } | Set-NetAdapterAdvancedProperty –DisplayName “Packet Size” –DisplayValue “9014”

The first half of that line finds the 10 GbE NICs, thus filtering out the 1 GbE NICs.  Now I can use that line as part of a greater script to configure my hosts.

One thought on “Configuring Jumbo Frames Using PowerShell”

  1. Slight adjustment I had to do to get it to work on 2012 R2.
    $Netadapter = Get-NetAdapter * | Where-Object { $_.TransmitLinkSpeed –EQ “10000000000” }
    Set-NetAdapterAdvancedProperty $ -DisplayName “Jumbo Packet” -DisplayValue “9014 Bytes”

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.