Udostępnij za pośrednictwem


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 polecenie 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 testowanych jest wiele połączeń, zwracana jest tablica wartości logicznych.

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.

Boolean

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.