Diagnóstico de red con PowerShell en Windows
Cuando algo “no se conecta”, lo primero que solemos hacer es un ping. Pero hoy tienes herramientas mucho más potentes en Windows gracias a PowerShell. Si solo usas ping, estás viendo una parte muy pequeña del problema.
En este artículo vamos a ver cómo usar cmdlets modernos como Test-NetConnection, Test-Connection y Resolve-DnsName para diagnosticar problemas de red en servidores Windows y estaciones de trabajo.
Por qué debes ir más allá de ping y tracert
Las herramientas clásicas siguen siendo útiles:
ping— comprueba si un host responde.tracert— muestra el camino (saltos) hasta un destino.nslookup— consulta servidores DNS.
El problema es que:
- Muchos servidores bloquean ICMP, así que
pingfalla aunque el servicio esté vivo. - Te dicen poco sobre puertos (HTTP, RDP, SQL, etc.).
- No son tan fáciles de automatizar y procesar como los cmdlets de PowerShell.
PowerShell te permite:
- Probar conectividad a un host y a un puerto específico.
- Ver rápidamente si el problema es DNS, red o la aplicación.
- Automatizar pruebas contra varios servidores o servicios.
Test-Connection: el “nuevo ping” en PowerShell
Test-Connection es el equivalente en PowerShell a ping, pero con más control y resultados más fáciles de procesar.
Ejemplo básico
Test-Connection -ComputerName servidor01Esto envía varios “pings” (ICMP) a servidor01 y devuelve un resultado detallado con tiempos de respuesta y estado.
Especificar número de pruebas
Test-Connection -ComputerName servidor01 -Count 5Útil para comprobar estabilidad: si algunas peticiones fallan y otras no, puedes sospechar de problemas intermitentes o de congestión.
Probar una lista de servidores
$servidores = @("dc1", "fileserver", "sql01")
Test-Connection -ComputerName $servidores -Count 2Así puedes revisar rápidamente si tus servidores críticos responden a nivel de red.
Test-NetConnection: probando puertos y rutas
Test-NetConnection te permite ir más allá: comprobar si un puerto está accesible en un host y ver detalles de la ruta.
Ejemplo: comprobar si un sitio web es accesible
Test-NetConnection -ComputerName www.ejemplo.com -Port 443Esto te dirá:
- Si resolvió el nombre (DNS).
- La IP de destino.
- Si el puerto 443 (HTTPS) está abierto.
- Algunos detalles de la ruta (hops).
Es ideal para preguntas como: “¿es problema de DNS, de firewall o del servidor web?”.
Ejemplo: probar RDP a un servidor
Test-NetConnection -ComputerName servidor01 -Port 3389Si el resultado indica que el puerto no es accesible, ya sabes que el problema está en algún punto entre el cliente y el servidor: firewall, reglas de red, NAT, etc.
Checar varios servicios desde un mismo servidor
$pruebas = @(
@{Nombre="SQL"; Host="sql01"; Puerto=1433},
@{Nombre="Web"; Host="web01"; Puerto=80},
@{Nombre="RDP"; Host="servidor01"; Puerto=3389}
)
foreach ($prueba in $pruebas) {
Write-Host "Probando $($prueba.Nombre) en $($prueba.Host):$($prueba.Puerto)"
Test-NetConnection -ComputerName $prueba.Host -Port $prueba.Puerto |
Select-Object ComputerName, RemotePort, TcpTestSucceeded
}Con este pequeño script puedes ver de un vistazo qué servicios están accesibles.
Resolve-DnsName: diagnóstico moderno de DNS
Resolve-DnsName es el reemplazo moderno de nslookup en PowerShell. Te permite ver cómo se resuelven los nombres de forma más clara y más fácil de automatizar.
Ejemplo básico
Resolve-DnsName servidor01.contoso.localVerás:
- Tipo de registro (A, AAAA, CNAME, etc.).
- Direcciones IP devueltas.
- Servidor DNS que respondió.
Ver registros específicos
Resolve-DnsName contoso.com -Type MXÚtil para validar que los registros MX de tu dominio están bien configurados (correo electrónico).
Apuntar a un servidor DNS específico
Resolve-DnsName servidor01.contoso.local -Server 10.10.10.10Perfecto para comparar respuestas entre DNS internos y externos o entre distintos controladores de dominio.
Escenarios de uso típicos
Escenario 1: “No puedo acceder a un sitio web, pero tengo internet”
- Probar DNS:
Resolve-DnsName www.ejemplo.com - Probar conectividad al puerto:
Test-NetConnection -ComputerName www.ejemplo.com -Port 443 - Comparar con otra salida a internet (otro servidor o una VPN).
Así puedes ver si el problema es de resolución de nombres, de firewall, del proveedor o del propio sitio.
Escenario 2: “Los usuarios no pueden iniciar sesión en el dominio”
- Probar si el DC responde:
Test-Connection -ComputerName dc1 -Count 2 - Ver si el puerto LDAP/kerberos está accesible (si procede):
Test-NetConnection -ComputerName dc1 -Port 389 Test-NetConnection -ComputerName dc1 -Port 88 - Validar DNS:
Resolve-DnsName dc1.contoso.local
En muchos casos el problema está en DNS mal configurado o en reglas de firewall internas que alguien cambió “por seguridad”.
Escenario 3: “La aplicación está lenta, pero el servidor parece bien”
- Probar conectividad al puerto de la aplicación desde varios clientes.
- Ver latencias con
Test-Connectionhacia el servidor:Test-Connection -ComputerName app01 -Count 10 - Ver si hay pérdidas intermitentes de paquetes o picos de tiempo de respuesta.
Esto te ayuda a decidir si el problema es de red (enlaces saturados, rutas) o de la propia aplicación/servidor.
Buenas prácticas al usar PowerShell para diagnóstico de red
- Ejecuta PowerShell como Administrador cuando necesites pruebas más avanzadas o modificar configuración de red.
- Documenta los comandos que usas y sus resultados en casos reales (te servirán como runbook para el futuro).
- Crea scripts sencillos para tus pruebas recurrentes (por ejemplo, chequear servicios críticos cada mañana).
- Combina pruebas de conectividad (ping/ICMP) con pruebas de puertos y de DNS: ver solo una cara del problema puede llevarte a conclusiones erróneas.
Conclusión
PowerShell convierte el diagnóstico de red en algo más preciso, reproducible y fácil de automatizar. Herramientas como Test-Connection, Test-NetConnection y Resolve-DnsName deberían formar parte del día a día de cualquier administrador de Windows.
El siguiente paso es integrar estos comandos en scripts de revisión rutinaria, monitorización ligera o incluso en tareas programadas que te avisen cuando un servicio crítico deja de responder como esperas.
Si hoy sigues dependiendo solo de ping, empezar a usar estos cmdlets será uno de los upgrades más rápidos que puedes hacer en tu forma de diagnosticar redes en entornos Windows.

