Recomendado, 2024

La Elección Del Editor

La tarea programada no se corrige para el archivo .BAT

Si tiene un archivo .BAT y está intentando que se ejecute automáticamente con el Programador de tareas en Windows, es posible que haya un problema en el que simplemente no se ejecuta a menos que ejecute la tarea manualmente.

Creé un archivo por lotes que elimina todo lo que está dentro de una carpeta temporal cada vez que la computadora se inicia. Creé una tarea básica en el Programador de tareas y esperaba lo mejor. Desafortunadamente, nada sucedió cuando mi computadora arrancó. Después de muchas pruebas y errores, descubrí cómo ejecutar el script.

En este artículo, lo guiaré a través de la configuración y los permisos que necesita ajustar para que su archivo por lotes se ejecute sin intervención manual.

Paso 1: Revisar los permisos de archivo / carpeta

El primer paso para solucionar este problema es asegurarse de que la cuenta que está utilizando para ejecutar la secuencia de comandos en el Programador de tareas tenga permisos de Control total en la carpeta que contiene la secuencia de comandos, la secuencia de comandos en sí misma, y ​​cualquier carpeta / archivo que la secuencia de comandos toque cuando se ejecuta.

Por ejemplo, creé el siguiente script por lotes a continuación:

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

Guardé el archivo .BAT en mi carpeta Documentos. La ruta es C: \ Usuarios \ nombre de usuario \ Documentos . Fui a C: \ Users \ nombre de usuario, hice clic derecho en la carpeta Documentos y hice clic en Propiedades . Luego hice clic en la pestaña de Seguridad .

Como puede ver, la cuenta de usuario Aseem se ha agregado explícitamente y se le ha otorgado el permiso Control total . Ahora tiene que hacer lo mismo para la carpeta que contiene el script y para el script en sí. No asuma simplemente que si otorga permisos a la carpeta que contiene el script, estará listo, porque no lo está. Por último, establezca permisos en cualquier archivo y carpeta con el que el script interactúe.

En mi caso, tuve que ir a C: \ test, hacer clic derecho en esa carpeta y agregar mi cuenta de usuario allí con permisos de Control total. Es un poco molesto que tengas que hacer esto, pero es la única forma de ejecutar el script.

Nota : La cuenta que se está utilizando para ejecutar el script debe formar parte del grupo de administradores locales en la computadora. En mi caso, la cuenta de Aseem es una cuenta de administrador y, por lo tanto, parte del grupo de administradores locales.

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

Ahora vamos al Programador de tareas y cambiemos las configuraciones apropiadas allí. Abra el Programador de tareas y busque su tarea en la sección Tareas activas . Deben ser enumerados en orden alfabético.

Haga doble clic en él y se abrirá la tarea en la misma ventana. Para editar la tarea, deberás hacer clic derecho en ella y elegir Propiedades .

Hay varias pestañas y hay que revisar y cambiar algunas cosas aquí. En primer lugar, en la pestaña General, debe verificar la cuenta de usuario que se está utilizando para ejecutar la tarea. En mi caso, es la cuenta de Aseem, a la que había dado permiso anteriormente en el sistema de archivos y que forma parte del grupo de administradores en la computadora.

A continuación, debe elegir la opción Ejecutar si el usuario ha iniciado sesión o no y elegir Windows Vista, Windows Server 2008 en el cuadro Configurar para .

En la pestaña Acciones, debe seleccionar la secuencia de comandos, hacer clic en Editar y luego agregar la ruta a la carpeta que contiene la secuencia de comandos en el cuadro Iniciar en (opcional) . Esto puede parecer innecesario, pero no lo es. En mi caso, puse en C: \ Users \ Aseem \ Documents \ en el cuadro.

Ahora haga clic en Aceptar para guardar la configuración. Al hacer esto, puede aparecer un cuadro de diálogo donde debe ingresar la contraseña de la cuenta de usuario que ejecutará la tarea. Esto trae 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, debe ejecutar la tarea manualmente una vez en el Programador de tareas para asegurarse de que se ejecuta. Si se ejecuta correctamente manualmente después de cambiar todas las configuraciones, debe ejecutarse cuando se supone que se debe activar. En mi caso, se suponía que iba a suceder en el inicio y después de que hice los cambios, todo funcionó bien.

Tenga en cuenta que si su script está accediendo a diferentes computadoras en un dominio cuando se ejecuta, debe intentar usar la cuenta de administrador de dominio para ejecutar la tarea. Esto asegurará que la cuenta tenga suficientes permisos para acceder a las computadoras remotas.

Otro elemento a tener en cuenta es si su script accede a los recursos en un recurso compartido de red. Si su script está usando letras para acceder a la red, es posible que no se ejecute. Por ejemplo, en lugar de usar F: \ data \, debe usar \\ machinename \ share_name \ data \ en el script. Si aún no puedes ejecutar tu script, publica un comentario aquí e intentaré ayudarte. ¡Disfrutar!

Top