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 Test Połączenie ionCommand+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 Test Połączenie ionCommand+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.

Type:Int32
Aliases:Size, Bytes, BS
Position:Named
Default value:32
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Count

Określa liczbę żądań echa do wysłania. Wartość domyślna to 4.

Type:Int32
Position:Named
Default value:4
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delay

Określa interwał między poleceniami ping w sekundach.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPv4

Wymusza użycie protokołu IPv4 do testu za pomocą polecenia cmdlet .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPv6

Wymusza użycie protokołu IPv6 dla testu przez polecenie cmdlet .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Aliases:Ttl, TimeToLive, Hops
Position:Named
Default value:128
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Aliases:MtuSizeDetect
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Ping

Powoduje wykonanie testu ping przez polecenie cmdlet. Jest to tryb domyślny dla Test-Connection polecenia cmdlet.

Type:SwitchParameter
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:SwitchParameter
Aliases:Continuous
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetName

Określa komputery do przetestowania. Wpisz nazwy komputerów lub wpisz adresy IP w formacie IPv4 lub IPv6.

Type:String[]
Aliases:ComputerName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.
Type:Int32
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:5 seconds
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Traceroute

Powoduje, że polecenie cmdlet wykonuje test traceroute. Gdy ten parametr jest używany, polecenie cmdlet zwraca TestConnectionCommand+TraceStatus obiekt.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters: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 Test Połączenie ionCommand+PingStatus dla każdej odpowiedzi ping.

Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus

Jeśli używasz parametru Traceroute, to polecenie cmdlet zwraca obiekt Test Połączenie ionCommand+TraceStatus dla każdej odpowiedzi ping wzdłuż trasy.

Boolean

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 Test Połączenie ionCommand+PingMtuStatus dla każdej odpowiedzi ping.

Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus

Jeśli używasz parametru Szczegółowe, to polecenie cmdlet zwraca obiekt Test Połączenie ionCommand+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.