Task Scheduler Managed Wrapper does not show all tasks

不羁的心 提交于 2020-06-14 05:53:09

问题


I have created a simple Windows Forms Application that displays the names and folders of all scheduled tasks on the machine. I'm using the Task Scheduler Managed Wrapper (Microsoft.Win32.TaskScheduler) and below is the code that gets the names and display them. However it seems as if AllTasks does not actually give me all tasks. There are some that are not displayed. What could cause a task to be hidden in this case?

using (TaskService tsksrvs = new TaskService())
{
    foreach (Task tsk in tsksrvs.AllTasks)
    {
        textJobsList.Text += tsk.Name + " (" + tsk.Folder + ")" + Environment.NewLine;
    }
}

回答1:


The property AllTasks of the object Microsoft.Win32.TaskScheduler.TaskService returns only the Windows Scheduler tasks where the task's .Definition.Principal.UserId is either a user running the program Or System Or NETWORK SERVICE Or LOCAL SERVICE Or empty. By the way, it does not matter what value the property Definition.RegistrationInfo.Author has.

If you need to get ALL the task for ALL the users, you can accomplish it by the following code:

using Microsoft.Win32.TaskScheduler;
using System.Diagnostics;
using System.Text.RegularExpressions;
......................................
                Task[] allTasks = TaskService.Instance.FindAllTasks(new Regex(".*")); // this will list ALL tasks for ALL users
                foreach (Task tsk in allTasks)
                {
                    //Do whatever you need here, for example:
                    Debug.WriteLine("TaskName:{0}; Path:{1}; Author:{2}; Principal: {3}; ", tsk.Name, tsk.Path, tsk.Definition.RegistrationInfo.Author, tsk.Definition.Principal.UserId);
                }



回答2:


As @nvoigt pointed out above the tasks not visible are running as a different user than the one executing the code.



来源:https://stackoverflow.com/questions/37137554/task-scheduler-managed-wrapper-does-not-show-all-tasks

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!