【问题标题】:How to programatically set Task Scheduler security options?如何以编程方式设置任务计划程序安全选项?
【发布时间】:2016-01-15 04:20:27
【问题描述】:

我正在尝试在 Windows 任务计划程序的“安全选项”部分设置“无论用户是否登录都运行”选项。

我正在使用Task Scheduler Managed Wrapper

我试过这个:

using (TaskService taskService = new TaskService())
{
    try
    {
        TaskDefinition taskDefinition = taskService.NewTask();
        ...some triggers...
        taskDefinition.Actions.Add(new ExecAction( "iexplore.exe", vmsTask.Args, "C:\\"));
        taskDefinition.Principal.LogonType = TaskLogonType.None;
        taskService.RootFolder.RegisterTaskDefinition("Task Name", taskDefinition);
    }
    catch (Exception e) 
    { }
}

这行抛出异常:taskDefinition.Principal.LogonType = TaskLogonType.None;

例外是:

值不在预期范围内。

实现这一目标的正确方法是什么?

【问题讨论】:

    标签: c# scheduled-tasks scheduler


    【解决方案1】:

    我这样做了,它奏效了:

    using (var tasksrvc = GetTaskService(hostName, userName, password))
    {
          tasksrvc.AddTask(
                   taskName,
                   QuickTriggerType.Daily,
                   taskFolderPath,
                   null,
                   "UserName",
                   "Password",
                   TaskLogonType.Password);                    
    }
    

    【讨论】:

      【解决方案2】:

      嗯,TaskLogonType.None 的意思是

      未指定登录方式。

      显然,这不是你想要的。您可能想要PasswordServiceAccount(“仅在用户登录时运行”是~InteractiveToken)。

      【讨论】:

        猜你喜欢
        • 2011-07-22
        • 2019-02-18
        • 1970-01-01
        • 2019-10-16
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2020-05-15
        • 1970-01-01
        相关资源
        最近更新 更多