Quand on travaille très ré­gu­liè­re­ment sur la con­fi­gu­ra­tion de réseaux sous Windows, on a besoin, tôt ou tard, d’utiliser le Network Shell (Netsh). Ce nom désigne une interface entre l’uti­li­sa­teur et le système d’ex­ploi­ta­tion per­met­tant d’ad­mi­nis­trer et de con­fi­gu­rer le pa­ra­mé­trage de réseaux locaux et à distance.

Le spectre de ses pos­si­bi­li­tés d’uti­li­sa­tion s’étend du pa­ra­mé­trage du pare-feu de Windows à l’ad­mi­nis­tra­tion LAN et WLAN, en passant par la con­fi­gu­ra­tion d’IP et de serveurs. Par ailleurs, il est possible de protéger les in­fras­truc­tures reliées à Internet contre d’éven­tuelles attaques ex­té­rieures. À l’aide de cet in­ter­pré­teur de lignes de commandes, on peut aussi diag­nos­ti­quer des problèmes et effectuer des ré­pa­ra­tions sur le réseau. Netsh a un gros avantage : les tâches d’ad­mi­nis­tra­tion liées au réseau sont ef­fec­tuées avec une rapidité et un confort re­mar­quables et peuvent être au­to­ma­ti­sées avec un script.

Exécuter des commandes Netsh : démarrer l’in­ter­pré­teur de commandes

Pour utiliser Netsh, il faut se rendre au niveau des lignes de commande. On y accède via le menu « Exécuter » (« Run ») selon la procédure suivante :

  1. Appuyez si­mul­ta­né­ment sur les touches [Windows] + [R]
  2. Tapez « cmd » dans le champ (1)
  3. Cliquez sur le bouton « OK » (2)

L’invite de commande s’ouvre. Tapez « netsh » puis appuyez sur [Entrée] pour démarrer l’uti­li­taire :

Si les commandes et les scripts Netsh ne s’exécutent pas ou si vous prévoyez d’accéder plus en pro­fon­deur à la con­fi­gu­ra­tion réseau, il faut démarrer le Network Shell avec les droits ad­mi­nis­tra­teur. Sous Windows 10, les étapes suivantes sont obli­ga­toires :

  1. Cliquez droit sur le symbole Windows à gauche de la barre des tâches ou appuyez si­mul­ta­né­ment sur [Windows] + [X].
  2. Dans le menu con­tex­tuel qui s’ouvre, choi­sis­sez l’option « Invite de commandes (admin) » :

Le fichier exé­cu­table netsh.exe fait partie de Netsh et se trouve dans le dossier système de Windows (%windir%\system32). Lancer di­rec­te­ment ce fichier permet de rac­cour­cir la procédure d’accès aux commandes Netsh. Copiez le chemin d’accès C:\Windows\System32\netsh.exe dans la barre d’adresse de l’ex­plo­ra­teur Windows et appuyez sur [Entrée]. Dans la fenêtre qui s’ouvre, vous pouvez di­rec­te­ment lancer l’in­ter­pré­teur de commandes Netsh.

À l’aide d’un raccourci, vous gagnerez du temps pour démarrer l’uti­li­taire. Une fois créé, il vous suffira d’un simple clic :

  1. Cliquez droit sur le bureau Windows. Sur le menu con­tex­tuel, cliquez sur « Nouveau » (1), puis, dans le menu suivant, cliquez sur « Raccourci » (2) :
  1. Dans l’assistant de création de raccourci, saisissez le chemin d’accès C:\Windows\System32\netsh.exe (1) puis cliquez sur « Suivant » (2) :
  1. Choi­sis­sez un nom parlant pour le raccourci (1), qui sera ensuite créé sur le bureau en cliquant sur « Terminer » (2) :

Netsh : une ar­chi­tec­ture spé­ci­fique

L’uti­li­taire Netsh offre une syntaxe de commande complète. Pour lui faire faire des tâches ciblées et spé­ci­fiques, il faut se fa­mi­lia­ri­ser avec l’ar­chi­tec­ture spé­ci­fique du Network Shell. La structure de cet uti­li­taire se base sur les contextes, qui re­pré­sen­tent dif­fé­rents niveaux d’ad­mi­nis­tra­tion. Chaque contexte couvre une fonc­tion­na­lité réseau spé­ci­fique (ex. : con­fi­gu­ra­tion IP, LAN et pare-feu). Pour les in­te­rac­tions avec d’autres com­po­sants Windows dé­pen­dantes du contexte, le logiciel utilise les fichiers de Dynamic Link Library (DLL). Netsh accède au fichier Dhcpmon.dll afin de modifier et d’ad­mi­nis­trer les pa­ra­mètres DHCP.

