使用C#访问Windows计划任务

时间:2009-06-14 09:53:46

标签: c# .net scheduled-tasks credentials

如何使用C#.NET更改计划任务使用的凭据?

4 个答案:

答案 0 :(得分:4)

有人在codeproject.com上编写了一个任务调度程序类库,它可能就是你的...

<强>:)

答案 1 :(得分:4)

您可以使用'SCHTASKS'命令,而不是使用代码,使用带有所需参数的System.Diagnostic.Process.Start方法运行它。这很简单,也不需要太多努力。

答案 2 :(得分:3)

您必须使用新的用户名和密码调用RegisterTaskDefintion以获取任务的定义,才能更改密码。

代码片段

// 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);

答案的原始来源: http://taskscheduler.codeplex.com/discussions/215362

答案 3 :(得分:1)

使用TaskSheduler查看this library。它是用VB编写的,但我很容易引用它并从C#中调用它。