2009-01-25 33 views
14

Tengo grandes problemas para ejecutar una tarea programada. La tarea se crea bien utilizando la interfaz ITaskScheduler proporcionada por Microsoft. La tarea está configurada para ejecutarse solo si un usuario está conectado.Creación programática de una tarea programada en Windows - 0x8004130f Error

El problema es que la tarea no se ejecuta y el archivo de registro SchedLgU.txt cita la razón de ser:

"The attempt to retrieve account information for the specified task failed; therefore, the task did not run. Either an error occurred, or no account information existed for the task. 

The specific error is: 

0x8004130f: No account information could be found in the Task Scheduler security database for the task indicated." 

Sé que es un hecho de que una tarea programada se puede crear sin información de la cuenta, porque la tarea programada de Google Updater hace esto y funciona bien.

Todo lo que puedo deducir de las búsquedas web es que Windows tiene una "base de datos de tareas programadas" que necesita tener información de credenciales para cada tarea para que pueda ejecutarse.

¿Alguien sabe cómo modificar esta base de datos de credenciales o de alguna otra manera para que mi tarea se ejecute?

+0

Encontré a alguien con exactamente el mismo problema que también ha notado que otra aplicación puede hacer esto sin una contraseña. Sin embargo, todavía no hay respuestas: http://www.codeguru.com/forum/showthread.php?t=355665 –

Respuesta

2

Hasta donde yo sé, y la documentación respalda esto, se requiere una cuenta para una tarea programada. Si configura la tarea para que se ejecute solo cuando un usuario está conectado que solo significa que no es necesaria una contraseña, aún necesita una cuenta. Esta cuenta se puede establecer en un grupo para que la tarea se ejecute cuando se active siempre y cuando cualquier persona del grupo inicie sesión. Por ejemplo, puede configurar la cuenta en 'Usuarios' para que la tarea se pueda ejecutar cuando alguien inicie sesión.

+0

Lamentablemente, eso no funciona. Al establecer "Usuarios" como nombre de usuario con una contraseña en blanco, la tarea obtiene un campo de nombre de usuario de "BUILT-IN \ Users". Sin embargo, la tarea no puede comenzar con un error que indica un nombre de usuario o contraseña no válidos. –

+0

Usar una cuenta de grupo funciona bien en Vista y Windows 2008, pero es posible que no se haya agregado a partir de XP o 2003, no recuerdo cuándo se agregó. El requisito de tener una cuenta aún es válido. –

+1

Disculpe, esta fue una de las numerosas incorporaciones incluidas con la gran actualización de Task Scheduler 2.0 que viene con Vista. Si está usando XP o 2003 no tiene suerte. –

23

El GoogleUpdateTaskMachine tarea usa el "NT AUTHORITY \ SYSTEM" para ejecutar la tarea. Puede hacerlo utilizando el comando schtasks y el modificador/ru con "Sistema" o "" como parámetro. De esta manera:

schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly /d 15 /ru "System" 

No se solicita una contraseña.

Consulte technet para obtener más información.

+3

¿Por qué se votó en esta votación? Lo voté de nuevo. – Greg

+0

¡gran parte! ¡Lo aprecio! –

+0

el usuario del "sistema" no tiene acceso a la red, ¿cómo ejecutaríamos el programa con la red? Supongamos que el programa depende de la red para ejecutarse? –

Cuestiones relacionadas