Pour utiliser un contexte, il faut basculer dans celui-ci à partir de l’invite de commandes de Windows. On accède par exemple au contexte « Ad­mi­nis­tra­tion LAN » de la façon suivante :

  1. Une fois l’invite de commandes lancée, tapez « netsh » et confirmez en appuyant sur [Entrée].
  2. Tapez « lan » et confirmez en appuyant sur [Entrée].
  3. L’invite de commande reflète le chan­ge­ment de contexte : netsh lan>

Une fois le contexte « LAN » ouvert, vous disposez de commandes spé­ci­fiques au contexte et de commandes globales. Parmi les commandes spé­ci­fiques au contexte, il y a par exemple la commande « set » (configure les pa­ra­mètres sur une interface). La commande d’aide « /? » est un exemple de commande de base et globale. Elle liste pour chaque niveau les sous-contextes et commandes dis­po­nibles. Au niveau « LAN », après avoir tapé la commande d’aide, on obtient la liste de commandes spé­ci­fiques et globales suivantes :

Si l’on bascule dans le contexte pare-feu, la liste de commandes cor­res­pon­dante est la suivante :

Outre sa structure liée au contexte, Netsh présente d’autres par­ti­cu­la­ri­tés à l’uti­li­sa­tion. On peut l’utiliser en mode batch ou en mode in­te­rac­tif. Le mode batch exporte les pa­ra­mé­trages réseaux sensibles dans un fichier texte et les importe à nouveau pour une res­tau­ra­tion ul­té­rieure.

Le mode in­te­rac­tif permet par exemple de lancer des requêtes directes. En tapant « netsh interface ip show address », l’uti­li­taire retourne l’adresse IP actuelle de l’or­di­na­teur. Le mode in­te­rac­tif peut s’utiliser en ligne ou hors ligne. En ligne, les opé­ra­tions sont im­mé­dia­te­ment ap­pli­quées. Hors ligne, les actions sont en­re­gis­trées et ap­pli­quées ul­té­rieu­re­ment. Les actions en­re­gis­trées sont activées en temps voulu avec la commande Netsh « commit ».

Les commandes Netsh et leurs contextes

Dans le tableau suivant, nous avons ré­ca­pi­tulé les commandes Netsh les plus im­por­tantes avec de courtes ex­pli­ca­tions con­cer­nant leurs contextes. S’il s’agit d’une commande pour un contexte global, la troisième colonne ne contient pas d’in­for­ma­tion. En fonction des systèmes d’ex­ploi­ta­tion et des rôles sur le réseau (client ou serveur), les commandes dis­po­nibles peuvent parfois varier. Les commandes dis­po­nibles sur un or­di­na­teur avec Windows Server 2016 Da­ta­cen­ter sont les suivantes :

