Lors du diagnostic de problèmes de connectivité réseau, il est essentiel de vérifier si un port spécifique est ouvert sur une machine distante. PowerShell fournit un outil puissant pour cette tâche avec la commande Test-NetConnection.
Test-NetConnection est une commande PowerShell permettant de tester la connectivité réseau, notamment la disponibilité d'un port sur une machine distante. Elle est souvent utilisée en alternative à Telnet pour des vérifications plus avancées.
Intégrée à PowerShell : Pas besoin d'installer des outils supplémentaires.
Facilité d'Intégration : Peut être utilisée dans des scripts pour des tests automatisés.
Syntaxe de Base
Pour tester la disponibilité d'un port spécifique, utilisez :
Test-NetConnection -ComputerName <Nom ou IP de la cible> -Port <Numéro de port>
Exemple Pratique
Pour vérifier si le port 443 est ouvert sur l'adresse IP 192.168.14.131, utilisez :
Test-NetConnection -ComputerName 192.168.14.131 -Port 443
Port Fermé
Propriété TcpTestSucceeded : false
Signification : Le port est fermé ou inaccessible.
Cela peut être dû à un pare-feu ou à l'absence de service à l'écoute sur ce port.
Port Ouvert
Propriété TcpTestSucceeded : true
Signification : Le port est ouvert et accessible. Le service cible est disponible sur ce port.
Exemple de Script pour Vérifier un Serveur Web
Vous pouvez automatiser les tests et effectuer des actions basées sur les résultats. Voici un exemple de script qui teste la disponibilité du port 80 et récupère une page web si le port est ouvert :
$ServeurWebIP = "192.168.14.131"
if (Test-NetConnection -ComputerName $ServeurWebIP -Port 80) {
Write-Host "Le serveur Web ($ServeurWebIP) est en ligne !"
$PageWeb = Invoke-WebRequest -Uri http://$ServeurWebIP/index.html
} else {
Write-Host "Le serveur Web ($ServeurWebIP) est injoignable !"
}
Vous pouvez également créer des boucles pour tester plusieurs hôtes, bien que -ComputerName accepte une seule valeur à la fois.
Pour les ports courants comme HTTP ou HTTPS, utilisez le paramètre -CommonTCPPort :
Test-NetConnection -ComputerName 192.168.14.131 -CommonTCPPort HTTP
Liste des Ports Prédéfinis
HTTP : Port 80
HTTPS : Port 443
SMTP : Port 25
La commande Test-NetConnection est un outil puissant et flexible pour tester la disponibilité des ports sur une machine distante. Bien qu'elle puisse être plus lente que Telnet, elle offre des fonctionnalités supplémentaires pour des diagnostics avancés et une intégration facile dans des scripts PowerShell.
Pour des vérifications approfondies ou des problèmes persistants, il peut être nécessaire d'examiner les configurations de pare-feu ou les paramètres réseau afin de résoudre les problèmes d'accès aux ports.