【问题标题】:Set the user accounts in Task Scheduler through C#通过 C# 在任务计划程序中设置用户帐户
【发布时间】:2016-11-08 19:35:10
【问题描述】:

我正在尝试使用我的 C# 程序在任务计划程序中设置以下选项。

1. In settings tab of Task scheduler, check the box "If the task fails, restart every 1 minute"
2. In General tab of Task scheduler, under security options, set it to "BigDataService" for "When running the task, use the following user account" and provide its password.

我当前的代码如下所示:

 using (TaskService ts = new TaskService())
 {
    TaskDefinition td = ts.NewTask();
    TimeTrigger trigger = new TimeTrigger();
    var startTime = TimeSpan.Parse(section1["ScheduledTime"]);
    trigger.StartBoundary = DateTime.Today + startTime;
    trigger.Repetition.Interval = TimeSpan.FromDays(1);
    trigger.StartBoundary = DateTime.Now;
    td.Principal.RunLevel = TaskRunLevel.Highest;
    trigger.Id = "Data";
    trigger.Repetition.Interval = TimeSpan.FromDays(1);
    td.Triggers.Add(trigger);
    td.Actions.Add(new ExecAction(@"DataUpload.exe", argument, null));
    var foldername = ts.GetFolder(@"\Bigdata");
    Console.WriteLine(foldername.Path);
    foldername.RegisterTaskDefinition(section1["JobName"], td);
}

New Cod(与 RegisterTaskDefinition 一起工作正常,但是当我添加 RepetitionInterval 行时,任务不会在 BigData 文件夹中创建。

using (TaskService ts = new TaskService())
 {
    TaskDefinition td = ts.NewTask();
    TimeTrigger trigger = new TimeTrigger();
    var startTime = TimeSpan.Parse(section1["ScheduledTime"]);
    trigger.StartBoundary = DateTime.Today + startTime;
    trigger.Repetition.Interval = TimeSpan.FromDays(1);
    trigger.StartBoundary = DateTime.Now;
    td.Principal.RunLevel = TaskRunLevel.Highest;
    trigger.Id = "Data";
    trigger.Repetition.Interval = TimeSpan.FromDays(1);
    td.Triggers.Add(trigger);
    td.Actions.Add(new ExecAction(@"DataUpload.exe", argument, null));
    var foldername = ts.GetFolder(@"\Bigdata");
    Console.WriteLine(foldername.Path);   
    foldername.RegisterTaskDefinition(section1["JobName"], td, TaskCreation.CreateOrUpdate,"Bigdataservice", "password");
}

【问题讨论】:

  • 你的问题是什么?代码不工作吗?
  • @xDaevax:这是我当前的代码。我不确定我应该为这两个设置添加什么到我当前的代码中。
  • @xDaevax:我浏览了这个链接。但不确定哪个是设置这两个设置的正确属性。

标签: c# taskscheduler


【解决方案1】:

将重启间隔设置为 1 分钟:

td.Settings.RestartInterval = TimeSpan.FromMinutes(1);

设置登录:

td.Principal.LogonType = TaskLogonType.Group;
// Pass the credentials when you register the task
foldername.RegisterTaskDefinition(section1["JobName"], td,
    TaskCreation.CreateOrUpdate, "DOMAIN\\USERNAME", "Pas$w0rD");

【讨论】:

  • RegisterTaskDefinition 工作正常。当我添加 RestartInterval 时,任务不会在相应的文件夹中创建。我在问题中添加了新代码。
  • 尝试从文件夹名称中删除斜线
猜你喜欢
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 2016-11-09
  • 2011-09-22
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多