Commande Action Contexte Netsh ad­mi­nis­tré
.. Basculer vers un niveau de contexte plus élevé  
? Affiche une liste des commandes  
abort Rejette les mo­di­fi­ca­tions apportées en mode hors ligne  
add Ajoute une entrée de con­fi­gu­ra­tion à la liste  
adv­fi­re­wall Bascule vers le contexte « netsh adv­fi­re­wall » Pare-feu (règles et con­fi­gu­ra­tion)
alias Ajoute un alias  
bran­ch­cache Bascule vers le contexte « netsh bran­ch­cache » Pa­ra­mé­trage de Bran­ch­Cache
bridge Bascule vers le contexte « netsh bridge » Ponts de réseau
bye Ferme le logiciel  
commit Applique les mo­di­fi­ca­tions apportées en mode hors ligne  
delete Supprime une entrée de con­fi­gu­ra­tion de la liste des entrées  
dhcp­client Bascule vers le contexte « netsh dhcp­client » Client DHCP
dnsclient Bascule vers le contexte « netsh dnsclient » Pa­ra­mé­trages du client DNS
dump Affiche un script de con­fi­gu­ra­tion  
exec Exécute un fichier script  
exit Ferme le logiciel  
firewall Bascule vers le contexte « netsh firewall » Pare-feu (règles et con­fi­gu­ra­tion)
help Affiche une liste des commandes  
http Bascule vers le contexte « netsh http » Pilote de serveur http (http.sys)
interface Bascule vers le contexte « netsh interface » Con­fi­gu­ra­tion de l’IP (v4, v6)
ipsec Bascule vers le contexte « netsh ipsec » Règles IPSec
ip­sec­dos­pro­tec­tion Bascule vers le contexte « netsh ip­sec­dos­pro­tec­tion » Protège des attaques de déni de service IPSEC
lan Bascule vers le contexte « netsh lan » In­ter­faces de réseau filaires
namespace Bascule vers le contexte « netsh namespace » Règles du client DNS
netio Bascule vers le contexte « netsh netio » Filtre de connexion
offline Définit le mode actuel sur hors ligne  
online Définit le mode actuel sur en ligne  
popd Bascule vers le contexte en­re­gis­tré dans la pile par pushd  
pushd Transmet le contexte actuel vers la pile  
quit Ferme le logiciel  
ras Bascule vers le contexte « netsh ras » Remote-Access-Server
rpc Bascule vers le contexte « netsh rpc » Con­fi­gu­ra­tion du client RPC
set Actualise les pa­ra­mètres de con­fi­gu­ra­tion  
show Affiche les in­for­ma­tions  
trace Bascule vers le contexte « netsh trace »  
unalias Supprime un nom d’alias  
wfp Bascule vers le contexte « netsh wfp » Windows Filtering Platform
winhttp Bascule vers le contexte « netsh winhttp » Pa­ra­mé­trage proxy et tracing du client http de Windows
winsock Bascule vers le contexte « netsh winsock » Con­fi­gu­ra­tion Winsock
wlan Bascule vers le contexte « netsh wlan » In­ter­faces de réseaux sans fil

Pa­ra­mètres de syntaxe de Netsh – que sig­ni­fient-ils ?

Pour exécuter des actions et tâches concrètes, il est possible de compléter les commandes Netsh par des pa­ra­mètres en option. Le schéma de syntaxe pour associer commandes Netsh et pa­ra­mètres est le suivant :

netsh[ -a AliasFile] [ -c Context ] [ -r RemoteComputer] [ -u [ DomainName\ ] UserName ] [ -p Password | *] [{NetshCommand | -f ScriptFile}]

Les pa­ra­mètres suivants sont tous op­tion­nels et peuvent être complétés en fonction des besoins :

-a Redirige vers l’invite Netsh après l’exécution d‘AliasFile
Fichier alias (ang. : AliasFile) Spécifie le nom du fichier texte qui contient une ou plusieurs commandes Netsh
-c Bascule vers le contexte Netsh spécifié
Contexte (ang. : Context) Spécifie le contexte Netsh vers lequel vous souhaitez basculer
-r Ordonne l’exécution de la commande sur un or­di­na­teur distant (Re­mo­te­com­pu­ter) ; le client d’au­then­ti­fi­ca­tion à distance doit être en cours d’exécution.
Or­di­na­teur distant (ang. : Re­mo­te­Com­pu­ter) Nom de l’or­di­na­teur distant à con­fi­gu­rer
-u Spécifie que vous souhaitez exécuter la commande Netsh sous un compte d’uti­li­sa­teur
Nom de domaine\ (ang. : Do­main­Name\) Spécifie le domaine du compte d’uti­li­sa­teur (la valeur par défaut est le domaine local si aucun nom de domaine n’est spécifié)
Nom d’uti­li­sa­teur (ang. : UserName) Spécifie le nom du compte d’uti­li­sa­teur
-p Il est possible de fournir un mot de passe pour le compte d’uti­li­sa­teur
Mot de passe (engl: Password) Spécifie le mot de passe du compte uti­li­sa­teur que vous avez spécifié avec –u UserName.
Commande Netsh (ang. : Net­sh­Com­mand) Spécifie la commande Netsh à exécuter
-f Ferme Netsh après l’exécution du script
Fichier de script (ang. : Script­File) Spécifie le script à exécuter

Réi­ni­tia­li­ser la pile TCP/IP avec Netsh

