使用C#访问Windows计划任务

发布于 2024-07-24 01:01:02 字数 31 浏览 7 评论 0原文

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

How do I change the credentials used by a scheduled task using C#.NET?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

就是爱搞怪 2024-07-31 01:01:02

您可以使用“SCHTASKS”命令来代替使用代码,并使用 System.Diagnostic.Process.Start 方法和所需的参数运行它。 这很容易,不需要太多努力。

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.

静赏你的温柔 2024-07-31 01:01:02

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

:)

Someone has written a task scheduler class library on codeproject.com, it might be what your after...

:)

过潦 2024-07-31 01:01:02

您必须使用新用户名和密码调用任务定义的 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

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

泅渡 2024-07-31 01:01:02

查看此库用于与 TaskScheduler 一起使用。 它是用 VB 编写的,但我很容易引用它并从 C# 调用它。

Check out this library for working with TaskSheduler. It's written in VB, but I referenced it easily and called it from C#.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文