How do I change the credentials used by a scheduled task using C#.NET?
Someone has written a task scheduler class library on codeproject.com, it might be what your after...
:)
Instead of using code, you can do it using 'SCHTASKS' command, run it using System.Diagnostic.Process.Start method with the parameters required. It's easy and not much effort required.
You must call RegisterTaskDefintion for the task's definition with the new username and password to change just the password.
Code fragment
// Add COM-Reference to "TaskScheduler 1.1 Type Library" to the project
using TaskScheduler;
// code in function X
TaskSchedulerClass TaskClass = new TaskSchedulerClass();
TaskClass.Connect();
// access one task (or search for it or enumerate over all tasks)
IRegisteredTask lTask = null;
lTask = TaskClass.GetFolder("\\").GetTasks(0)[0];
// provide domain\\username and password (ask user for it, use encryption)
string lUsername = "TestDomain\\TestUsername"; // TestDomain can be the hostname for a local user
string lPassword = "xyzPassword";
RegisterTaskDefinition(lTask.Path, lTask.Definition, (int)_TASK_CREATION.TASK_UPDATE, lUsername, lPassword, lTask.Definition.Principal.LogonType, Type.Missing);
Original source for answer: http://taskscheduler.codeplex.com/discussions/215362
Check out this library for working with TaskSheduler. It's written in VB, but I referenced it easily and called it from C#.
来源:https://stackoverflow.com/questions/992549/accessing-windows-scheduled-task-using-c-sharp