Test-Connection to powershellowy odpowiednik klasycznego ping, tyle że wypluwa nie tekst, a normalne obiekty, które możesz filtrować, sortować i wciskać do skryptów. Wysyła pakiety ICMP echo do jednego lub wielu komputerów i mówi Ci, czy host odpowiada i jak szybko. W praktyce używasz go, gdy chcesz sprawdzić dostępność serwera, przetestować całą listę maszyn naraz albo w pętli monitorować, kiedy zresetowany host wróci do życia — bez ręcznego klepania ping w kółko.
Składnia i najważniejsze opcje
Podstawowa forma to Test-Connection [-TargetName] . W Windows PowerShell 5.1 głównym parametrem jest -ComputerName; w PowerShell 7 nazwano go -TargetName, ale -ComputerName działa dalej jako alias.
-TargetName— jeden lub wiele hostów (nazwy albo IP), oddzielone przecinkami. To parametr pozycyjny, więc często piszesz go bez nazwy.-Count— ile pakietów wysłać. Domyślnie 4 (czyli inaczej niż linuxowyping, który leci w nieskończoność).-Quiet— zwraca zamiast obiektów samo$true/$false. Idealne doif.-TcpPort— zamiast ICMP próbuje otworzyć połączenie TCP na wskazanym porcie (PowerShell 6+). Ratuje, gdy firewall blokuje pingi.-Traceroute— mapuje trasę do celu, jaktracert(PowerShell 6+).-Delay— odstęp w sekundach między kolejnymi pingami.-IPv4/-IPv6— wymusza konkretny protokół, gdy host ma oba adresy.
Przykłady użycia
Test-Connection google.com— cztery pingi do hosta i pełne obiekty z czasami odpowiedzi.Test-Connection -TargetName 8.8.8.8 -Count 2— tylko dwa pakiety, gdy nie chce Ci się czekać.if (Test-Connection serwer01 -Count 1 -Quiet) { "żyje" } else { "leży" }— szybki test tak/nie w warunku.Test-Connection srv1, srv2, srv3 -Count 1— sprawdza całą listę maszyn jednym poleceniem.Test-Connection intranet.local -TcpPort 443— pukanie w port 443, gdy administrator wyłączył ICMP.
Częste błędy i pułapki
Najczęstsza wpadka to mylenie Test-Connection z Test-NetConnection — to dwa różne cmdlety. Ten drugi (z modułu NetTCPIP) ma -Port i bogatszą diagnostykę, ale nie przyjmuje listy hostów. Druga pułapka: w PowerShell 5.1 nie ma -TcpPort ani -Traceroute — jeśli skrypt ma działać na starym Windowsie, tych flag nie użyjesz. Pamiętaj też, że brak odpowiedzi nie zawsze znaczy „host padł” — ICMP bywa zablokowane przez firewall, a maszyna działa normalnie; wtedy przechodź na test TCP. I nie licz na to, że domyślnie leci nieskończoność jak w Linuksie — tu zatrzyma się po czterech pakietach.
Powiązane komendy: Test-NetConnection, ping, tracert, Resolve-DnsName, Test-WSMan.