Ich habe eine einfache Windows Forms-Anwendung erstellt, die die Namen und Ordner aller geplanten Aufgaben auf dem Computer anzeigt. Ich verwende den Taskplaner-gesteuerten Wrapper (Microsoft.Win32.TaskScheduler) und unten ist der Code, der die Namen abruft und sie anzeigt. Es scheint jedoch, als ob AllTasks mir nicht alle Aufgaben gibt. Es gibt einige, die nicht angezeigt werden. Was könnte in diesem Fall dazu führen, dass eine Aufgabe ausgeblendet wird?Taskplaner verwalteter Wrapper zeigt nicht alle Aufgaben an
Antwort
Wie @nvoigt oben gezeigt, laufen die nicht sichtbaren Aufgaben als ein anderer Benutzer als der, der den Code ausführt.
Wenn Ihre App als Administrator ausgeführt wird, können Sie sie möglicherweise sehen. –
Ich hatte gerade das gleiche Problem, aber .FindAllTasks (neue RegEx (. *)) Fand sie auch nicht (wurde in LINQPad getestet). Ich musste LINQPad als Administrator ausführen, bevor .FindAllTasks (...) die Aufgaben zurückgab, die ich suchte. – Lee
Die Eigenschaft AllTasks
des Objekts Microsoft.Win32.TaskScheduler.TaskService
kehrt nur die Windows-Scheduler Aufgaben, bei denen die .Definition.Principal.UserId
Aufgabe ist entweder ein Benutzer das Programm Oder-System Oder NETWORK SERVICE Oder LOCAL SERVICE Oder leer läuft. Übrigens spielt es keine Rolle, welchen Wert die Eigenschaft Definition.RegistrationInfo.Author
hat.
Wenn Sie alle Aufgaben für alle Nutzer erhalten müssen, können Sie es durch den folgenden Code ausführen:
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);
}
Nun, welche Aufgaben * sind * versteckt? Vielleicht die eines anderen Benutzers? – nvoigt
@nvoigt Sie haben Recht. Das Problem scheint zu sein, dass die Aufgaben von einem anderen Benutzer ausgeführt werden als dem, der den Code ausführt. Vielen Dank! – jahrentorp