Test-Connection
Odešle pakety s žádostí o odezvu PROTOKOLU ICMP nebo příkazy ping do jednoho nebo více počítačů.
Syntaxe
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>]
Description
Rutina Test-Connection
odešle pakety s žádostí o odezvu protokolu ICMP (Internet Control Message Protocol) nebo příkazy ping do jednoho nebo více vzdálených počítačů a vrátí odpovědi odezvy odezvy. Pomocí této rutiny můžete určit, jestli se konkrétní počítač dá kontaktovat přes síť IP.
Pomocí parametrů Test-Connection
můžete určit odesílající i přijímající počítače, spustit příkaz jako úlohu na pozadí, nastavit časový limit a počet příkazů ping a nakonfigurovat připojení a ověřování.
Na rozdíl od známého příkazu Test-Connection
ping vrátí objekt TestConnectionCommand+PingStatus, který můžete prozkoumat v PowerShellu. Parametr Quiet vrátí logickou hodnotu v System.Boolean objektu pro každé testované připojení. Pokud se testuje více připojení, vrátí se pole logických hodnot.
Příklady
Příklad 1: Odeslání žádostí o odezvu vzdálenému počítači
Tento příklad odešle pakety požadavků na odezvu z místního počítače do počítače 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
používá parametr TargetName k určení počítače Server01. Parametr IPv4 určuje protokol pro test.
Do výstupního datového proudu se odesílá řada objektů TestConnectionCommand+PingStatus , jeden objekt na odpověď ping z cílového počítače.
Příklad 2: Odeslání žádostí o odezvu na několik počítačů
Tento příklad odešle příkazy ping z místního počítače do několika vzdálených počítačů.
Test-Connection -TargetName Server01, Server02, Server12
Příklad 3: Použití parametrů k přizpůsobení testovacího příkazu
Tento příklad používá parametry Test-Connection
k přizpůsobení příkazu. Místní počítač odešle test ping do vzdáleného počítače.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
Test-Connection
používá parametr TargetName k určení serveru Server01. Parametr Count určuje, že se do počítače Server01 posílají tři příkazy ping se zpožděním dvousekundových intervalů.
Tyto možnosti můžete použít, pokud se očekává, že odpověď ping bude trvat déle než obvykle, a to buď kvůli rozšířenému počtu směrování, nebo kvůli stavu sítě s vysokým provozem.
Příklad 4: Spuštění testu jako úlohy na pozadí
Tento příklad ukazuje, jak spustit Test-Connection
příkaz jako úlohu prostředí PowerShell na pozadí.
$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait
Příkaz Start-Job
používá rutinu Test-Connection
k příkazu ping mnoha počítačů v podniku.
Hodnota parametru TargetName je Get-Content
příkaz, který čte seznam názvů počítačů ze Servers.txt
souboru. Příkaz pomocí rutiny Start-Job
spustí příkaz jako úlohu na pozadí a uloží úlohu do $job
proměnné.
Příkaz Receive-Job
se dá pokyn, aby -Wait
se úloha nedokončila, a pak získá výsledky a uloží je do $Results
proměnné.
Příklad 5: Vytvoření relace pouze v případě, že test připojení proběhne úspěšně
Tento příklad vytvoří relaci na počítači Server01 pouze v případě, že alespoň jeden z příkazů ping odeslaných do počítače bude úspěšný.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
Rutina Test-Connection
odešle příkaz ping do Server01
počítače s zadaným parametrem Quiet .
Výsledná hodnota je $True
, pokud některý ze čtyř příkazů ping proběhne úspěšně. Pokud žádný z příkazů ping není úspěšný, hodnota je $False
.
Test-Connection
Pokud příkaz vrátí hodnotu $True
, příkaz použije rutinu New-PSSession
k vytvoření psSession.
Příklad 6: Použití parametru Traceroute
Představený v PowerShellu 6.0 mapuje parametr Traceroute trasu mezi místním počítačem a vzdáleným cílem, který zadáte 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
Příkaz Test-Connection
se volá pomocí parametru Traceroute . Výsledky, které jsou objekty, jsou [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
výstupem výstupního datového proudu Success .
Příklad 7: Získání podrobného výstupu pro test připojení TCP
Při použití podrobného parametru vrátí tato rutina podrobné informace o stavu pokusů o připojení 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
Určuje velikost vyrovnávací paměti odeslané tímto příkazem v bajtech. Výchozí hodnota je 32.
Typ: | Int32 |
Aliasy: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Count
Určuje počet požadavků na odezvu, které se mají odeslat. Výchozí hodnota je 4.
Typ: | Int32 |
Position: | Named |
Default value: | 4 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Delay
Určuje interval mezi příkazy ping v sekundách.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Detailed
Při použití podrobného parametru vrátí tato rutina podrobné informace o stavu pokusů o připojení TCP.
Tento parametr byl přidán v PowerShellu 7.4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-DontFragment
Tento parametr nastaví příznak Don't Fragment v hlavičce IP adresy. Tento parametr můžete použít s parametrem BufferSize k otestování velikosti PATH MTU. Další informace o Path MTU naleznete v článku Path MTU Discovery na Wikipedii.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-IPv4
Vynutí rutinu, aby pro test používala protokol IPv4.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-IPv6
Vynutí rutinu, aby pro test používala protokol IPv6.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MaxHops
Nastaví maximální počet segmentů směrování, které je možné odeslat zprávou požadavku ICMP. Výchozí hodnota je řízena operačním systémem. Výchozí hodnota pro Windows 10 a vyšší je 128 segmentů směrování.
Typ: | Int32 |
Aliasy: | Ttl, TimeToLive, Hops |
Position: | Named |
Default value: | 128 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MtuSize
Tento parametr se používá ke zjištění velikosti PATH MTU. Rutina vrátí objekt PingReply#MTUSize , který obsahuje velikost PATH MTU cíle. Další informace o Path MTU naleznete v článku Path MTU Discovery na Wikipedii.
Typ: | SwitchParameter |
Aliasy: | MtuSizeDetect |
Position: | Named |
Default value: | False |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Ping
Způsobí, že rutina provede test ping. Toto je výchozí režim rutiny Test-Connection
.
Typ: | SwitchParameter |
Position: | Named |
Default value: | True |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Quiet
Parametr Quiet vrátí logickou hodnotu. Použití tohoto parametru potlačí všechny chyby.
Každé otestované připojení vrátí logickou hodnotu. Pokud parametr TargetName určuje více počítačů, vrátí se pole logických hodnot.
Pokud bude příkaz ping na daný cíl úspěšný, $True
vrátí se příkaz ping.
Pokud všechny příkazy ping na daný cíl selžou, $False
vrátí se.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Repeat
Způsobí, že rutina bude odesílat žádosti ping nepřetržitě. Pokud je hodnota TargetName polem cílů, rutina opakuje požadavky ping pouze pro první cíl. Ignoruje zbývající cíle. Tento parametr nelze použít s parametrem Count .
Typ: | SwitchParameter |
Aliasy: | Continuous |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ResolveDestination
Způsobí, že se rutina pokusí přeložit název DNS cíle. Při použití ve spojení s parametrem Traceroute se v případě potřeby načtou také názvy DNS všech zprostředkujících hostitelů.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Source
Určuje názvy počítačů, ze kterých pochází příkaz ping. Zadejte čárkami oddělený seznam názvů počítačů. Ve výchozím nastavení je to místní počítač.
Poznámka:
Tento parametr není podporován ve verzích PowerShellu 6 a novějších. Zadání tohoto parametru způsobí chybu.
Typ: | String |
Position: | Named |
Default value: | Local computer |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-TargetName
Určuje počítače, které se mají testovat. Zadejte názvy počítačů nebo zadejte IP adresy ve formátu IPv4 nebo IPv6.
Typ: | String[] |
Aliasy: | ComputerName |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-TcpPort
Určuje číslo portu TCP v cíli, které se má použít v testu připojení TCP.
Rutina se pokusí vytvořit připojení TCP k zadanému portu v cíli.
- Rutina se vrátí
$True
, pokud se vytvoří připojení. - Rutina se vrátí
$False
, pokud není vytvořené připojení.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-TimeoutSeconds
Nastaví hodnotu časového limitu testu. Test selže, pokud odpověď není přijata před vypršením časového limitu. Výchozí hodnota je pět sekund.
Tento parametr byl představen v PowerShellu 6.0.
Typ: | Int32 |
Position: | Named |
Default value: | 5 seconds |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Traceroute
Způsobí, že rutina provede test traceroute. Při použití tohoto parametru vrátí rutina TestConnectionCommand+TraceStatus
objekt.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do této rutiny nemůžete roušit objekty.
Výstupy
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
Ve výchozím nastavení vrátí tato rutina pro každou odpověď ping objekt TestConnectionCommand+PingStatus .
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
Pokud použijete parametr Traceroute , vrátí tato rutina objekt TestConnectionCommand+TraceStatus pro každou odpověď ping podél trasy.
Pokud použijete parametry Quiet nebo TcpPort, vrátí tato rutina logickou hodnotu. Pokud rutina testuje více připojení, vrátí pole logických hodnot.
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
Pokud použijete parametr MtuSize , vrátí tato rutina pro každou odpověď ping objekt TestConnectionCommand+PingMtuStatus .
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
Pokud použijete podrobný parametr, vrátí tato rutina objekt TestConnectionCommand+TcpPortStatus , který zobrazuje stav připojení TCP.
Poznámky
V Linuxu může použití parametru BufferSize nebo jakékoli kombinace parametrů se sadou parametrů MtuSizeDetect, která vede k nevýstavní velikosti vyrovnávací paměti 32 bajtů vyžadovat sudo
. V těchto případech Test-Command
vyvolá výjimku se zprávou, která označuje, že sudo
je požadována.