IPv6 is enabled by default in all versions of Microsoft Windows 8 and Server 2012. Unless explicitly disabled, IPv6 will also be enabled (or reenabled) upon upgrading to any version of Windows 8 or Server 2012. If you want to disable IPv6 in Windows 8 or Server 2012, the following three methods are available.
Caution: In this September 2011 IPv6 for Microsoft Windows: Frequently Asked Questions article, Microsoft recommends that IPv6 not be completely disabled, but instead that the IPv6-tunneling interfaces be disabled. As the answer to the question “What are Microsoft's recommendations about disabling IPv6?” answer in that September 2011 article points out, Windows operating systems’ configurations with IPv6 completely disabled have not been tested for correct behavior nor are they formally certified for use.
(Traditional method used by previous Windows versions.) In the Network Connections folder of the Network and Sharing Center, obtain properties on all of your connections and adapters and clear the check box next to the Internet Protocol version 6 (TCP/IPv6) component in the list under This connection uses the following items. This method can be used to disable IPv6 on each network interface and connection, but does not disable IPv6-tunneling interfaces nor the IPv6 loopback interface.
(New method for Windows 8 and Server 2012.) Open a PowerShell cmdlet as an Administrator. Run the cmdlet
to list all Network Adapters on the computer and the state of the ms_tcpip6 ComponentID for each Network Adapter. For each Network Adapter for which the ComponentID ms_tcpip6 shows Enabled = True, run the cmdlet
Set-NetAdapterBinding -Name “Network Adapter Name” –ComponentID ms_tcpip6 –Enabled $False
The netsh command line interface which was used in Windows 7 and Server 2008 to configure and manage TCP/IP configurations still exists in Windows 8 and Server 2012, but Microsoft recommends that you transition to Powershell. Microsoft’s goal is that IT pros will manage everything using PowerShell. In future updates of Windows, Microsoft may remove the netsh functionality.
Search for the regedit app and run as an Administrator. (The regedit app is an updated version of the Registry Editor command regedit in Windows 7.)
If it doesn’t already exist, add the following registry value (DWORD type):
DisabledComponents will be set to 0x0 by default. Set it to 0xFFFFFFFF to disable IPv6 on all your network interfaces, connections, and IPv6 tunneling interfaces. You must restart the computer for this registry value to take effect.
Note: In line with the Microsoft recommendation mentioned at the beginning of this article, it is suggested that DisabledComponents be set to 0xFFFFFFEF rather than 0xFFFFFFFF.
When DisabledComponents exists and a DisabledComponents bit is set, it overrides any settings established by methods 1 and 2. As was the case in Windows Vista and Windows 7, the DisabledComponents registry value is a bit mask that controls the following series of flags, starting with the low order bit (Bit 0):
1. Bit 0 Set to 1 to disable all IPv6 tunnel interfaces, including ISATAP, 6to4, and Teredo tunnels. Default value is 0. 2. Bit 1 Set to 1 to disable all 6to4-based interfaces. Default value is 0. 3. Bit 2 Set to 1 to disable all ISATAP-based interfaces. Default value is 0. 4. Bit 3 Set to 1 to disable all Teredo-based interfaces. Default value is 0. 5. Bit 4 Set to 1 to disable IPv6 over all non-tunnel interfaces, including LAN interfaces and Point-to-Point Protocol (PPP)-based interfaces. Default value is 0. 6. Bit 5 Set to 1 to modify the default prefix policy table to prefer IPv4 to IPv6 when attempting connections. Default value is 0.
To determine the value of DisabledComponents for a specific set of bits, construct a binary number consisting of the bits and their values in their correct position and convert the resulting number to hexadecimal. For example, if you want to disable 6to4 interfaces, disable Teredo interfaces, and prefer IPv4 to IPv6, you would construct the following binary number: 101010. When converted to hexadecimal, the value of DisabledComponents is 0×FFFFFF2A.