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。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...