TUTOS.EU

Désactiver IPV6 en ligne de commande

Comment désactiver l'IPV6 sur une machine en ligne de commande


Attention, Microsoft préconise de prioriser Ipv4 par rapport à Ipv6 au lieu de désactiver l'ipv6.
Désactiver Ipv6 peut allonger le démarrage de Windows de 5 secondes :
https://support.microsoft.com/en-us/help/929852/guidance-for-configuring-ipv6-in-windows-for-advanced-users

La bonne pratique revient donc à prioriser Ipv4 par rapport à Ipv6 en posant cette clé de registre

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters" /v "DisabledComponents" /t REG_DWORD /d 32 /f
Lien vers le fichier : cliquez ici Copier le code

Pour supprimer ces entrées liées à IPv6

Utilisez ces commandes

netsh interface teredo set state disable
netsh interface 6to4 set state disabled
netsh interface isatap set state disabled
Lien vers le fichier : cliquez ici Copier le code

Résultat

Un ipconfig retourne maintenant moins d'éléments

Pour complètement désactiver l'IPV6, de nombreux sites indiquent qu'il faut poser une clé de registre avec pour valeur fffffff, cad 255 en décimal, puis redémarrer la machine. Comme indiqué plus haut, ce n'est pas recommandé.
Si vous voulez tout de même le faire, la clé de registre peut être posée via la commande suivante :

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters" /v "DisabledComponents" /t REG_DWORD /d 255 /f
Lien vers le fichier : cliquez ici Copier le code

Si vous êtes sur Windows 8.1, Window 2012 R2 et ultérieur, pour décocher la case IPV6 sur une carte réseau, vous pouvez utiliser et adapter la ligne de commande Powershell ci-dessous.
Remplacez bien "NomCarteReseau" par le vrai nom de votre carte réseau.

Attention : la commande Set-NetAdapterBinding n'est connue qu'à partir de PowerShell 4.0, et sur Windows 2008 R2, même si vous installez Powershell V4, la commande Set-NetAdapterBinding tout de même pas disponible.

Set-NetAdapterBinding -Name "NomCarteReseau" -ComponentID ms_tcpip6 -Enabled $False
Lien vers le fichier : cliquez ici Copier le code

Pour les autres systèmes tel que Windows 2008, une méthode simple pour décocher la case d'ipv6 est de télécharger et d'utiliser nvspbind.exe
Comme avec PowerShell V4, commencez par relever le nom de la carte réseau à traiter, soit ici Connexion au réseau local

Ensuite, entrez le nom de la carte réseau en tant que paramètre à la commande nvspbind.exe. Exemple

nvspbind.exe /d "Connexion au réseau local" ms_tcpip6
Lien vers le fichier : cliquez ici Copier le code

Exemple concret

Pour automatiser la manipulation sur toutes les cartes réseaux, vous pouvez utiliser ce vbs

Option Explicit
'List network cards with connected or Disconnected state

'http://msdn.microsoft.com/en-us/library/gg196652%28v=vs.85%29.aspx

Dim strComputer
Dim objWMIService, colItems, objItem
Dim varNbrCartes, varNomCarte
Dim WSHShell, Commande
Dim varIp, varMask, varGateway, varDNS, varSetDHCP
Dim CheminScriptActuel


CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)

Wscript.echo "Liste des cartes réseaux connectées ou désactivées :"

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where AdapterType = 'Ethernet 802.3'")
'Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionId = 'Interne'")

Set WSHShell = CreateObject("WScript.Shell")
varNbrCartes = 0
varNomCarte = ""
For Each objItem in colItems

	If (objItem.NetEnabled = True) Or (objItem.NetEnabled = False) Then 'Quand une carte est désactivée, elle ne retourne rien quand on interroge .NetEnabled A désactivée par contre elle retourne false, et si elle est connectée elle retourne true
		varNomCarte = objItem.NetConnectionId
		'Wscript.Echo "NetConnectionId: " & objItem.NetConnectionId
		'Wscript.Echo "Name : " & objItem.Name
		'Wscript.Echo "GUID : " & objItem.GUID
		'Wscript.Echo "Description : " & objItem.Description
		'Wscript.Echo "AdapterType : " & objItem.AdapterType
		'Wscript.Echo "NetEnabled : " & objItem.NetEnabled
		'Wscript.Echo "Availability : " & objItem.Availability
		
		'objItem.Disable 'In order to disable the network card
	

		Commande = CheminScriptActuel & "\nvspbind.exe /d """ & varNomCarte & """ ms_tcpip6"
		Wscript.echo "Passage de la commande " & Commande
		WSHShell.Run Commande
	End If

Next
Set objWMIService = Nothing
Set WSHShell = Nothing
Lien vers le fichier : cliquez ici Copier le code

Au pire vous pouvez décocher IPv6 sur votre carte réseau manuellement ...


En annexe la ligne de commande suivante permet de lister vos cartes réseaux actives

WMIC NICCONFIG WHERE IPENABLED=TRUE GET Description,SettingID,IPADDRESS /FORMAT:LIST
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
hpc.milSite web indiquant la commande Powershell pour décocher IpV6 sur votre carte réseau
Eniackb.blogspot.frSite indiquant comment décocher IPV6 via le registre
Expta.comBlog qui fourni un admx pour désactiver IPV6 par GPO
Ingmarverheij.comArticle de Ingmar Verheij avec tout un tas d'optimisations réseau, à la base pour optimiser PVS
Support.microsoft.comFix it de Microsoft. How to disable IPv6 or its components in Windows

Téléchargement(s)

NomSite Web d origineDescription
Hyper-V_Network_VSP_Bind_... https://gallery.technet.micros... Permet de modifier les paramètres d'une carte réseau en ligne de commande


2