如何为非管理员用户安排任务?
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
我们目前正在使用 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