Netsh – la solution pour administrer vos réseaux

Quand on travaille très régulièrement sur la configuration 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’utilisateur et le système d’exploitation permettant d’administrer et de configurer le paramétrage de réseaux locaux et à distance.

Le spectre de ses possibilités d’utilisation s’étend du paramétrage du pare-feu de Windows à l’administration LAN et WLAN, en passant par la configuration d’IP et de serveurs. Par ailleurs, il est possible de protéger les infrastructures reliées à Internet contre d’éventuelles attaques extérieures. À l’aide de cet interpréteur de lignes de commandes, on peut aussi diagnostiquer des problèmes et effectuer des réparations sur le réseau. Netsh a un gros avantage : les tâches d’administration liées au réseau sont effectuées avec une rapidité et un confort remarquables et peuvent être automatisées avec un script.

Exécuter des commandes Netsh : démarrer l’interpré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 simultané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’utilitaire :

Si les commandes et les scripts Netsh ne s’exécutent pas ou si vous prévoyez d’accéder plus en profondeur à la configuration réseau, il faut démarrer le Network Shell avec les droits administrateur. Sous Windows 10, les étapes suivantes sont obligatoires :

  1. Cliquez droit sur le symbole Windows à gauche de la barre des tâches ou appuyez simultanément sur [Windows] + [X].
  2. Dans le menu contextuel qui s’ouvre, choisissez l’option « Invite de commandes (admin) » :

Le fichier exécutable netsh.exe fait partie de Netsh et se trouve dans le dossier système de Windows (%windir%\system32). Lancer directement ce fichier permet de raccourcir 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’explorateur Windows et appuyez sur [Entrée]. Dans la fenêtre qui s’ouvre, vous pouvez directement lancer l’interpréteur de commandes Netsh.

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

  1. Cliquez droit sur le bureau Windows. Sur le menu contextuel, 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. Choisissez un nom parlant pour le raccourci (1), qui sera ensuite créé sur le bureau en cliquant sur « Terminer » (2) :

Netsh : une architecture spécifique

L’utilitaire Netsh offre une syntaxe de commande complète. Pour lui faire faire des tâches ciblées et spécifiques, il faut se familiariser avec l’architecture spécifique du Network Shell. La structure de cet utilitaire se base sur les contextes, qui représentent différents niveaux d’administration. Chaque contexte couvre une fonctionnalité réseau spécifique (ex. : configuration IP, LAN et pare-feu). Pour les interactions avec d’autres composants Windows dépendantes du contexte, le logiciel utilise les fichiers de Dynamic Link Library (DLL). Netsh accède au fichier Dhcpmon.dll afin de modifier et d’administrer les paramè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 « Administration 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 changement de contexte : netsh lan>

