Udostępnij za pośrednictwem


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.

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 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.