如何解决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,则作业不会以.job
扩展名存储在C:\\Windows\\Tasks
目录中。它们以XML格式存储在“ 5”目录中,没有文件扩展名。
DLL无法检索为Windows 7,Windows Vista,Windows 2008配置的文件。
, 我怀疑你能做到这一点。 Windows任务对于所有用户都是通用的,如果我错了,请纠正我。但是您可以获取perticuler任务或els的创建用户,也可以获取Particuler计算机的执行用户。
但这在不同的OS上会有所不同。例如Windows 7 Windows XP。