Test-Connection
Wysyła pakiety żądania echa protokołu ICMP lub polecenia ping do co najmniej jednego komputera.
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 Test-Connection
cmdlet wysyła pakiety żądań echa protokołu ICMP (Internet Control Message Protocol) do co najmniej jednego komputera zdalnego i zwraca odpowiedzi echa. Tego polecenia cmdlet można użyć do określenia, czy dany komputer może być kontaktowany w sieci IP.
Możesz użyć parametrów Test-Connection
, aby określić zarówno wysyłanie, jak i odbieranie komputerów, aby uruchomić polecenie jako zadanie w tle, aby ustawić limit czasu i liczbę poleceń ping oraz skonfigurować połączenie i uwierzytelnianie.
W przeciwieństwie do znanego polecenia Test-Connection
ping zwraca obiekt TestConnectionCommand+PingStatus, który można zbadać w programie PowerShell. Parametr Quiet zwraca wartość logiczną w obiekcie System.Boolean dla każdego przetestowanego połączenia. Jeśli testowane jest wiele połączeń, zwracana jest tablica wartości logicznych.
Przykłady
Przykład 1. Wysyłanie żądań echa do komputera zdalnego
Ten przykład wysyła pakiety żądania 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 , aby określić komputer Server01. Parametr IPv4 określa protokół testu.
Do strumienia wyjściowego są wysyłane serie obiektów TestConnectionCommand+PingStatus , jeden obiekt na odpowiedź ping z maszyny docelowej.
Przykład 2. Wysyłanie żądań echa do kilku komputerów
Ten przykład wysyła polecenia ping 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 polecenia 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óźnieniem 2-sekundowym.
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ć Test-Connection
polecenie 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 Test-Connection
polecenia cmdlet do ping wielu komputerów w przedsiębiorstwie.
Wartość parametru TargetName to Get-Content
polecenie, które odczytuje listę nazw komputerów z Servers.txt
pliku. Polecenie używa Start-Job
polecenia cmdlet, aby uruchomić polecenie jako zadanie w tle i zapisuje zadanie w zmiennej $job
.
Polecenie Receive-Job
jest poinstruowane do -Wait
momentu ukończenia zadania, a następnie pobiera wyniki i zapisuje 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 }
Polecenie Test-Connection
cmdlet wysyła polecenie ping do Server01
komputera z podanym parametrem Quiet .
Wynikowa wartość to $True
, jeśli którykolwiek z czterech poleceń ping powiedzie się. Jeśli żaden z poleceń ping nie powiedzie się, wartość to $False
.
Test-Connection
Jeśli polecenie zwraca wartość $True
, polecenie używa New-PSSession
polecenia cmdlet do utworzenia 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 za pomocą parametru Traceroute . Wyniki, które są [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
obiektami, są danymi wyjściowymi 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 zwraca szczegółowe informacje 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 , to polecenie cmdlet zwraca szczegółowe informacje o stanie prób 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 fragmentu w nagłówku ADRESU IP. Tego parametru można użyć z parametrem BufferSize , aby przetestować rozmiar jednostki MTU ścieżki. Aby uzyskać więcej informacji na temat jednostki MTU ścieżki, 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 przez polecenie 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, które można wysłać komunikat żądania ICMP. Wartość domyślna jest kontrolowana przez system operacyjny. Wartość domyślna dla systemu Windows 10 i nowszych to 128 przeskokó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 odnajdywania rozmiaru jednostki MTU ścieżki. Polecenie cmdlet zwraca obiekt PingReply#MTUSize zawierający rozmiar jednostki MTU Path do obiektu docelowego. Aby uzyskać więcej informacji na temat jednostki MTU ścieżki, 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 Test-Connection
polecenia cmdlet.
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ść logiczną. 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 logicznych.
Jeśli jakiekolwiek polecenie ping do danego obiektu docelowego powiedzie się, $True
zostanie zwrócone.
Jeśli wszystkie polecenia ping do danego obiektu docelowego kończą się niepowodzeniem, $False
zostanie zwrócony.
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 przypadku użycia w połączeniu z parametrem Traceroute nazwy DNS wszystkich hostów pośrednich również zostaną pobrane, 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.
Uwaga
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 docelowym.
- Polecenie cmdlet zwraca
$True
wartość , jeśli zostanie nawiązane połączenie. - Polecenie cmdlet zwraca wartość
$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 TestConnectionCommand+TraceStatus
obiekt.
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 potokować 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 wartość logiczną. 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 Szczegółowe , to polecenie cmdlet zwraca obiekt TestConnectionCommand+TcpPortStatus , który pokazuje stan połączenia TCP.
Uwagi
W systemie Linux użycie parametru BufferSize lub dowolnej kombinacji parametrów z zestawem parametrów MtuSizeDetect , które powoduje, że rozmiar buforu innego niż domyślny 32 bajty może wymagać sudo
. W takich przypadkach Test-Command
zgłasza wyjątek z komunikatem wskazującym, że sudo
jest to wymagane.