Skip to content

Instantly share code, notes, and snippets.

@bizouarn
Last active September 12, 2024 08:10
Show Gist options
  • Save bizouarn/6068be051f7f0e73d1beae908684e61c to your computer and use it in GitHub Desktop.
Save bizouarn/6068be051f7f0e73d1beae908684e61c to your computer and use it in GitHub Desktop.
Guide Pratique pour Déboguer un Port chez un Client avec PowerShell

Guide Pratique pour Déboguer un Port chez un Client avec PowerShell

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.

1. Présentation de Test-NetConnection

Qu'est-ce que 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.

Pourquoi Utiliser Test-NetConnection ?

    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.

2. Tester un Port avec Test-NetConnection

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

3. Interpréter les Résultats

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.

4. Utilisation Avancée dans des Scripts

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.

5. Utilisation du Paramètre -CommonTCPPort

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

6. Conclusion

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment