# Cómo iniciar WSL y una distribución Debian al arrancar Windows 11 sin necesidad de inicio de sesión

- Link: https://binariocero.com/windows/como-iniciar-wsl-y-una-distribucion-debian-al-arrancar-windows-11-sin-necesidad-de-inicio-de-sesion
- Published: 2026-09-19T10:52:54+02:00
- Author: Juan José Fernández Durán

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

Uno de los mayores quebraderos de cabeza al usar WSL2 como parte de una infraestructura"
always-on" —por ejemplo, para tareas de sincronización, backups o servicios ligeros
en Linux dentro de un equipo Windows— es que, por defecto, WSL solo arranca cuando
un usuario inicia sesión de forma interactiva. En escenarios donde el equipo debe
funcionar de forma desatendida (un NUC, un servidor doméstico, una máquina remota
a la que se accede por RDP de forma esporádica), esto es un problema: si nadie hace
login, WSL simplemente no está disponible.

La solución pasa por el Programador de tareas de Windows, configurado para ejecutar`
wsl.exe` en el arranque del sistema, sin depender de una sesión de usuario. A continuación
se explica cómo montarlo correctamente, y qué limitaciones hay que tener en cuenta.

### El script de arranque

Aunque es posible apuntar la tarea directamente a `wsl.exe`, es más robusto envolver
la llamada en un script (`.bat` o `.ps1`), por ejemplo:

    ```wp-block-code
    wsl -d Debian -u root -- /bin/true
    ```

Esto da un punto donde añadir logging o lógica de reintento si en el futuro algo
falla silenciosamente.

### Configuración de la tarea

La tarea debe crearse desde el modo avanzado del Programador de tareas (`taskschd.
msc`), no desde el asistente básico, porque se necesitan tres ajustes que este último
no expone:

 * **General**: marcar _"Ejecutar tanto si el usuario ha iniciado sesión como si
   no"_ y _"Ejecutar con los privilegios más altos"_, asociando la tarea a una cuenta
   con perfil ya creado en la máquina.
 * **Desencadenador**: _"Al iniciar el equipo"_, nunca _"Al iniciar sesión"_. Añadir
   un retraso de 30-60 segundos da margen a que los servicios de red y virtualización
   terminen de levantar antes de que se dispare la tarea.
 * **Acción**: programa `C:\Windows\System32\wsl.exe`, argumentos `-d Debian` (o`--
   exec` para lanzar un comando concreto sin abrir una shell interactiva).

En la pestaña de configuración conviene activar _"Ejecutar la tarea lo antes posible
si se pierde un inicio programado"_ y limitar los reintentos (por ejemplo, cada 
5 minutos hasta 3 veces).

### El punto débil: los reinicios en frío

En un apagado y arranque limpios, este esquema suele funcionar sin problemas. El
punto donde falla con más frecuencia es tras un **corte de energía o un reinicio
en frío**: en ese escenario, servicios como `LxssManager` o `vmcompute` pueden tardar
más en estar operativos, y la tarea puede dispararse antes de que el subsistema 
esté realmente listo para aceptar la orden.

Por eso el retraso en el desencadenador y los reintentos no son opcionales: son 
la diferencia entre que el sistema se recupere solo o se quede en un estado a medias
que solo se detecta al intentar usarlo.

### Verificación real, no solo el historial de la tarea

El Programador de tareas puede marcar la ejecución como "correcta" simplemente porque`
wsl.exe` devolvió un código de salida limpio, sin que eso garantice que la distribución
sigue viva minutos después. La comprobación fiable pasa por reiniciar sin iniciar
sesión con ningún usuario y, desde otra sesión (RDP o acceso local), ejecutar:

    ```wp-block-code
    wsl -l -v
    wsl -d Debian -- uptime
    ```

### Reforzar con una comprobación periódica

Si el objetivo final es que Debian esté disponible para recibir conexiones (SSH,
rsync, un cron interno), es razonable no depender únicamente del arranque inicial.
Una segunda tarea programada, ejecutada cada 5-10 minutos, que compruebe `wsl -d
Debian -- uptime` y relance la distribución si falla, añade una capa de resiliencia
frente a fallos puntuales del primer arranque.
