C#-如何使用TaskSchedular类列出特定用户的计划任务
我想知道是否有人可以帮助我,我正在尝试使用TaskScheduler类列出本地计算机上特定用户(管理员)的计划任务(http://www.codeproject.com/KB/cs/tsnewlib.aspx)我有以下资料:C#-如何使用TaskSchedular类列出特定用户的计划任务,c#,.net,windows,C#,.net,Windows,我想知道是否有人可以帮助我,我正在尝试使用TaskScheduler类列出本地计算机上特定用户(管理员)的计划任务(http://www.codeproject.com/KB/cs/tsnewlib.aspx)我有以下资料: // richTextBox6.Text = string.Join(Environment.NewLine, taskNames); private void button22_Click(object sender, EventArgs e) {
// 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中的任务)执行查询时似乎没有指定用户名的方法(只有机器名),但您可以使用
创建者
属性自己过滤结果:
foreach (string taskName in st.GetTaskNames()) {
using (Task task = st.OpenTask(taskName)) {
if (task.Creator == "username") {
listBox1.Items.Add(taskName);
}
}
}
我怀疑你能做到这一点。windows任务对于所有用户都是通用的。如果我错了,请纠正我。但是,您可以获得Perticular任务的创建用户,也可以获得Specificuler计算机的执行用户
但当涉及到不同的操作系统时,这将是不同的。例如Windows7和WindowsXP 这仅适用于为Windows 2003、XP和Windows 2000创建和配置的任务 如果选择Windows 7、Windows 2008或Windows Vista、Windows 2008,则作业不会与
C:\Windows\Tasks
目录中的.job
扩展名一起存储。它们以XML格式存储在C:\Windows\System32\Tasks
目录中,没有文件扩展名
DLL无法检索为Windows 7、Windows Vista、Windows 2008配置的任务。我认为该类已过时,因为它只列出了Windows 7中C:\Windows\tasks中的任务,您知道Windows 7中存储用户任务的位置吗?@Mike,它们位于
%SystemRoot%\System32\tasks
中,根据.Task t=st.OpenTask(“taskmame”)'t.AccountName'//这将为您提供任务将在其下运行't.Creator'的帐户的名称//这将为您提供创建的用户帐户的名称