简体   繁体   English

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

[英]How to schedule a task for non admin users?

We are currently using TaskService to schedule a task. 我们目前正在使用TaskService安排任务。 We use the default folder: 我们使用默认文件夹:

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

which turns out to be: 原来是:

C:\\Windows\\System32\\Tasks

This works great for admin users, but now I'm trying to schedule a task for non-admin users. 这对于管理员用户非常有用,但是现在我正尝试为非管理员用户安排任务。 Now the above code throws a UnauthorizedAccessException . 现在,上面的代码将引发UnauthorizedAccessException

I've tried specifying a user specific file paths: 我尝试指定用户特定的文件路径:

"\\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

Any ideas? 有任何想法吗?

I'm not sure how scheduler.GetFolder("") was throwing an UnauthorizedAccessException , it seems to work fine now. 我不确定scheduler.GetFolder("")是如何抛出UnauthorizedAccessException ,现在看来工作正常。

What I ended up doing was something like: 我最终要做的是这样的:

    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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM