Test-Connection
Envia pacotes de solicitação de eco ICMP, ou pings, para um ou mais computadores.
Sintaxe
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
O Test-Connection
cmdlet envia pacotes de solicitação de eco ICMP (Internet Control Message Protocol), ou pings, para um ou mais computadores remotos e retorna as respostas de resposta de eco. Você pode usar esse cmdlet para determinar se um determinado computador pode ser contatado através de uma rede IP.
Você pode usar os parâmetros de para especificar os computadores de Test-Connection
envio e de recebimento, para executar o comando como um trabalho em segundo plano, para definir um tempo limite e um número de pings e para configurar a conexão e a autenticação.
Ao contrário do comando ping familiar, Test-Connection
retorna um objeto TestConnectionCommand+PingStatus que você pode investigar no PowerShell. O parâmetro Quiet retorna um valor Boolean em um objeto System.Boolean para cada conexão testada. Se várias conexões forem testadas, uma matriz de valores booleanos será retornada.
Exemplos
Exemplo 1: Enviar solicitações de eco para um computador remoto
Este exemplo envia pacotes de solicitação de eco do computador local para o computador 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
usa o parâmetro TargetName para especificar o computador Server01. O parâmetro IPv4 especifica o protocolo para o teste.
Uma série de objetos TestConnectionCommand+PingStatus são enviados para o fluxo de saída, um objeto por resposta de ping da máquina de destino.
Exemplo 2: Enviar solicitações de eco para vários computadores
Este exemplo envia pings do computador local para vários computadores remotos.
Test-Connection -TargetName Server01, Server02, Server12
Exemplo 3: Usar parâmetros para personalizar o comando test
Este exemplo usa os parâmetros de Test-Connection
para personalizar o comando. O computador local envia um teste de ping para um computador remoto.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
Test-Connection
usa o parâmetro TargetName para especificar Server01. O parâmetro Count especifica que três pings são enviados para o computador Server01 com um atraso de intervalos de 2 segundos.
Você pode usar essas opções quando se espera que a resposta de ping demore mais do que o normal, devido a um número estendido de saltos ou a uma condição de rede de alto tráfego.
Exemplo 4: Executar um teste como um trabalho em segundo plano
Este exemplo mostra como executar um Test-Connection
comando como um trabalho em segundo plano do PowerShell.
$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait
O Start-Job
comando usa o Test-Connection
cmdlet para executar ping em muitos computadores em uma empresa.
O valor do parâmetro TargetName é um Get-Content
comando que lê uma lista de nomes de computadores do Servers.txt
arquivo. O comando usa o Start-Job
cmdlet para executar o comando como um trabalho em segundo plano e salva o $job
trabalho na variável.
O Receive-Job
comando é instruído até -Wait
que o trabalho seja concluído e, em seguida, obtém os resultados e os armazena na $Results
variável.
Exemplo 5: Criar uma sessão somente se um teste de conexão for bem-sucedido
Este exemplo cria uma sessão no computador Server01 somente se pelo menos um dos pings enviados para o computador for bem-sucedido.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
O Test-Connection
cmdlet executa ping no Server01
computador, com o parâmetro Quiet fornecido.
O valor resultante é $True
se qualquer um dos quatro pings for bem-sucedido. Se nenhum dos pings for bem-sucedido, o valor será $False
.
Se o Test-Connection
comando retornar um valor de $True
, o comando usará o New-PSSession
cmdlet para criar o PSSession.
Exemplo 6: Usar o parâmetro Traceroute
Introduzido no PowerShell 6.0, o parâmetro Traceroute mapeia uma rota entre o computador local e o destino remoto especificado com o parâmetro 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
O Test-Connection
comando é chamado com o parâmetro Traceroute . Os resultados, que são [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
objetos, são enviados para o fluxo de saída Sucesso .
Exemplo 7: Obter saída detalhada para um teste de conexão TCP
Quando você usa o parâmetro Detailed (Detailed ), esse cmdlet retorna informações detalhadas sobre o status das tentativas de conexão 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
Parâmetros
-BufferSize
Especifica o tamanho, em bytes, do buffer enviado com este comando. O valor padrão é 32.
Tipo: | Int32 |
Aliases: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Count
Especifica o número de solicitações de eco a serem enviadas. O valor predefinido é 4.
Tipo: | Int32 |
Position: | Named |
Default value: | 4 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Delay
Especifica o intervalo entre pings, em segundos.
Tipo: | Int32 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Detailed
Quando você usa o parâmetro Detailed (Detailed ), esse cmdlet retorna informações detalhadas sobre o status das tentativas de conexão TCP.
Esse parâmetro foi adicionado no PowerShell 7.4.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-DontFragment
Este parâmetro define o sinalizador Don't Fragment no cabeçalho IP. Você pode usar esse parâmetro com o parâmetro BufferSize para testar o tamanho da MTU do caminho. Para obter mais informações sobre o Path MTU, consulte o artigo Path MTU Discovery na wikipedia.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-IPv4
Força o cmdlet a usar o protocolo IPv4 para o teste.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-IPv6
Força o cmdlet a usar o protocolo IPv6 para o teste.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-MaxHops
Define o número máximo de saltos que uma mensagem de solicitação ICMP pode ser enviada. O valor padrão é controlado pelo sistema operacional. O valor padrão para Windows 10 e superior é 128 saltos.
Tipo: | Int32 |
Aliases: | Ttl, TimeToLive, Hops |
Position: | Named |
Default value: | 128 |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-MtuSize
Este parâmetro é usado para descobrir o tamanho do MTU do caminho. O cmdlet retorna um objeto PingReply#MTUSize que contém o tamanho da MTU do caminho para o destino. Para obter mais informações sobre o Path MTU, consulte o artigo Path MTU Discovery na wikipedia.
Tipo: | SwitchParameter |
Aliases: | MtuSizeDetect |
Position: | Named |
Default value: | False |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Ping
Faz com que o cmdlet faça um teste de ping. Este é o modo padrão para o Test-Connection
cmdlet.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | True |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Quiet
O parâmetro Quiet retorna um valor booleano . O uso desse parâmetro suprime todos os erros.
Cada conexão testada retorna um valor booleano . Se o parâmetro TargetName especificar vários computadores, uma matriz de valores booleanos será retornada.
Se qualquer ping para um determinado destino for bem-sucedido, $True
será retornado.
Se todos os pings para um determinado destino falharem, $False
será retornado.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Repeat
Faz com que o cmdlet envie solicitações de ping continuamente. Quando o valor de TargetName é uma matriz de destinos, o cmdlet repete as solicitações de ping somente para o primeiro destino. Ignora os restantes objetivos. Este parâmetro não pode ser usado com o parâmetro Count .
Tipo: | SwitchParameter |
Aliases: | Continuous |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ResolveDestination
Faz com que o cmdlet tente resolver o nome DNS do destino. Quando usado em conjunto com o parâmetro Traceroute , os nomes DNS de todos os hosts intermediários também serão recuperados, se possível.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Source
Especifica os nomes dos computadores de onde o ping se origina. Insira uma lista separada por vírgulas de nomes de computadores. A predefinição é o computador local.
Nota
Este parâmetro não é suportado nas versões 6 e superiores do PowerShell. O fornecimento desse parâmetro causa um erro.
Tipo: | String |
Position: | Named |
Default value: | Local computer |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-TargetName
Especifica o(s) computador(es) a testar. Digite os nomes dos computadores ou digite endereços IP no formato IPv4 ou IPv6.
Tipo: | String[] |
Aliases: | ComputerName |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-TcpPort
Especifica o número da porta TCP no destino a ser usado no teste de conexão TCP.
O cmdlet tenta fazer uma conexão TCP com a porta especificada no destino.
- O cmdlet retorna
$True
se uma conexão for feita. - O cmdlet retorna
$False
se uma conexão não for feita.
Tipo: | Int32 |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-TimeoutSeconds
Define o valor de tempo limite para o teste. O teste falhará se uma resposta não for recebida antes que o tempo limite expire. O padrão é cinco segundos.
Esse parâmetro foi introduzido no PowerShell 6.0.
Tipo: | Int32 |
Position: | Named |
Default value: | 5 seconds |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Traceroute
Faz com que o cmdlet faça um teste traceroute. Quando esse parâmetro é usado, o cmdlet retorna um TestConnectionCommand+TraceStatus
objeto.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
None
Não é possível canalizar objetos para este cmdlet.
Saídas
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
Por padrão, esse cmdlet retorna um objeto TestConnectionCommand+PingStatus para cada resposta de ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
Quando você usa o parâmetro Traceroute , esse cmdlet retorna um objeto TestConnectionCommand+TraceStatus para cada resposta ping ao longo da rota.
Quando você usa os parâmetros Quiet ou TcpPort , esse cmdlet retorna um valor booleano . Se o cmdlet testar várias conexões, ele retornará uma matriz de valores booleanos .
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
Quando você usa o parâmetro MtuSize , esse cmdlet retorna um objeto TestConnectionCommand+PingMtuStatus para cada resposta de ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
Quando você usa o parâmetro Detailed , esse cmdlet retorna um objeto TestConnectionCommand+TcpPortStatus que mostra o status da conexão TCP.
Notas
No Linux, usar o parâmetro BufferSize ou qualquer combinação de parâmetros com o conjunto de parâmetros MtuSizeDetect que resulte em um tamanho de buffer não padrão de 32 bytes pode exigir sudo
. Nesses casos, Test-Command
gera uma exceção com uma mensagem indicando que sudo
é necessário.