C#任务调度修改

C# task schedule modify

我正在尝试使用 C# 应用程序

修改在 Windows 任务计划程序中手动创建的计划任务

使用以下代码:

rootFolder.RegisterTaskDefinition(taskEdit.Name, 
            taskDefinition, 6, null, null, _TASK_LOGON_TYPE.TASK_LOGON_NONE, null);

当我在主要任务计划程序文件夹中执行此操作时,我的代码运行良好。 但是当我尝试修改子文件夹中的任务时,出现错误

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

如果尝试使用 usernamepassword 而不是 null 如下:

rootFolder.RegisterTaskDefinition(taskEdit.Name, taskDefinition, 6, "username", "pwd", 
                           _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD, null);

我收到以下错误:

(48,4):UserId:

有什么想法吗?非常感谢!

我终于找到了解决方案,至少在开发时间...我必须 运行 Visual Studio 作为管理员。这样我就可以修改任何文件夹中的任务。

您的问题的一个解决方案是您可以使用 Task Scheduler Managed Wrapper,在 https://taskscheduler.codeplex.com/ 下载。

这是一个非常强大的包装器,可以与 Windows Task Scheduler 一起使用,也可以处理 "Access is denied" 问题。