On utilise ré­gu­liè­re­ment les commandes Netsh pour réi­ni­tia­li­ser la pile TCP/IP, qui gère l’échange de paquets de données sur les réseaux. En cas de problèmes de réseau ou d’Internet, cette mesure peut s’avérer ju­di­cieuse, car elle supprime les pro­to­coles TCP/IP erronés ou mal con­fi­gu­rés. La commande de ré­pa­ra­tion suivante opère une réi­ni­tia­li­sa­tion et réins­talle la pile TCP/IPv4 :

netsh int ip reset

Il est également possible de créer un fichier de protocole pour do­cu­men­ter les mo­di­fi­ca­tions apportées :

netsh int ip reset c:\tcpipreset.txt

Une fois la réi­ni­tia­li­sa­tion exécutée, il convient de re­dé­mar­rer l’or­di­na­teur.

Conseil

Les commandes Netsh peuvent aussi être utilisées dans des fichiers batch (*.bat) pour au­to­ma­ti­ser des routines. Découvrez en plus dans notre article pratique « Créer des fichiers batch ».

Importer et exporter des pa­ra­mètres réseau

Netsh vous permet aussi d’exporter les pa­ra­mètres de réseau actuels dans un simple fichier texte. Si vous ren­con­trez des problèmes avec le réseau, vous pourrez revenir im­mé­dia­te­ment à une con­fi­gu­ra­tion fonc­tion­nelle et sans erreur.

Pour la première étape, l’export, il faut lire la con­fi­gu­ra­tion du réseau, la convertir en fichier texte (netcnfig.txt) et, par exemple, l’en­re­gis­trer dans le dossier « con­fi­gre­seau » sur le disque C:\. Le dossier « con­fi­gre­seau » doit être créé ma­nuel­le­ment avant le premier export sur le disque cible (Netsh ne le fait pas au­to­ma­ti­que­ment). Ensuite, ouvrez l’invite de commande et tapez la portion de code suivante :

netsh -c interface dump>c:\configreseau\netcnfig.txt

Pour importer les pa­ra­mé­trages ul­té­rieu­re­ment, tapez la commande suivante :

netsh -f c:\configreseau\netcnfig.txt
Conseil

Windows 10 permet aussi le copier-coller dans l’invite de commande. Vous pouvez tout sim­ple­ment copier la syntaxe de commande à partir de cet article et le coller dans la fenêtre de l’invite.

Con­fi­gu­rer l’IP avec Netsh

Netsh est fré­quem­ment utilisé pour modifier les pa­ra­mètres de l’IP. Si un or­di­na­teur en réseau reçoit une IP non pas statique, mais attribuée au­to­ma­ti­que­ment, on applique le protocole Dynamic Host Con­fi­gu­ra­tion (DHCP). Ce protocole de com­mu­ni­ca­tion attribue au­to­ma­ti­que­ment une adresse IP et d’autres données de con­fi­gu­ra­tion né­ces­saires aux clients d’un réseau. Plusieurs étapes sont né­ces­saires pour y parvenir :

La première étape consiste à afficher les pa­ra­mètres actuels et le nom de l’adap­ta­teur réseau dis­po­nible :

netsh interface ipv4 show interface

Main­te­nant, on définit un adap­ta­teur LAN spé­ci­fique (ici, Ethernet) en tant que des­ti­na­taire de l’at­tri­bu­tion IP par le DHCP :

netsh interface ipv4 set address name="Ethernet" source=dhcp

Ensuite, le DHCP prend en charge l’ad­mi­nis­tra­tion dynamique du pa­ra­mé­trage réseau con­cer­nant l’adap­ta­teur Ethernet.

Activer et dé­sac­ti­ver le pare-feu Windows

Si vous avez besoin d’activer ou dé­sac­ti­ver le pare-feu Windows, il vous suffit de taper une simple ligne de commande Netsh. Activez le pare-feu avec la commande suivante :

netsh firewall set opmode enable

Dé­sac­ti­vez-le avec la ligne de commande suivante :

netsh firewall set opmode disable
Note

Dans certains contextes, Windows re­com­mande des al­ter­na­tives à Netsh pour ad­mi­nis­trer les réseaux. La solution qui revient le plus souvent est Windows Po­wer­Shell, que nous vous pré­sen­tons dans notre Digital Guide.

Aller au menu principal