El error 623 de rasdial es un fallo de búsqueda y no un fallo de red: la libreta de teléfonos no contiene ninguna entrada con ese nombre. Windows espera que el perfil exista antes de que cualquier comando lo marque, y el marcador nunca crea uno por su cuenta. Recorra las comprobaciones siguientes en orden, porque cada una da por hecho que la anterior pasó.

Lea el código de error antes que nada

Los códigos que siguen al 623 describen otras averías, así que el primer texto que vea decide la rama. Un 691 es un rechazo de credenciales contra un perfil que sí existe, y un 868 suele apuntar a la resolución de nombres para la dirección del servidor. Solo el 623 le devuelve al aprovisionamiento, y por eso repetir el mismo comando rara vez cambia nada.

Capture el estado de salida en el mismo paso que marca. El siguiente comando de un script lo sobrescribe, y el código real ya no está cuando alguien lee el registro.

rasdial "Office"; if ($LASTEXITCODE -ne 0) { Write-Output "failed: $LASTEXITCODE" }

Confirme que existe la entrada de la libreta

Pregunte a Windows qué perfiles tiene realmente antes de añadir otro. El cmdlet devuelve el nombre, la dirección del servidor y el estado actual de la conexión, y un resultado vacío resuelve la cuestión de inmediato.

Windows guarda las entradas por usuario en un archivo de libreta de teléfonos y las de todos los usuarios en otro, así que un mismo nombre puede apuntar a dos servidores distintos. Esa duplicación explica un script que marca el punto final equivocado mientras la configuración que inspeccionó parece perfectamente correcta. Enumere ambas ubicaciones antes de concluir nada sobre el nombre.

Get-VpnConnection -Name "Office" | Format-List Name, ServerAddress, ConnectionStatus
dir "%APPDATA%\Microsoft\Network\Connections\Pbk"
dir "%PROGRAMDATA%\Microsoft\Network\Connections\Pbk"

Cree el perfil con Add-VpnConnection

Aprovisione la entrada una sola vez con el cmdlet que escribe un perfil nativo, no con una edición de texto. Indique la dirección del servidor, el tipo de túnel y el método de autenticación que su puerta de enlace acepta de verdad, porque un perfil que negocia el protocolo equivocado falla más tarde con un mensaje que culpa al servidor.

Todavía puede pegar a mano una sección de conexión en rasphone.pbk, pero nada valida esa edición. Una clave equivocada produce un perfil que no se autentica contra nada, y el error que genera parece una avería remota en lugar de una errata.

Add-VpnConnection -Name "Office" -ServerAddress vpn.corp.internal \
  -TunnelType Ikev2 -AuthenticationMethod Eap -EncryptionLevel Required

Alinee la sesión con el almacén de credenciales

Una entrada pertenece a un usuario o a la máquina, y el certificado o la credencial guardada que hay detrás puede que solo sea accesible desde una sesión de inicio. Una tarea programada que se ejecuta como SYSTEM es un cliente distinto de la cuenta que inició sesión, y un servicio en la sesión 0 no tiene ningún escritorio donde mostrar un aviso. La primera vez que una sesión interactiva encuentra una red desconocida, Windows abre su aviso de ubicación de red, y el marcador no ofrece ningún conmutador para silenciarlo. El aislamiento de sesión evita ese aviso y al mismo tiempo elimina el contexto de usuario que algunos métodos de autenticación requieren.

Elija el propietario a propósito: una tarea desencadenada por el inicio de sesión para un túnel por usuario, o un servicio para un túnel de toda la máquina. Mezclar ambas cosas y esperar el mismo comportamiento es como una conexión que funciona a mano empieza a fallar bajo automatización.

Deje el desencadenador automático como lo encontró

Windows puede levantar un túnel por su cuenta cuando coincide una aplicación o una condición de red, y una desconexión puede añadir el perfil a la lista de entradas desactivadas del desencadenador automático. El siguiente intento automático entonces nunca ocurre, mucho después de que el script responsable haya terminado. Por eso una tarea que desconecta sin condiciones rompe el comportamiento de siempre activo para todos los demás usuarios de esa máquina. Ese efecto secundario es invisible en el registro de la tarea, y eso es lo que lo hace caro.

Anote el estado del perfil antes de que se ejecute la tarea y devuélvalo tal como lo encontró en lugar de derribar el túnel de forma predeterminada. Reactivar el desencadenador es un cambio de política, así que trátelo como un paso deliberado y no como una limpieza.

Dos límites sobreviven a cualquier cantidad de scripts. rasdial puede informar de éxito mientras el servicio detrás del túnel sigue inalcanzable, así que pruebe el recurso que realmente necesita. Un perfil que exige una tarjeta inteligente, una aprobación push o un inicio de sesión en el navegador no tiene ninguna ruta desatendida, y un propietario humano sigue formando parte del diseño.

Artículos relacionados