Situación
Tengo un script por lotes que prepara algunos archivos, ejecuta un programa ( .exe
) y luego elimina dichos archivos.
Esta tarea debería ejecutarse cada hora, así que estoy tratando de configurar esto usando Tareas programadas. El problema es que el programa mencionado anteriormente no se ejecuta correctamente cuando se invoca desde la tarea (ni a través del .bat
script ni cuando se llama .exe
directamente), pero no recibo ningún mensaje de advertencia o error en los registros.
Preparar
La tarea está configurada para ejecutarse como una cuenta de servicio de Windows que tiene todos los privilegios configurados correctamente. Cuando uso esta cuenta para iniciar sesión a través de RDP, puedo ejecutar .bat
y .exe
directamente sin problemas, pero aún así la tarea parece no hacer nada. Esto se observa fácilmente porque el programa siempre modifica un archivo y la modificación en la marca de tiempo no cambia a través de la tarea.
En los registros de tareas programadas, recibo los mensajes de información para la tarea que inicia un proceso, sale, etc. Sin embargo, el "código de resultado" es 111
(intenté buscarlo en Google sin suerte, la única asociación que obtengo es "el nombre del archivo es demasiado largo" ", que es completamente irrelevante AFAIK). En los registros de la aplicación, no obtengo absolutamente nada.
Lo que sospecho es el problema.
El programa es una vieja monstruosidad que genera algún tipo de pantalla de bienvenida (en realidad es una ventana normal), aunque la GUI no es necesaria porque no requiere interacción y se cierra después de las operaciones. La ventana aparece durante unos 2 segundos.
Sospecho que este requisito para una GUI tiene algo que ver con la falla de la tarea, pero no estoy seguro. Cuando inicio sesión con el usuario con el que se ejecuta la tarea (a través de RDP), no aparece ninguna ventana cuando inicio la tarea programada.
Editar sobre la GUI
He creado un ejecutable C # muy pequeño que inicia el programa sin la ventana principal (usando ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
). Incluso de esta manera, la tarea programada aún no puede iniciar el programa correctamente, pero el código de retorno es ahora 0
.
Actualizar
Cuando configuro la tarea para que diga "ejecutar si el usuario inició sesión o no", y la run with highest privileges
opción no está marcada , el valor de error es 2147943859
.
¿Qué puedo hacer para solucionar problemas?
SO = Windows Server 2008 R2 SP1
Si necesita más información, hágamelo saber en los comentarios.
.exe
"programa" con parámetros desde un script, la entrada debe proporcionarse adecuadamente como argumento.