Test-NetConnection to powershellowy cmdlet do diagnostyki połączeń sieciowych na Windowsie. Robi to, po co dawniej odpalałeś kilka narzędzi naraz: pinguje host, sprawdza czy konkretny port TCP jest otwarty, pokazuje trasę pakietów i przy okazji zwraca dane o interfejsie oraz routingu. W praktyce jest to twój pierwszy odruch, gdy „coś się nie łączy” — zamiast zgadywać, czy problem leży w DNS, w firewallu, czy w martwej usłudze, jednym poleceniem dostajesz konkret. Alias, który zapamiętasz szybciej niż pełną nazwę, to tnc.
Składnia i najważniejsze opcje
Podstawowa forma: Test-NetConnection [-ComputerName]
-ComputerName— nazwa DNS lub adres IP hosta docelowego. Domyślnie internetbeacon.msedge.net, więcTest-NetConnectionbez argumentów sprawdza po prostu, czy masz internet.-Port— numer portu TCP do przetestowania. Kluczowa opcja: sprawdza, czy usługa faktycznie słucha, a nie tylko czy host żyje.-CommonTCPPort— skrót dla popularnych usług, przyjmuje:HTTP,RDP,SMB,WINRM. Wygodne, gdy nie chce ci się pamiętać numerów.-TraceRoute— uruchamia śledzenie trasy pakietów do hosta (odpowiedniktracert).-Hops— ogranicza liczbę skoków w trace route, gdy nie chcesz czekać na pełną trasę.-InformationLevel— poziom szczegółowości:Detailed(pełny raport) alboQuiet(zwraca tylko True/False), idealne do skryptów.
Przykłady użycia
Test-NetConnection google.com— najprostszy test: ping po ICMP plus rozwiązanie DNS i podgląd interfejsu, którym wyjdzie ruch.Test-NetConnection sql01 -Port 1433— sprawdza, czy port bazy SQL Server jest osiągalny. PoleTcpTestSucceededmówi wprost: da się połączyć czy nie.Test-NetConnection dc01 -CommonTCPPort WINRM— szybka weryfikacja, czy zdalne zarządzanie (port 5985) odpowiada, zanim odpaliszInvoke-Command.Test-NetConnection 8.8.8.8 -TraceRoute— pokazuje kolejne skoki do celu, gdy podejrzewasz, że ruch gubi się gdzieś po drodze.if (Test-NetConnection web01 -Port 443 -InformationLevel Quiet) { "OK" }— użycie w skrypcie: zwraca goły bool, więc wpina się prosto wif.
Częste błędy i pułapki
PingSucceeded: False nie znaczy, że host jest martwy. Wiele firewalli blokuje ICMP, więc ping może paść, a usługa na porcie działać bez zarzutu. Gdy testujesz port, patrz na TcpTestSucceeded, nie na wynik pinga.
To test tylko TCP. -Port nie sprawdzi usługi działającej na UDP (np. DNS czy SNMP) — dla nich Test-NetConnection się nie nada.
Wersja i system. Cmdlet pochodzi z modułu NetTCPIP i jest dostępny od Windows 8 / Server 2012 wzwyż. W PowerShell 7 na Linuksie czy macOS go nie ma — tam sięgnij po Test-Connection albo natywne narzędzia. Uważaj też, żeby nie mylić go z Test-Connection, które robi wyłącznie ping.
Powiązane komendy: Test-Connection, Resolve-DnsName, tracert, ping, Get-NetTCPConnection.