Une fois le contexte « LAN » ouvert, vous disposez de commandes spécifiques au contexte et de commandes globales. Parmi les commandes spécifiques au contexte, il y a par exemple la commande « set » (configure les paramè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 disponibles. Au niveau « LAN », après avoir tapé la commande d’aide, on obtient la liste de commandes spécifiques et globales suivantes :

Si l’on bascule dans le contexte pare-feu, la liste de commandes correspondante est la suivante :

Outre sa structure liée au contexte, Netsh présente d’autres particularités à l’utilisation. On peut l’utiliser en mode batch ou en mode interactif. Le mode batch exporte les paramétrages réseaux sensibles dans un fichier texte et les importe à nouveau pour une restauration ultérieure.

Le mode interactif permet par exemple de lancer des requêtes directes. En tapant « netsh interface ip show address », l’utilitaire retourne l’adresse IP actuelle de l’ordinateur. Le mode interactif peut s’utiliser en ligne ou hors ligne. En ligne, les opérations sont immédiatement appliquées. Hors ligne, les actions sont enregistrées et appliquées ultérieurement. Les actions enregistré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écapitulé les commandes Netsh les plus importantes avec de courtes explications concernant leurs contextes. S’il s’agit d’une commande pour un contexte global, la troisième colonne ne contient pas d’information. En fonction des systèmes d’exploitation et des rôles sur le réseau (client ou serveur), les commandes disponibles peuvent parfois varier. Les commandes disponibles sur un ordinateur avec Windows Server 2016 Datacenter sont les suivantes :

Commande Action Contexte Netsh administré
.. Basculer vers un niveau de contexte plus élevé  
? Affiche une liste des commandes  
abort Rejette les modifications apportées en mode hors ligne  
add Ajoute une entrée de configuration à la liste  
advfirewall Bascule vers le contexte « netsh advfirewall » Pare-feu (règles et configuration)
alias Ajoute un alias  
branchcache Bascule vers le contexte « netsh branchcache » Paramétrage de BranchCache
bridge Bascule vers le contexte « netsh bridge » Ponts de réseau
bye Ferme le logiciel  
commit Applique les modifications apportées en mode hors ligne  
delete Supprime une entrée de configuration de la liste des entrées  
dhcpclient Bascule vers le contexte « netsh dhcpclient » Client DHCP
dnsclient Bascule vers le contexte « netsh dnsclient » Paramétrages du client DNS
dump Affiche un script de configuration  
exec Exécute un fichier script  
exit Ferme le logiciel  
firewall Bascule vers le contexte « netsh firewall » Pare-feu (règles et configuration)
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 » Configuration de l’IP (v4, v6)
ipsec Bascule vers le contexte « netsh ipsec » Règles IPSec
ipsecdosprotection Bascule vers le contexte « netsh ipsecdosprotection » Protège des attaques de déni de service IPSEC
lan Bascule vers le contexte « netsh lan » Interfaces 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 enregistré 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 » Configuration du client RPC
set Actualise les paramètres de configuration  
show Affiche les informations  
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 » Paramétrage proxy et tracing du client http de Windows
winsock Bascule vers le contexte « netsh winsock » Configuration Winsock
wlan Bascule vers le contexte « netsh wlan » Interfaces de réseaux sans fil

Paramètres de syntaxe de Netsh – que signifient-ils ?

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

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

Les paramètres suivants sont tous optionnels 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 ordinateur distant (Remotecomputer) ; le client d’authentification à distance doit être en cours d’exécution.
Ordinateur distant (ang. : RemoteComputer) Nom de l’ordinateur distant à configurer
-u Spécifie que vous souhaitez exécuter la commande Netsh sous un compte d’utilisateur
Nom de domaine\ (ang. : DomainName\) Spécifie le domaine du compte d’utilisateur (la valeur par défaut est le domaine local si aucun nom de domaine n’est spécifié)
Nom d’utilisateur (ang. : UserName) Spécifie le nom du compte d’utilisateur
-p Il est possible de fournir un mot de passe pour le compte d’utilisateur
Mot de passe (engl: Password) Spécifie le mot de passe du compte utilisateur que vous avez spécifié avec –u UserName.
Commande Netsh (ang. : NetshCommand) Spécifie la commande Netsh à exécuter
-f Ferme Netsh après l’exécution du script
Fichier de script (ang. : ScriptFile) Spécifie le script à exécuter

Réinitialiser la pile TCP/IP avec Netsh

On utilise régulièrement les commandes Netsh pour réinitialiser 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 judicieuse, car elle supprime les protocoles TCP/IP erronés ou mal configurés. La commande de réparation suivante opère une réinitialisation et réinstalle la pile TCP/IPv4 :

netsh int ip reset

Il est également possible de créer un fichier de protocole pour documenter les modifications apportées :

netsh int ip reset c:\tcpipreset.txt

Une fois la réinitialisation exécutée, il convient de redémarrer l’ordinateur.

Conseil

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

Importer et exporter des paramètres réseau

Netsh vous permet aussi d’exporter les paramètres de réseau actuels dans un simple fichier texte. Si vous rencontrez des problèmes avec le réseau, vous pourrez revenir immédiatement à une configuration fonctionnelle et sans erreur.

Pour la première étape, l’export, il faut lire la configuration du réseau, la convertir en fichier texte (netcnfig.txt) et, par exemple, l’enregistrer dans le dossier « configreseau » sur le disque C:\. Le dossier « configreseau » doit être créé manuellement avant le premier export sur le disque cible (Netsh ne le fait pas automatiquement). Ensuite, ouvrez l’invite de commande et tapez la portion de code suivante :

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

Pour importer les paramétrages ultérieurement, 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 simplement copier la syntaxe de commande à partir de cet article et le coller dans la fenêtre de l’invite.

Configurer l’IP avec Netsh

Netsh est fréquemment utilisé pour modifier les paramètres de l’IP. Si un ordinateur en réseau reçoit une IP non pas statique, mais attribuée automatiquement, on applique le protocole Dynamic Host Configuration (DHCP). Ce protocole de communication attribue automatiquement une adresse IP et d’autres données de configuration nécessaires aux clients d’un réseau. Plusieurs étapes sont nécessaires pour y parvenir :

La première étape consiste à afficher les paramètres actuels et le nom de l’adaptateur réseau disponible :

netsh interface ipv4 show interface

Maintenant, on définit un adaptateur LAN spécifique (ici, Ethernet) en tant que destinataire de l’attribution IP par le DHCP :

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

Ensuite, le DHCP prend en charge l’administration dynamique du paramétrage réseau concernant l’adaptateur Ethernet.

Activer et désactiver le pare-feu Windows

Si vous avez besoin d’activer ou désactiver 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ésactivez-le avec la ligne de commande suivante :

netsh firewall set opmode disable
Note

Dans certains contextes, Windows recommande des alternatives à Netsh pour administrer les réseaux. La solution qui revient le plus souvent est Windows PowerShell, que nous vous présentons dans notre Digital Guide.