Windows Powershell: probar conexión TCP sin TELNET (Test-NetConnection)

Desde hace ya tiempo el ejecutable/cliente telnet no viene instalado por defecto en Windows. Si se quiere utiliza se habilitar esa funcionalidad específica a nivel de Windows.

Hoy en día telnet está obsoleto y hay distintas alternativas, tanto en Unix como Windows. Este último, a través de PowerShell cuenta con el comando Test-NetConnection, que permite verificar la conectividad TCP contra un host y puerto remoto:

test-netconnection -ComputerName  -Port 

Por ejemplo, para verificar la conectividad contra el puerto SMTP 25 del host 10.101.202.12:

PS C:\Users\foo> test-netconnection -ComputerName 10.101.202.12 -Port 25

ComputerName : 10.101.202.12
RemoteAddress : 10.101.202.12
RemotePort : 25
InterfaceAlias : Ethernet 1 Port 2
SourceAddress : 10.101.225.254
PingSucceeded : True
PingReplyDetails (RTT) : 1 ms
TcpTestSucceeded : True

La ejecución de Test-NetConnection verifica la conectividad a nivel TCP (25) y también ICMP (ping), añadiendo información adicional como la interfaz desde la que se lanza la petición, IP de origen y nombre de equipo local.

El único requisito para poder utilizar este comando es tener instalada como mínimo la versión Powershell 4.0.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14393.187
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.187
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1