如何为非管理员用户安排任务?

How to schedule a task for non admin users?

我们目前正在使用 TaskService 来安排任务。我们使用默认文件夹:

TaskScheduler scheduler = new TaskScheduler();
scheduler.Connect();
ITaskFolder rootFolder = scheduler.GetFolder("");

结果是:

C:\Windows\System32\Tasks

这对管理员用户非常有效,但现在我正在尝试为非管理员用户安排任务。现在上面的代码抛出一个 UnauthorizedAccessException.

我试过指定用户特定的文件路径:

"\Users\some_user"  // FileNotFoundException:  The system cannot find the file specified
"C:\Users\some_user"  // FileNotFoundException:  The filename, directory name, or volume label syntax is incorrect

有什么想法吗?

我不确定 scheduler.GetFolder("") 是如何抛出一个 UnauthorizedAccessException,它现在似乎工作正常。

我最后做的是这样的:

    TaskScheduler scheduler = new TaskScheduler();
    scheduler.Connect();
    ITaskFolder rootFolder = scheduler.GetFolder(string.Empty);
    ITaskFolder userSpecificFolder = rootFolder.CreateFolder(scheduler.ConnectedUser);  // Will throw if folder already exists
    // Now can add tasks to userSpecificFolder