如何删除计划任务

时间:2018-02-07 13:47:42

标签: c#

我使用下面的C#Code在Windows 2008 Server中创建了Schedule Task.It工作正常,但是当我从C#Code中删除任务时,它显示错误消息为"访问被拒绝。 (HRESULT的例外情况:0X80070005(E_ACCESSDENIED)"

请检查下面的代码,并告知如何做到这一点.. 创建任务: - (工作正常)

private void CreateTask(string StrTaskName,string  StrDate)
     {
         using (TaskService ts = new TaskService())
         {
             TaskDefinition td = ts.NewTask();
             td.RegistrationInfo.Description = "SMS Alert System";
             td.Principal.LogonType = TaskLogonType.InteractiveToken;

             TimeTrigger dt = (TimeTrigger)td.Triggers.Add(new   TimeTrigger());
             dt.StartBoundary = Convert.ToDateTime(StrDate);

             string doubleQuotedPath = string.Format(@"""{0}""",    StrTaskName);
             td.Actions.Add(new ExecAction(@"D:\Alert\SMSAlertSystem.exe", doubleQuotedPath, null));
             ts.RootFolder.RegisterTaskDefinition(StrTaskName, td);


         }
     }

删除任务: - (不工作)

using (TaskService ts = new TaskService())
{
    ts.RootFolder.DeleteTask(StrtMessage.Trim());
}

2 个答案:

答案 0 :(得分:1)

你可能对进程有错误的许可。

  • 拥有在目录中读/写的进程权限 %SystemRoot%\system32\Tasks
  • 如果没有工作,请尝试重新启动:
    • 任务计划程序服务
    • Windows

答案 1 :(得分:-1)

这有效:

using TaskService ts = new TaskService();
if (ts.GetTask(StrTaskName) != null)
{
    ts.RootFolder.DeleteTask(StrTaskName);
}

使用 StrTaskName 而不是 StrtMessage.Trim()