Test-Connection
Wysyła pakiety żądania echa protokołu ICMP albo pingi do jednego lub więcej komputerów.
Składnia
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-Count <int>]
[-Delay <int>]
[-Repeat]
[-Quiet]
[-TimeoutSeconds <int>]
[-Detailed]
[<CommonParameters>]
Opis
Polecenie cmdlet Test-Connection
wysyła pakiety żądań echa protokołu ICMP (Internet Control Message Protocol), czyli tzw. pingi, do jednego lub więcej komputerów zdalnych i zwraca odpowiedzi na te żądania echa. Tego polecenia cmdlet można użyć do określenia, czy dany komputer może nawiązać połączenie w sieci IP.
Możesz użyć parametrów Test-Connection
, aby określić zarówno komputery wysyłające, jak i odbierające, uruchamiać polecenie jako zadanie w tle, ustawiać limit czasu i liczbę poleceń ping oraz skonfigurować połączenie i uwierzytelnianie.
W przeciwieństwie do znanego polecenia ping
Przykłady
Przykład 1. Wysyłanie żądań echa do komputera zdalnego
Przykład ten wysyła pakiety żądające echa z komputera lokalnego do komputera Server01.
Test-Connection -TargetName Server01 -IPv4
Destination: Server01
Ping Source Address Latency BufferSize Status
(ms) (B)
---- ------ ------- ------- ---------- ------
1 ADMIN1 10.59.137.44 24 32 Success
2 ADMIN1 10.59.137.44 39 32 Success
3 ADMIN1 * * * TimedOut
4 ADMIN1 10.59.137.44 28 32 Success
Test-Connection
używa parametru TargetName do określenia komputera Server01. Parametr IPv4 określa protokół testu.
Seria obiektów TestConnectionCommand+PingStatus jest wysyłana do strumienia wyjściowego, gdzie jeden obiekt odpowiada każdej odpowiedzi ping z maszyny docelowej.
Przykład 2. Wysyłanie żądań echa do kilku komputerów
Ten przykład wysyła pingi z komputera lokalnego do kilku komputerów zdalnych.
Test-Connection -TargetName Server01, Server02, Server12
Przykład 3. Dostosowywanie polecenia testowego za pomocą parametrów
W tym przykładzie użyto parametrów Test-Connection
w celu dostosowania polecenia. Komputer lokalny wysyła test ping do komputera zdalnego.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
Test-Connection
używa parametru TargetName do określenia server01. Parametr Count określa trzy polecenia ping są wysyłane do komputera Server01 z Opóźnienie 2-sekundowych interwałów.
Te opcje mogą być używane, gdy oczekiwano, że odpowiedź ping będzie trwać dłużej niż zwykle, ze względu na rozszerzoną liczbę przeskoków lub stan sieci o dużym natężeniu ruchu.
Przykład 4. Uruchamianie testu jako zadania w tle
W tym przykładzie pokazano, jak uruchomić polecenie Test-Connection
jako zadanie w tle programu PowerShell.
$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait
Polecenie Start-Job
używa polecenia cmdlet Test-Connection
do pingowania wielu komputerów w przedsiębiorstwie.
Wartość parametru TargetName to polecenie Get-Content
, które odczytuje listę nazw komputerów z pliku Servers.txt
. Polecenie używa polecenia cmdlet Start-Job
do uruchomienia polecenia jako zadania w tle i zapisuje zadanie w zmiennej $job
.
Polecenie Receive-Job
ma za zadanie -Wait
aż do ukończenia zadania, a następnie pobiera wyniki i przechowuje je w zmiennej $Results
.
Przykład 5. Tworzenie sesji tylko wtedy, gdy test połączenia zakończy się pomyślnie
W tym przykładzie jest tworzona sesja na komputerze Server01 tylko wtedy, gdy co najmniej jeden z poleceń ping wysłanych do komputera zakończy się pomyślnie.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
Cmdlet Test-Connection
wysyła ping do komputera Server01
, z parametrem Quiet .
Wynikowa wartość będzie $True
, jeśli którekolwiek z czterech prób pingowania zakończą się powodzeniem. Jeśli żadne z poleceń ping nie powiedzie się, wartość wynosi $False
.
Jeśli polecenie Test-Connection
zwraca wartość $True
, używa cmdletu New-PSSession
do utworzenia sesji PSSession .
Przykład 6. Używanie parametru Traceroute
Wprowadzony w programie PowerShell 6.0 parametr Traceroute mapuje trasę między komputerem lokalnym a zdalnym miejscem docelowym określonym za pomocą parametru TargetName.
Test-Connection -TargetName www.google.com -Traceroute
Target: google.com
Hop Hostname Ping Latency Status Source TargetAddress
(ms)
--- -------- ---- ------- ------ ------ -------------
1 172.20.0.1 1 4 Success Lira 172.217.9.174
1 172.20.0.1 2 3 Success Lira 172.217.9.174
1 172.20.0.1 3 2 Success Lira 172.217.9.174
2 12.108.153.193 1 3 Success Lira 172.217.9.174
2 12.108.153.193 2 3 Success Lira 172.217.9.174
2 12.108.153.193 3 2 Success Lira 172.217.9.174
3 12.244.85.177 1 11 Success Lira 172.217.9.174
3 12.244.85.177 2 12 Success Lira 172.217.9.174
3 12.244.85.177 3 12 Success Lira 172.217.9.174
4 * 1 14 DestinationNetw… Lira 172.217.9.174
4 * 2 * TimedOut Lira 172.217.9.174
4 * 3 20 DestinationNetw… Lira 172.217.9.174
5 * 1 * TimedOut Lira 172.217.9.174
5 * 2 15 DestinationNetw… Lira 172.217.9.174
5 * 3 * TimedOut Lira 172.217.9.174
6 * 1 18 DestinationNetw… Lira 172.217.9.174
6 * 2 * TimedOut Lira 172.217.9.174
6 * 3 16 DestinationNetw… Lira 172.217.9.174
7 * 1 * TimedOut Lira 172.217.9.174
7 * 2 * TimedOut Lira 172.217.9.174
7 * 3 * TimedOut Lira 172.217.9.174
8 * 1 * TimedOut Lira 172.217.9.174
8 * 2 * TimedOut Lira 172.217.9.174
8 * 3 * TimedOut Lira 172.217.9.174
9 * 1 * TimedOut Lira 172.217.9.174
9 * 2 * TimedOut Lira 172.217.9.174
9 * 3 * TimedOut Lira 172.217.9.174
10 * 1 * TimedOut Lira 172.217.9.174
10 * 2 * TimedOut Lira 172.217.9.174
10 * 3 * TimedOut Lira 172.217.9.174
11 172.217.9.174 1 23 Success Lira 172.217.9.174
11 172.217.9.174 2 21 Success Lira 172.217.9.174
11 172.217.9.174 3 22 Success Lira 172.217.9.174
Polecenie Test-Connection
jest wywoływane z parametrem Traceroute. Wyniki, które są obiektami [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
, są wysyłane do strumienia wyjściowego Powodzenie.
Przykład 7. Uzyskiwanie szczegółowych danych wyjściowych dla testu połączenia TCP
Jeśli używasz parametru Szczegółowe, to polecenie cmdlet zwróci szczegółową informację o stanie prób połączenia TCP.
Test-Connection bing.com -TCPPort 443 -Detailed -Count 4
Target: bing.com
Id Source Address Port Latency(ms) Connected Status
-- ------ ------- ---- ----------- --------- ------
1 circumflex 2620:1ec:c11::200 443 12 True Success
2 circumflex 2620:1ec:c11::200 443 14 True Success
3 circumflex 2620:1ec:c11::200 443 17 True Success
4 circumflex 2620:1ec:c11::200 443 17 True Success
Parametry
-BufferSize
Określa rozmiar w bajtach buforu wysyłanego za pomocą tego polecenia. Wartość domyślna to 32.
Typ: | Int32 |
Aliasy: | Size, Bytes, BS |
Position: | Named |
Domyślna wartość: | 32 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Count
Określa liczbę żądań echa do wysłania. Wartość domyślna to 4.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 4 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Delay
Określa interwał między poleceniami ping w sekundach.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Detailed
Jeśli używasz parametru Szczegółowe, cmdlet zwraca szczegółowe informacje o stanie prób nawiązania połączenia TCP.
Ten parametr został dodany w programie PowerShell 7.4.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DontFragment
Ten parametr ustawia flagę Nie fragmentuj w nagłówku adresu IP. Tego parametru można użyć z parametrem BufferSize, aby przetestować rozmiar Path MTU. Aby uzyskać więcej informacji o ścieżce MTU, zobacz artykuł Path MTU Discovery w wikipedii.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-IPv4
Wymusza użycie protokołu IPv4 do testu za pomocą polecenia cmdlet .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-IPv6
Wymusza użycie protokołu IPv6 dla testu za pomocą polecenia cmdlet.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-MaxHops
Ustawia maksymalną liczbę przeskoków, jakie może mieć komunikat żądania ICMP. Wartość domyślna jest kontrolowana przez system operacyjny. Wartość domyślna dla systemu Windows 10 i nowszych to 128 skoków.
Typ: | Int32 |
Aliasy: | Ttl, TimeToLive, Hops |
Position: | Named |
Domyślna wartość: | 128 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-MtuSize
Ten parametr służy do odkrywania rozmiaru MTU ścieżki. Polecenie cmdlet zwraca obiekt PingReply#MTUSize zawierający rozmiar jednostki MTU ścieżki do celu. Aby uzyskać więcej informacji o ścieżce MTU, zobacz artykuł Path MTU Discovery w wikipedii.
Typ: | SwitchParameter |
Aliasy: | MtuSizeDetect |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Ping
Powoduje wykonanie testu ping przez polecenie cmdlet. Jest to tryb domyślny dla cmdlet Test-Connection
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | True |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Quiet
Parametr Quiet zwraca wartość boolowską . Użycie tego parametru pomija wszystkie błędy.
Każde przetestowane połączenie zwraca wartość logiczną . Jeśli parametr TargetName określa wiele komputerów, zwracana jest tablica wartości logicznej.
Jeśli jakikolwiek ping do wskazanego celu powiedzie się, $True
zostanie zwrócone.
Jeśli wszystkie pingi do danego celu kończą się niepowodzeniem, $False
zostanie zwrócone.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Repeat
Powoduje, że polecenie cmdlet wysyła żądania ping w sposób ciągły. Gdy wartość TargetName jest tablicą obiektów docelowych, polecenie cmdlet powtarza żądania ping tylko dla pierwszego obiektu docelowego. Ignoruje pozostałe cele. Tego parametru nie można użyć z parametrem Count.
Typ: | SwitchParameter |
Aliasy: | Continuous |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ResolveDestination
Powoduje, że polecenie cmdlet próbuje rozpoznać nazwę DNS obiektu docelowego. W połączeniu z parametrem Traceroute zostaną również pobrane nazwy DNS wszystkich hostów pośrednich, jeśli to możliwe.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Source
Określa nazwy komputerów, z których pochodzi polecenie ping. Wprowadź rozdzielaną przecinkami listę nazw komputerów. Wartość domyślna to komputer lokalny.
Notatka
Ten parametr nie jest obsługiwany w programie PowerShell w wersji 6 i nowszej. Podanie tego parametru powoduje błąd.
Typ: | String |
Position: | Named |
Domyślna wartość: | Local computer |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-TargetName
Określa komputery do przetestowania. Wpisz nazwy komputerów lub wpisz adresy IP w formacie IPv4 lub IPv6.
Typ: | String[] |
Aliasy: | ComputerName |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-TcpPort
Określa numer portu TCP w obiekcie docelowym, który ma być używany w teście połączenia TCP.
Polecenie cmdlet próbuje nawiązać połączenie TCP z określonym portem na docelowym urządzeniu.
- Polecenie cmdlet zwraca
$True
, jeśli zostanie nawiązane połączenie. - Polecenie cmdlet zwraca
$False
, jeśli połączenie nie zostało nawiązane.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-TimeoutSeconds
Ustawia wartość limitu czasu dla testu. Test kończy się niepowodzeniem, jeśli odpowiedź nie zostanie odebrana przed upływem limitu czasu. Wartość domyślna to pięć sekund.
Ten parametr został wprowadzony w programie PowerShell 6.0.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 5 seconds |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Traceroute
Powoduje, że polecenie cmdlet wykonuje test traceroute. Gdy ten parametr jest używany, polecenie cmdlet zwraca obiekt TestConnectionCommand+TraceStatus
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można przekazywać obiektów do tego polecenia cmdlet.
Dane wyjściowe
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
Domyślnie to polecenie cmdlet zwraca obiekt TestConnectionCommand+PingStatus dla każdej odpowiedzi ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
Jeśli używasz parametru Traceroute, to polecenie cmdlet zwraca obiekt TestConnectionCommand+TraceStatus dla każdej odpowiedzi ping wzdłuż trasy.
Jeśli używasz parametrów Quiet lub TcpPort, to polecenie cmdlet zwraca logiczną wartość . Jeśli polecenie cmdlet testuje wiele połączeń, zwraca tablicę wartości logicznych .
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
Jeśli używasz parametru MtuSize, to polecenie cmdlet zwraca obiekt TestConnectionCommand+PingMtuStatus dla każdej odpowiedzi ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
Jeśli używasz parametru Detailed, to polecenie cmdlet zwraca TestConnectionCommand+TcpPortStatus obiekt, który pokazuje stan połączenia TCP.
Uwagi
Na systemie Linux użycie parametru BufferSize lub dowolnej kombinacji parametrów z parametrem MtuSize, która powoduje, że rozmiar buforu wynosi 32 bajty, co jest inną wartością niż domyślna, może wymagać sudo
. W takich przypadkach Test-Command
zgłasza wyjątek z komunikatem wskazującym, że sudo
jest wymagana.