C# – 如何使用TaskSchedular类列出特定用户的计划任务

我想知道是否有人可以帮助我,我想使用TaskScheduler类(http://www.codeproject.com/KB/cs/tsnewlib.aspx)从本地计算机上的特定用户(Admin)列出计划任务我有以下几点:

// richTextBox6.Text = string.Join(Environment.NewLine, taskNames); private void button22_Click(object sender, EventArgs e) { listBox1.Items.Clear(); string machineName = (@"\\" + System.Environment.MachineName); ScheduledTasks st = new ScheduledTasks(machineName); // Get an array of all the task names string[] taskNames = st.GetTaskNames(); foreach (var taskName in taskNames) { listBox1.Items.Add(taskName); } st.Dispose(); } 

“@”\“”指定本地机器是目标,但可以添加一个用户吗? (因为它只在执行时列出C:\ Windows \ Tasks中的任务)

在执行查询时,似乎没有办法指定一个用户名(只有一个机器名),但是您可以使用Creator属性自己过滤结果:

 foreach (string taskName in st.GetTaskNames()) { using (Task task = st.OpenTask(taskName)) { if (task.Creator == "username") { listBox1.Items.Add(taskName); } } } 

这仅适用于为Windows 2003,XP,Windows 2000创建和配置的任务。

如果您选择Windows 7,Windows 2008或Windows Vista,Windows 2008,作业不会以C:\Windows\Tasks目录中的.job扩展名存储。 它们被存储在C:\Windows\System32\Tasks目录中,没有文件扩展名和XML格式。

该DLL无法检索为Windows 7,Windows Vista,Windows 2008配置的那些DLL。

我怀疑你能做到这一点。 Windows任务将是所有用户通用的请纠正我,如果我错了。 但是您可以获取创建的用户任务,或者您将能够获得特定计算机的执行用户。

但是当涉及到不同的操作系统时,这会有所不同。 如Windows 7的Windows XP。