Test-Connection
Envia pacotes de solicitação de eco ICMP, ou pings, para um ou mais computadores.
Sintaxe
Test-Connection
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-ComputerName] <String[]>
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-ComputerName] <String[]>
[-Count <Int32>]
[-Credential <PSCredential>]
[-Source] <String[]>
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-ComputerName] <String[]>
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[-Quiet]
[<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 Test-Connection
para especificar os computadores de envio e 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 Win32_PingStatus que você pode investigar no PowerShell. O parâmetro Quiet retorna um valor booliano 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 -ComputerName Server01
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 1
Test-Connection
usa o parâmetro ComputerName para especificar o computador Server01.
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 -ComputerName Server01, Server02, Server12
Exemplo 3: Enviar solicitações de eco de vários computadores para um computador
Este exemplo envia pings de diferentes computadores de origem para um único computador remoto, Server01.
Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01
Test-Connection
usa o parâmetro Credential para especificar as credenciais de um usuário que tem permissão para enviar uma solicitação de ping dos computadores de origem. Use esse formato de comando para testar a latência de conexões de vários pontos.
Exemplo 4: Usar parâmetros para personalizar o comando de teste
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 -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32
Test-Connection
usa o parâmetro ComputerName 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 a resposta do ping deve demorar mais do que o normal, seja devido a um número estendido de saltos ou a uma condição de rede de alto tráfego.
Exemplo 5: 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 = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}
O Test-Connection
comando executa ping em muitos computadores em uma empresa. O valor do parâmetro ComputerName é um Get-Content
comando que lê uma lista de nomes de computador do Servers.txt file
. O comando usa o parâmetro AsJob para executar o comando como um trabalho em segundo plano e salva o $job
trabalho na variável.
O if
comando verifica se o trabalho ainda não está em execução. Se o trabalho não estiver em execução, Receive-Job
obterá os resultados e os armazenará na $Results
variável.
Exemplo 6: Executar ping em um computador remoto com credenciais
Esse comando usa o Test-Connection
cmdlet para executar ping em um computador remoto.
Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify
O comando usa o parâmetro Credential para especificar uma conta de usuário que tenha permissão para executar ping no computador remoto e o parâmetro Impersonation para alterar o nível de representação para Identify.
Exemplo 7: 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 -ComputerName Server01 -Quiet) {New-PSSession Server01}
O if
comando usa o Test-Connection
cmdlet para executar ping no computador Server01. O comando usa o parâmetro Quiet , que retorna um valor booliano , em vez de um objeto Win32_PingStatus . O valor é $True
se qualquer um dos quatro pings for bem-sucedido e for, caso contrário, $False
.
Se o Test-Connection
comando retornar um valor de $True
, o comando usará o New-PSSession
cmdlet para criar o PSSession.
Parâmetros
-AsJob
Indica que esse cmdlet é executado como um trabalho em segundo plano. Quando você especifica o parâmetro AsJob , o comando retorna imediatamente um objeto que representa o trabalho em segundo plano. É possível continuar a trabalhar na sessão enquanto o trabalho é concluído. Para obter os resultados do trabalho, use o Receive-Job
cmdlet.
Para obter mais informações sobre trabalhos em segundo plano do PowerShell, consulte about_Jobs e about_Remote_Jobs.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-BufferSize
Especifica o tamanho, em bytes, do buffer enviado com esse comando. O valor padrão é 32.
Tipo: | Int32 |
Aliases: | Size, Bytes, BS |
Cargo: | Named |
Valor padrão: | 32 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ComputerName
Especifica os computadores para execução do ping. Digite os nomes de computador ou endereços IP no formato IPv4 ou IPv6. Caracteres curinga não são permitidos. Este parâmetro é obrigatório.
Esse parâmetro não depende da comunicação remota do PowerShell. Você pode usar o parâmetro ComputerName mesmo que seu computador não esteja configurado para executar comandos remotos.
Observação
O parâmetro ComputerName é renomeado para TargetName no PowerShell 6.0 e superior.
Tipo: | String[] |
Aliases: | CN, IPAddress, __SERVER, Server, Destination |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Count
Especifica o número de solicitações de eco a enviar. O valor padrão é 4.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 4 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Especifica uma conta de usuário que tenha permissão para enviar uma solicitação de ping do computador de origem. Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential , como um do Get-Credential
cmdlet.
O parâmetro Credential é válido somente quando o parâmetro Source é usado no comando. As credenciais não afetam o computador de destino.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | Current user |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-DcomAuthentication
Especifica o nível de autenticação que esse cmdlet usa com o WMI.
Test-Connection
usa WMI.
Os valores aceitáveis para esse parâmetro são:
- Default. Autenticação do Windows
- Nenhum. Não há autenticação COM
- Conectar. Autenticação COM de nível de conexão
- Ligar. Autenticação COM de nível de chamada
- Pacote. Autenticação COM em nível de pacote
- Integridade do pacote. Autenticação COM de nível de integridade de pacote
- Privacidade do pacote. Autenticação COM de nível de privacidade de pacote
- Inalterado. O mesmo que o comando anterior
O valor padrão é Packet que tem um valor enumerado de 4. Para obter mais informações sobre os valores desse parâmetro, consulte Enumeração AuthenticationLevel .
Tipo: | AuthenticationLevel |
Aliases: | Authentication |
Valores aceitos: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Cargo: | Named |
Valor padrão: | Packet (enumerated value of 4) |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Delay
Especifica o intervalo entre pings, em segundos.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 1 (second) |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Impersonation
Especifica o nível de representação a ser usado quando esse cmdlet chama WMI. Test-Connection
usa WMI.
Os valores aceitáveis para este parâmetro são os seguintes:
- Default. Representação padrão.
- Anônimo. Oculta a identidade do autor da chamada.
- Identificar. Permite que os objetos consultem as credenciais do autor da chamada.
- Personificar. Permite que os objetos utilizem as credenciais do autor da chamada.
O valor padrão é Representar.
Tipo: | ImpersonationLevel |
Valores aceitos: | Default, Anonymous, Identify, Impersonate, Delegate |
Cargo: | Named |
Valor padrão: | Impersonate |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Protocol
Especifica um protocolo. Os valores aceitáveis para esse parâmetro são DCOM e WSMan.
Tipo: | String |
Valores aceitos: | DCOM, WSMan |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Quiet
O parâmetro Quiet retorna um valor booliano em um objeto System.Boolean . O uso desse parâmetro suprime todos os erros.
Cada conexão testada retorna um valor booliano . Se o parâmetro ComputerName especificar vários computadores, uma matriz de valores boolianos será retornada.
Se algum ping for bem-sucedido, $True
será retornado.
Se todos os pings falharem, $False
será retornado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | String[] |
Aliases: | FCN, SRC |
Cargo: | 1 |
Valor padrão: | Local computer |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ThrottleLimit
Especifica o número máximo de conexões simultâneas que podem ser estabelecidas para executar o comando. Se você omite esse parâmetro ou digita um valor 0, o valor padrão, 32, é usado.
O limite de aceleração aplica-se somente ao comando atual e não à sessão ou ao computador.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 32 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-TimeToLive
Especifica o máximo de vezes que um pacote pode ser encaminhado. Para cada salto em gateways, roteadores, etc., o valor TimeToLive é reduzido em um. Em zero, o pacote é descartado e um erro é retornado. No Windows, o valor padrão é 128. O alias do parâmetro TimeToLive é TTL.
Tipo: | Int32 |
Aliases: | TTL |
Cargo: | Named |
Valor padrão: | 128 in Windows |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WsmanAuthentication
Especifica o mecanismo usado para autenticar as credenciais do usuário quando esse cmdlet usa o protocolo WSMan. Os valores aceitáveis para esse parâmetro são:
- Basic
- Fornecedor de suporte à segurança de credenciais
- Padrão
- Digest
- Kerberos
- Negociar.
O valor padrão é Default.
Para obter mais informações sobre os valores desse parâmetro, consulte Enumeração AuthenticationMechanism.
Cuidado: A autenticação do Provedor de Serviços de Segurança de Credenciais (CredSSP), na qual as credenciais do usuário são passadas para um computador remoto a ser autenticado, foi projetada para comandos que exigem autenticação em mais de um recurso, como acessar um compartilhamento de rede remoto. Esse mecanismo aumenta o risco de segurança da operação remota. Se o computador remoto estiver comprometido, as credenciais que são passadas a ele podem ser usadas para controlar a sessão de rede.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | String |
Valores aceitos: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Cargo: | Named |
Valor padrão: | Default |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Você não pode canalizar objetos para esse cmdlet.
Saídas
Por padrão, esse cmdlet retorna um objeto Win32_PingStatus para cada resposta de ping.
System.Management.Automation.RemotingJob
Esse cmdlet retornará um objeto de trabalho, se você especificar o parâmetro AsJob .
Quando você usa o parâmetro Quiet , isso retorna um valor booliano . Se o cmdlet testar várias conexões, ele retornará uma matriz de valores boolianos .
Observações
Esse cmdlet usa a classe Win32_PingStatus . Um Get-WMIObject Win32_PingStatus
comando é equivalente a um Test-Connection
comando.
O conjunto de parâmetros Source foi introduzido no PowerShell 3.0.