O cmdlet do dia de hoje é o Test-Connection do PowerShell. Test-Connection
é um cmdlet que, não surpreendentemente, testa a sua conexão de rede. Pense no Test-Connection
como a implementação do PowerShell da popular utilidade ping. Mesmo que ambos usem ICMP em comum, você verá que os dois métodos são um pouco diferentes internamente.
Usar este cmdlet é simples. Em sua forma mais básica, basta especificar um parâmetro ComputerName
e ele enviará quatro solicitações ICMP para o host de destino.
Esta saída parece semelhante ao ping.exe e, superficialmente, é, mas o Powershell test-connection emite a solicitação ICMP de maneira um pouco diferente. Ao contrário do ping.exe, Test-Connection
está usando a classe WMI Win32_PingStatus do computador local para enviar a solicitação ICMP. Usar o repositório WMI local significa que você deve garantir que o seu repositório WMI local esteja saudável, caso contrário, o Test-Connection
não funcionará.
Saída de Objeto do PowerShell Test-Connection
Também, como na beleza do PowerShell, este cmdlet não retorna apenas o que aparece imediatamente no console. Vemos objetos completos dos quais podemos obter mais informações.
Se eu atribuir a saída a uma variável e depois verificar as propriedades, você pode ver que obtive muito mais informações úteis.
Se estiver testando hosts internos, Test-Connection
usará DCOM para autenticar-se em hosts remotos. Por padrão, ele usará autenticação DCOM no nível de pacote, mas o tipo de autenticação sempre pode ser alterado com o parâmetro DcomAuthentication
.
Usando Trabalhos em Segundo Plano
Este cmdlet também pode ser executado como um trabalho em segundo plano. Trabalhos em segundo plano são úteis se você tiver muitos computadores remotos para pingar e, em vez de esperar para sempre por aqueles que eventualmente expirarão, basta enviá-los para um trabalho em segundo plano.
De acordo com a ajuda do PowerShell para testes de conexão do PowerShell, diz que a comunicação remota do PowerShell deve estar habilitada em ambos os computadores local e remoto, mas isso não é verdade. Como você pode ver abaixo, estou testando google.com, e o comando ainda funciona muito bem.


Mantendo Simples
Finalmente, se você estiver apenas procurando uma resposta binária sim/não para saber se um computador está respondendo ou não, você sempre pode usar o parâmetro Quiet
. Uma string comum que sempre uso para ver rapidamente se um servidor está online ou não é usar Quiet
e Count
de 1 para forçar o Test-Connection
a enviar uma única solicitação ICMP.
Está feito para o nosso cmdlet do dia! Cobrimos a maioria do que é possível com o teste de conexão do PowerShell, mas, como sempre, confira o conteúdo de ajuda do PowerShell ou vá até a documentação da Microsoft para obter uma análise completa.
Source:
https://adamtheautomator.com/powershell-test-connection/