Principales respuestas
Crear tarea en C#

Pregunta
-
Hola Desarrolladores, tengo una duda resulta que estoy haciendo una consola que me crea una tarea programada en windows, al colocarle las credenciales de windows me crea la tarea sin problemas, el problema es que necesito crear esa tarea programada sin las credenciales, algúna idea de cómo hacerlo?
acá el código:
using (ScheduledTasks Tareas = new ScheduledTasks()) { TaskScheduler.Task tarea = Tareas.CreateTask("ReprogramandoPO"); Tareas.DeleteTask("ReprogramandoPO"); tarea.ApplicationName = @"C:\Users\"+userName+"\\Programa.exe"; tarea.Comment = "Tarea programada"; //Al quitarle el SetAccountInformation no me crea la tarea en el equipo tarea.SetAccountInformation("userName", "Password"); tarea.MaxRunTime = new TimeSpan(0, 15, 0); tarea.Creator = "User"; tarea.Priority = System.Diagnostics.ProcessPriorityClass.Normal; tarea.Triggers.Add(new RunOnceTrigger(task.AddHours(1))); tarea.Save(); }
Joel Baez
Respuestas
-
Prueba a forzar la sobrecarga. En lugar de null ponle (string)null. o declara un string, métele null, y pásale el string a la función. Nótese que esto es C# puro y duro, no tiene nada que ver con el hecho de que estés creando un Task, es algo que te podría ocurrir con cualquier otra llamada a cualquier otra función que admita varias sobrecargas.
- Marcado como respuesta Pablo RubioModerator miércoles, 28 de noviembre de 2018 18:03
Todas las respuestas
-
Una opcion es poner tarea.SetAccountInformation("", null). Esto hace que la tarea se ejecute como "SYSTEM", pero requiere que el usuario que ejecuta la aplicacion de consola sea Administrador.
- Propuesto como respuesta Pablo RubioModerator jueves, 22 de noviembre de 2018 17:45
- Votado como útil Joelbaezs jueves, 22 de noviembre de 2018 18:45
- Propuesto como respuesta Pablo RubioModerator jueves, 22 de noviembre de 2018 21:29
-
-
-
hola
Analicemos la documentacion de la libreria
A New Task Scheduler Class Library for .NET
Tienes justamente la pregunta que hace referencia a como asignar las credenciales.
Must I have an account and password for a task?
A scheduled task must be given a specific account in which to run or it may be set to run in the local system account. The local system account is a pseudo-account used by many of the standard services. It has broad access to the local system, but it cannot always interact with the user directly and it has no network privileges. To set a task to run in the local system account, the client must be already running in that account or in an administrator account.
If the task will need to interact with the user, you need to set a specific user account and the task will only interact with that user. If your client runs in different accounts depending on who is using it, you can have it schedule tasks without actually knowing the user's password. To this, you set a specific task flag, RunOnlyIfLoggedOn and give the user name and a null password.
El indicar o no el usuario y password tiene que ver si la aplicacion que vas a ejecutar tendra interaccion con el usuaurio.
Podrias indicar la propiedad
RunOnlyIfLoggedOn
entonces definir el nombre de un usuario pero con el password en nullsaludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Prueba a forzar la sobrecarga. En lugar de null ponle (string)null. o declara un string, métele null, y pásale el string a la función. Nótese que esto es C# puro y duro, no tiene nada que ver con el hecho de que estés creando un Task, es algo que te podría ocurrir con cualquier otra llamada a cualquier otra función que admita varias sobrecargas.
- Marcado como respuesta Pablo RubioModerator miércoles, 28 de noviembre de 2018 18:03