¿Qué libro de teléfonos busca una tarea SYSTEM para los perfiles VPN?
Una tarea se ejecuta con una cuenta, y los perfiles VPN nativos son por usuario salvo que se creen como perfiles para todos los usuarios. Compare ambos almacenes antes de reconstruir nada.
Su perfil VPN está justo ahí en Configuración, y la tarea programada sigue informando de que no puede encontrar la conexión. Nada está dañado: el almacén VPN nativo de Windows es por usuario salvo que el perfil se haya creado como perfil para todos los usuarios, y una tarea se ejecuta con la cuenta que indique su principal. Normalmente la tarea lee un libro de teléfonos que nunca contuvo su perfil. Dos comandos y un ajuste de la tarea bastan para demostrarlo, y merece la pena ejecutarlos antes de que alguien reconstruya la conexión.
Dos almacenes guardan el mismo nombre de perfil
Un perfil VPN nativo de Windows vive en el almacén de la cuenta que lo creó. El almacén global es otro libro de teléfonos, que solo se llena cuando el perfil se crea con el conmutador para todos los usuarios en una sesión elevada. Ambos pueden guardar un perfil con el mismo nombre, y ninguno es una vista del otro.
Lea ambos almacenes desde la misma sesión y compare los nombres que devuelven. El conmutador selecciona el almacén global, y leerlo suele requerir una sesión elevada:
Get-VpnConnection | Select-Object Name, ServerAddress, TunnelType
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType
Si el primer comando enumera el perfil y el segundo no, ningún cambio de credenciales ayudará a una tarea que se ejecute con otra cuenta, porque el problema es la pertenencia y no la autenticación. Si ambos lo enumeran, el almacén no es la causa y se aplica la sección siguiente. Esa única comparación cierra la mitad de estos tickets. Anote qué almacén respondió y con qué cuenta ejecutó la comprobación, porque la respuesta no significa nada sin ambos hechos.
Lea el principal de la tarea antes que sus credenciales
Abra la tarea y lea el principal, porque le dice qué almacén puede ver la tarea. Una tarea configurada para ejecutarse como SYSTEM no es su cuenta con derechos adicionales: tiene su propio perfil y ningún acceso al libro de teléfonos por usuario que creó mientras estaba conectado. Una cuenta de servicio se comporta exactamente igual.
La opción de ejecutarse tanto si ha iniciado sesión como si no también cambia esto, porque entonces la tarea no tiene ninguna sesión interactiva de la que pueda tomar prestadas las credenciales. Haga que la acción escriba whoami en un archivo y lea la respuesta en lugar de suponerla.
El diagnóstico desde su propio terminal no dice nada sobre este problema, porque muestra lo que ve su cuenta. Ejecute la comparación bajo la identidad de la tarea mediante el proceso aprobado que tenga para ello. La salida pegada desde una consola de administrador es otro conjunto de datos, no uno más privilegiado. Si no existe tal proceso, la tarea tiene que registrar ella misma la respuesta, que es lo que prepara la última sección.
Encontrar el perfil no es iniciar sesión
Un perfil para todos los usuarios hace que la configuración sea visible de forma más amplia. No lleva la contraseña guardada de la cuenta que lo creó, y no entrega a otra cuenta la clave privada almacenada en su perfil de usuario. Visibilidad y credenciales utilizables son dos pruebas separadas, y pasar la primera no dice nada sobre la segunda.
Si la tarea ahora encuentra el perfil y falla en la autenticación, eso es un avance y la etapa pertenece al registro. Mueva el certificado al almacén de la máquina, o proporcione el secreto mediante el mecanismo propio del despliegue, en lugar de recrear otra vez el nombre de la conexión. Recrearlo produce el mismo fallo con una marca de tiempo más reciente. Microsoft documenta los dos ámbitos entre los que elige el conmutador del cmdlet.
Los desafíos no interactivos son la trampa detrás de esa etapa. Una solicitud de PIN o un código de un solo uso no pueden ser respondidos por una tarea sin escritorio, así que un perfil que marca perfectamente a mano puede ser inutilizable bajo automatización.
Cuatro campos que necesita el registro de la tarea
Mantenga juntos en un solo lugar los valores que deciden el resultado, porque tres de ellos suelen quedar implícitos. El registro necesita cuatro líneas:
- Ruta de la acción: el script o el ejecutable que ejecuta la tarea, no un acceso directo que se resuelve de forma distinta para otra cuenta.
- Nombre del perfil: la cadena exacta, porque dos almacenes pueden guardar el mismo nombre apuntando a servidores diferentes.
- Principal: la cuenta con la que se ejecuta la tarea, y si tiene una sesión interactiva.
- Método de autenticación: qué puede completar realmente ese principal, como un certificado del almacén de la máquina en lugar de una clave en su perfil de usuario.
Esas cuatro líneas responden a la pregunta que el ticket plantea de verdad, que es qué configuración utilizó la automatización. También sobreviven a la siguiente reconstrucción de la tarea, cuando el autor original ya no está para explicar por qué importaba el nombre. Sin ellas, el mismo fallo vuelve tras el siguiente despliegue y cuesta otra vez las mismas horas.
Localice la etapa a la que llegó la tarea
Instrumente la acción en lugar de adivinar a partir del resultado de la última ejecución. Un envoltorio corto registra la identidad, el almacén que puede ver y el resultado de la marcación en un solo lugar:
whoami
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress
rasdial "Office"
schtasks /query /tn "VPN Connect" /v /fo LIST
El comando de marcación imprime su propio error, que suele ser más claro que un fallo genérico de la tarea. La consulta devuelve el principal y el último código de resultado uno junto al otro, así que identidad y resultado son visibles en una sola vista. Esos dos hechos deciden si el paso siguiente es un cambio de almacén o un cambio de credenciales.
Por último, separe una tarea que se conecta después de que un usuario inicie sesión de un túnel de dispositivo o de un flujo de trabajo admitido antes del inicio de sesión. Compartir un solo perfil no es un diseño para ninguno de los dos, y el campo principal es el que le dice cuál de los tres ha construido. Si la conectividad debe existir antes del inicio de sesión, el almacén de perfiles por usuario es la capa equivocada que reparar.