Test-Connection
Wysyła pakiety żądań echa ICMP lub 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]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Opis
Polecenie Test-Connection
cmdlet wysyła pakiety żądań echa protokołu ICMP (Internet Control Message Protocol) lub ping 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.
Za pomocą parametrów Test-Connection
można 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 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 przetestowano 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 żądań 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-sekundowych interwałów.
Możesz użyć tych opcji, gdy odpowiedź ping ma trwać dłużej niż zwykle, albo 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 do uruchomienia polecenia jako zadania w tle i zapisuje zadanie w zmiennej $job
.
Receive-Job
Polecenie jest poinstruowane do -Wait
momentu ukończenia zadania, a następnie pobiera wyniki i zapisuje je w zmiennej$Results
.
Przykład 5: Twórca 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 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ść jest $True
wtedy, gdy 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 programu 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 .
Parametry
-BufferSize
Określa rozmiar buforu wysyłanego za pomocą tego polecenia w bajtach. 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 |
-DontFragment
Ten parametr ustawia flagę Nie fragmentu w nagłówku IP. Tego parametru można użyć z parametrem BufferSize , aby przetestować rozmiar jednostki MTU ścieżki. Aby uzyskać więcej informacji na temat ścieżki MTU, 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 dla testu przez polecenie 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 Windows 10 i wyższa 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 ścieżki MTU do obiektu docelowego. Aby uzyskać więcej informacji na temat ścieżki MTU, 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 polecenia Test-Connection
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 zakończy się powodzeniem, $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 ciągłe wysyłanie żądań ping przez polecenie cmdlet. 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: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResolveDestination
Powoduje, że polecenie cmdlet próbuje rozpoznać nazwę DNS obiektu docelowego. 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, na których pochodzi polecenie ping. Wprowadź rozdzielaną przecinkami listę nazw komputerów. Wartością domyślną jest 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 miejscu docelowym, który ma być używany w teście połączenia TCP. Polecenie cmdlet podejmie próbę nawiązania połączenia TCP z określonym portem docelowym.
Jeśli można nawiązać połączenie, $True
zostanie zwrócone.
Jeśli nie można nawiązać połączenia, $False
zostanie zwrócone.
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 wygaśnięciem 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
TestConnectionCommand+PingStatus
Domyślnie to polecenie cmdlet zwraca obiekt TestConnectionCommand+PingStatus dla każdej odpowiedzi ping.
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 .
TestConnectionCommand+PingMtuStatus
Jeśli używasz parametru MtuSize , to polecenie cmdlet zwraca obiekt TestConnectionCommand+PingMtuStatus dla każdej odpowiedzi ping.