Résoudre les problèmes de connectivité avec Test-NetConnection

Avant l’arrivée de la cmdlet Test-NetConnection de PowerShell, nous avions de nombreux outils en ligne de commande différents parmi lesquels choisir pour résoudre divers problèmes de connectivité réseau.

Nous avions ping pour tester les échos et les réponses ICMP; tracert pour voir où nos paquets pourraient être abandonnés; nslookup pour effectuer des requêtes DNS contre nos serveurs DNS; telnet pour vérifier les ports TCP ouverts, et divers autres utilitaires. Il y avait un utilitaire pour tout.

Avec l’introduction de PowerShell v4 sur Windows 8.1 et Windows Server 2012 R2, cette approche d’un utilitaire unique pour une tâche unique en matière de résolution de problèmes de connectivité est devenue obsolète.

Permettez-moi de vous présenter la nouvelle et toute-puissante cmdlet Test-NetConnection. Pensez au Test-NetConnection de PowerShell comme à ping, tracert, nslookup, telnet, et quelques autres utilitaires regroupés en une suite de résolution de problèmes.

Résolution de problèmes avec Test-NetConnection

Voyons ce que nous pouvons faire avec la cmdlet test-netconnection de Powershell et examinons comment nous pouvons l’utiliser lorsque nous sommes dans la malheureuse position de résoudre un problème de connectivité réseau.

Pour le démontrer, je vais utiliser PowerShell Test-NetConnection pour résoudre un problème courant et réel : « Je ne peux pas accéder au site XYZ ! »

Ce que la plupart des utilisateurs ne savent pas, c’est que le fait de pouvoir afficher un site web dans un navigateur est en soi un exploit incroyable compte tenu du nombre d’éléments en mouvement qui doivent travailler ensemble pour que cela se produise. Au minimum, le processus implique :

  • Avoir une connexion internet.
  • Avoir une route vers votre serveur DNS.
  • Contacter le serveur DNS pour résoudre l’URL.
  • Avoir une route vers l’adresse IP à laquelle l’URL est résolue.
  • Avoir le port TCP 80 ouvert.
  • et cetera, et cetera.

Confirmer votre connexion internet

Pour commencer le dépannage, vous devez d’abord confirmer que vous avez une connexion internet. Vous pouvez le faire en exécutant simplement PowerShell Test-NetConnection sans aucun paramètre. Cependant, si vous souhaitez obtenir plus d’informations, je vous suggère d’utiliser le paramètre InformationLevel avec l’argument Detailed.

Test-NetConnection -InformationLevel Detailed

Cette commande simple vérifie votre connectivité locale et votre connectivité internet, et confirme que votre client DNS peut résoudre les noms adressés à votre serveur DNS, le tout en une seule fois. Considérez-le comme un contrôle de santé général pour votre connexion réseau. Cette commande vérifie trois des cinq processus nécessaires pour afficher un site web en une seule fois !

Utilisez Test-NetConnection pour tester votre connexion à l’hôte du site web.

Nous devrons maintenant orienter notre dépannage vers l’hébergeur du site web en question. Prenons google.com comme exemple. Vous pouvez également utiliser un ordinateur distant.

Nous pouvons utiliser la commande Test-NetConnection avec le paramètre ComputerName pour nous assurer simultanément que l’hôte du site web peut être résolu dans le DNS, qu’il existe une route TCP disponible pour atteindre l’adresse IP à laquelle le nom est résolu, et qu’il peut être pingé.

Test-NetConnection -ComputerName google.com

Même si cette étape vérifie techniquement que nous avons une route vers le serveur web de google.com, je souhaite obtenir des informations plus détaillées sur les routeurs par lesquels mes paquets passent pour atteindre le serveur web de google.com. Pour ce faire, j’utiliserai le paramètre TraceRoute pour obtenir une liste.

Test-NetConnection -ComputerName google.com -TraceRoute

Assurez-vous que votre port TCP est ouvert

Notre dernier test consiste à vérifier que le port TCP sur lequel le serveur web est censé fonctionner est ouvert. Dans ce cas, puisque nous spécifions simplement google.com, je vais supposer qu’il s’agit du port TCP 80. Pour cela, nous ajouterons simplement un autre paramètre à Test-NetConnection. Étant donné que Test-NetConnection comprend le port TCP standard pour plusieurs services différents, nous n’avons même pas besoin de connaître le numéro de port. Je peux simplement passer HTTP au paramètre CommonTCPPort et il fera le travail pour moi.

Test-NetConnection -ComputerName google.com -CommonTCPPort HTTP

Cependant, si le site web fonctionne peut-être sur un port différent, tel que le port 8080, vous pouvez spécifier directement un port TCP en utilisant le paramètre Port.

Test-NetConnection -ComputerName google.com -Port 80

Nous avons maintenant testé chacune des exigences de connectivité décrites au début de cet article. Si nous ne parvenons toujours pas à afficher le site Web pour le moment, nous avons confirmé que le problème ne vient pas de notre client, et nous pouvons transmettre le problème à Google ou peut-être à un serveur DNS en aval.

Source:
https://adamtheautomator.com/test-netconnection/