# Comprobar conectividad a una URL y puerto usando PowerShell

- Link: https://binariocero.com/windows/comprobar-conectividad-a-una-url-y-puerto-usando-powershell
- Published: 2025-07-04T22:18:00+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

En sistemas Windows, especialmente en entornos administrativos o de soporte técnico,
es frecuente necesitar validar rápidamente si un servidor o un servicio específico
está accesible mediante una URL y puerto concretos. PowerShell ofrece herramientas
integradas fáciles de usar para realizar estas comprobaciones.

### Uso del comando `Test-NetConnection`

El comando más común y sencillo para realizar estas comprobaciones es `Test-NetConnection`.
Este cmdlet es nativo desde PowerShell 4.0 en adelante.

#### Sintaxis básica

    ```wp-block-code
    Test-NetConnection -ComputerName <URL o IP> -Port <Número_Puerto>
    ```

#### Ejemplo práctico

) está disponible mediante el puerto HTTPS (443):

    ```wp-block-code
    Test-NetConnection -ComputerName www.google.com -Port 443
    ```

#### Salida típica del comando

    ```wp-block-code
    ComputerName     : www.google.com
    RemoteAddress    : 142.250.201.4
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 192.168.1.10
    TcpTestSucceeded : True
    ```

La clave en la salida es la propiedad `TcpTestSucceeded`. Si su valor es `True`,
significa que el puerto está accesible.

### Respuesta rápida (True/False)

Si solo deseas obtener rápidamente una respuesta booleana para automatizar scripts:

    ```wp-block-code
    (Test-NetConnection www.google.com -Port 443).TcpTestSucceeded
    ```

Esto devuelve:

 * `True` si el puerto responde correctamente.
 * `False` si el puerto no está accesible.

### Alternativa con `TcpClient` para sistemas heredados

En sistemas anteriores o para un control más granular, se puede utilizar la clase`
TcpClient` desde .NET.

#### Función personalizada

    ```wp-block-code
    function Test-Port ($host, $port, $timeout=2000) {
        $tcpClient = New-Object System.Net.Sockets.TcpClient
        try {
            $connectTask = $tcpClient.ConnectAsync($host, $port)
            if ($connectTask.Wait($timeout)) {
                return $true
            } else {
                return $false
            }
        } catch {
            return $false
        } finally {
            $tcpClient.Dispose()
        }
    }
    ```

#### Ejemplo con función personalizada

    ```wp-block-code
    # Comprobando el puerto SMTP (25) en un servidor de correo electrónico
    Test-Port -host "smtp.ejemplo.com" -port 25
    ```

Esto devolverá `True` o `False` según el resultado de la prueba.

### Casos de uso típicos

 * Diagnóstico rápido de accesibilidad a servicios web.
 * Automatización de chequeos previos en scripts de instalación o despliegue.
 * Validaciones periódicas en herramientas de monitorización.

### Conclusión

Utilizar estos comandos facilita enormemente el diagnóstico inicial y el troubleshooting
de conectividad a servicios específicos desde entornos Windows, optimizando tiempos
de respuesta y mejorando la eficiencia en tareas administrativas o de soporte.
