我使用下面的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());
}
答案 0 :(得分:1)
你可能对进程有错误的许可。
%SystemRoot%\system32\Tasks
?答案 1 :(得分:-1)
这有效:
using TaskService ts = new TaskService();
if (ts.GetTask(StrTaskName) != null)
{
ts.RootFolder.DeleteTask(StrTaskName);
}
使用 StrTaskName 而不是 StrtMessage.Trim()