El cmdlet del día de hoy es PowerShell Test-Connection. Test-Connection
es un cmdlet que, como era de esperar, prueba la conexión de red. Piense en Test-Connection
como la implementación de PowerShell de la popular utilidad ping. Aunque ambos tienen ICMP en común, verá que los dos métodos son un poco diferentes internamente.
Usar este cmdlet es simple. En su forma más básica, solo especifique un parámetro ComputerName
y enviará cuatro solicitudes ICMP al host de destino.
Esta salida se parece a ping.exe y, en apariencia, lo es, pero test-connection de Powershell emite la solicitud ICMP de manera un poco diferente. A diferencia de ping.exe, Test-Connection
utiliza la clase WMI Win32_PingStatus de la computadora local para enviar la solicitud ICMP. Utilizar el repositorio WMI local significa que debe asegurarse de que su repositorio WMI local esté en buen estado, de lo contrario, Test-Connection
no funcionará.
Salida de objetos de PowerShell Test-Connection
Además, como ocurre con la belleza de PowerShell, este cmdlet no devuelve simplemente lo que aparece en la consola. Vemos objetos ricos de los que podemos obtener más información.
Si asigno la salida a una variable y luego reviso las propiedades, puedo ver que he recopilado mucha más información útil.
Si estás probando hosts internos, Test-Connection
utilizará DCOM para autenticarse en hosts remotos. De forma predeterminada, utilizará autenticación de DCOM a nivel de paquete, pero el tipo de autenticación siempre se puede cambiar con el parámetro DcomAuthentication
.
Usando trabajos en segundo plano
Este cmdlet también se puede ejecutar como un trabajo en segundo plano. Los trabajos en segundo plano son útiles si tienes muchos equipos remotos para hacer ping y en lugar de esperar para siempre a los que eventualmente agotarán el tiempo, simplemente envíalo a un trabajo en segundo plano.
Según la ayuda de PowerShell para las conexiones de prueba de PowerShell, dice que la comunicación remota de PowerShell debe estar habilitada tanto en los equipos locales como remotos, pero esto no es cierto. Como puedes ver a continuación, estoy probando google.com, y el comando sigue funcionando perfectamente.


Manteniéndolo simple
Finalmente, si solo estás buscando una respuesta binaria sí/no sobre si un equipo está respondiendo o no, siempre puedes usar el parámetro Quiet
. Una cadena común que siempre uso para ver rápidamente si un servidor está en línea o no es usar Quiet
y Count
de 1 para forzar a Test-Connection
a enviar una sola solicitud ICMP.
¡Eso es todo para nuestro cmdlet del día! Cubrimos la mayoría de lo que es posible con Test-Connection de PowerShell, pero, como siempre, consulta el contenido de ayuda de PowerShell o ve a la documentación de Microsoft para obtener un desglose completo.
Source:
https://adamtheautomator.com/powershell-test-connection/