Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-如何使用TaskSchedular类列出特定用户的计划任务_C#_.net_Windows - Fatal编程技术网

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

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) {

我想知道是否有人可以帮助我,我正在尝试使用TaskScheduler类列出本地计算机上特定用户(管理员)的计划任务(http://www.codeproject.com/KB/cs/tsnewlib.aspx)我有以下资料:

    // 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'的帐户的名称//这将为您提供创建的用户帐户的名称