La tarea programada no se ejecutará para el archivo .BAT

Si tiene un archivo .BAT y está tratando de que se ejecute automáticamente usando el Programador de Tareas de Windows, puede que se haya encontrado con el problema de que simplemente no se ejecuta a menos que usted ejecute manualmente la tarea.

Creé un archivo por lotes que borra todo dentro de una carpeta temporal cada vez que se inicia el ordenador. Creé una tarea básica en el Programador de Tareas y esperaba lo mejor. Desafortunadamente, no pasó nada cuando mi ordenador se puso en marcha. Después de mucho ensayo y error, descubrí cómo hacer que el guión se ejecute.

En este artículo, voy a guiarte a través de la configuración y los permisos que necesitas ajustar para que tu archivo por lotes funcione sin intervención manual.

Paso 1: Comprobar los permisos de archivo/carpeta

El primer paso para solucionar este problema es asegurarse de que la cuenta que está usando para ejecutar el script en el Programador de Tareas tiene permisos de Control Completo en la carpeta que contiene el script, el propio script y cualquier carpeta/archivo que el script toque cuando se ejecute.

Por ejemplo, he creado el siguiente guión de lote a continuación:

set folder="C:test"
cd /d %folder%
para /F "delims=" %%i in (dir /b) do (rmdir "%%i" /s/q || del "%%i" /s/q)

Guardé el archivo .BAT en mi carpeta de Documentos. El camino es C:N-usuarioDocumentos. Fui a C:N-Nombre de usuario, hice clic con el botón derecho en la carpeta Documents, y hice clic en Properties. Luego hice clic en la pestaña Security.

Como pueden ver, la cuenta de usuario Aseem ha sido explícitamente añadida y se le ha dado el permiso de Full Control. Ahora tienes que hacer lo mismo para la carpeta que contiene el guión y para el propio guión. No asumas que si das permisos a la carpeta que contiene el guión, estás listo para ir, porque no lo estás. Por último, establecer los permisos de los archivos y carpetas con los que el guión interactuará.

En mi caso, tuve que ir a C:test, hacer clic con el botón derecho del ratón en esa carpeta y añadir mi cuenta de usuario allí con permisos de control total. Es un poco molesto que tengas que hacer esto, pero es la única manera de conseguir que el guión se ejecute.

Nota: La cuenta que se está usando para ejecutar el guión tiene que ser parte del grupo local Administradores en el ordenador. En mi caso, la cuenta de Aseem es una cuenta de administrador y por lo tanto parte del grupo de Administradores locales.

Paso 2: Comprobar la configuración del programador de tareas

Ahora vamos al Programador de Tareas y cambiamos los ajustes apropiados allí. Abra el Programador de Tareas y encuentre su tarea en la sección Tareas activas . Deberían estar listados en orden alfabético.

Doble clic en él y abrirá la tarea por sí mismo en la misma ventana. Para editar la tarea, tendrá que hacer clic con el botón derecho del ratón y elegir Propiedades.

Hay varias pestañas y un par de cosas que deben ser revisadas y cambiadas aquí. En primer lugar, en la pestaña General, hay que comprobar la cuenta de usuario que se está utilizando para ejecutar la tarea. En mi caso, es la cuenta Aseem, a la que había dado permisos antes en el sistema de archivos y que forma parte del grupo de Administradores en el ordenador.

Siguiente, tiene que elegir la opción Run whether user is logged on or not y elegir Windows Vista, Windows Server 2008 en la caja Configure for.

En la pestaña Actions, tiene que seleccionar el guión, haga clic en Edit y luego añada la ruta de la carpeta que contiene el guión en la casilla e Start in (opcional). Esto puede parecer innecesario, pero no lo es. En mi caso, pongo en la caja los documentos de los usuarios.

Ahora haga clic en OK para guardar la configuración. Al hacerlo, puede aparecer un diálogo en el que hay que introducir la contraseña de la cuenta de usuario que ejecutará la tarea. Esto nos lleva a otro requisito. No puedes usar una cuenta que no tenga una contraseña. La cuenta de usuario debe tener una contraseña para que la tarea se ejecute.

Por último, deberías ejecutar la tarea manualmente una vez en el Programador de Tareas para asegurarte de que funciona. Si funciona bien manualmente después de haber cambiado todos los ajustes, entonces debería funcionar cuando se supone que se dispare. En mi caso, se suponía que iba a suceder en el arranque y después de que hice los cambios, todo funcionó bien.

Avisa que si tu guión está accediendo a diferentes ordenadores en un dominio cuando se ejecuta, deberías intentar usar la cuenta del administrador del dominio para ejecutar la tarea. Esto asegurará que la cuenta tenga suficientes permisos para acceder a los ordenadores remotos.

Otro elemento a tener en cuenta es si tu guión accede a los recursos de una red compartida. Si tu guión está usando letras para acceder a la red, puede que no se ejecute. Por ejemplo, en lugar de usar F:data, deberías usar NmachinenameNcompartir_nombre_de_datosNen el guión. Si todavía no puedes hacer que tu guión funcione, publica un comentario aquí y trataré de ayudarte. ¡Disfruta!

Fundador del Help Desk Geek y editor gerente. Empezó a escribir en el blog en 2007 y dejó su trabajo en 2010 para escribir a tiempo completo. Tiene más de 15 años de experiencia en la industria de la tecnología de la información y posee varias certificaciones técnicas. Lea la biografía completa de Aseem.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *