Test-Connection

Envia pacotes de solicitação de eco ICMP, ou pings, para um ou mais computadores.

Syntax

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 em uma rede IP.

Você pode usar os parâmetros de para especificar os computadores de Test-Connection envio e recebimento, para executar o comando como um trabalho em segundo plano, para definir um tempo limite e 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 booleano 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 computador 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 $Results na 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 ao 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 Êxito .

Exemplo 7: Obter saída detalhada para um teste de conexão TCP

Quando você usa o parâmetro Detailed (Detalhado ), 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 esse comando. O valor padrão é 32.

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

-Count

Especifica o número de solicitações de eco a enviar. O valor padrão é 4.

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

-Delay

Especifica o intervalo entre pings, em segundos.

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

-Detailed

Quando você usa o parâmetro Detailed (Detalhado ), esse cmdlet retorna informações detalhadas sobre o status das tentativas de conexão TCP.

Esse parâmetro foi adicionado no PowerShell 7.4.

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

-DontFragment

Esse parâmetro define o sinalizador Não fragmentar no cabeçalho IP. Você pode usar esse parâmetro com o parâmetro BufferSize para testar o tamanho do MTU do caminho. Para obter mais informações sobre o Path MTU, consulte o artigo Path MTU Discovery na wikipedia.

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

-IPv4

Força o cmdlet a usar o protocolo IPv4 para o teste.

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

-IPv6

Força o cmdlet a usar o protocolo IPv6 para o teste.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 o Windows 10 e superior é 128 saltos.

Type:Int32
Aliases:Ttl, TimeToLive, Hops
Position:Named
Default value:128
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MtuSize

Esse 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 Path para o destino. Para obter mais informações sobre o Path MTU, consulte o artigo Path MTU Discovery na wikipedia.

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

-Ping

Faz com que o cmdlet faça um teste de ping. Esse é o modo padrão para o Test-Connection cmdlet.

Type:SwitchParameter
Position:Named
Default value:True
Required:False
Accept pipeline input:False
Accept wildcard characters: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 algum ping para um determinado alvo for bem-sucedido, $True será retornado.

Se todos os pings para um determinado destino falharem, $False será retornado.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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. Ele ignora os alvos restantes. Esse parâmetro não pode ser usado com o parâmetro Count .

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

-ResolveDestination

Faz com que o cmdlet tente resolver o nome DNS do destino. Quando usados em conjunto com o parâmetro Traceroute , os nomes DNS de todos os hosts intermediários também serão recuperados, se possível.

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

-Source

Especifica os nomes dos computadores de onde se origina o ping. Digite uma lista separada por vírgulas de nomes de computador. O padrão é o computador local.

Observação

Esse parâmetro não tem suporte nas versões 6 e posteriores do PowerShell. O fornecimento desse parâmetro causa um erro.

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

-TargetName

Especifica o(s) computador(es) a ser testado(s). Digite os nomes de computador ou endereços IP no formato IPv4 ou IPv6.

Type:String[]
Aliases:ComputerName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 retornará $False se uma conexão não for feita.
Type:Int32
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

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

-Traceroute

Faz com que o cmdlet faça um teste traceroute. Quando esse parâmetro é usado, o cmdlet retorna um TestConnectionCommand+TraceStatus objeto.

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

Entradas

None

Não é possível canalizar objetos para esse 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 de ping ao longo da rota.

Boolean

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.

Observações

No Linux, o uso do 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 sudoo . Nesses casos, Test-Command gera uma exceção com uma mensagem indicando que sudo é necessária.