C # - Как вывести список запланированных задач для конкретного пользователя с помощью класса TaskSchedular - PullRequest
3 голосов
/ 25 июня 2011

Мне было интересно, может ли кто-нибудь помочь мне, я пытаюсь перечислить запланированные задачи от определенного пользователя (администратора) на локальном компьютере с помощью класса 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 при выполнении)

Ответы [ 3 ]

2 голосов
/ 29 сентября 2012

Это работает только для задач, созданных и настроенных для Windows 2003, XP, Windows 2000.

Если вы выбираете для Windows 7, Windows 2008 или Windows Vista, Windows 2008, задания не сохраняются сРасширение .job в каталоге C:\Windows\Tasks.Они хранятся в каталоге C:\Windows\System32\Tasks без расширения файла и в формате XML.

DLL не удается получить файлы, настроенные для Windows 7, Windows Vista, Windows 2008.

2 голосов
/ 25 июня 2011

Кажется, что нет способа указать имя пользователя при выполнении запроса (только имя компьютера), но вы можете отфильтровать результаты самостоятельно, используя свойство Creator:

foreach (string taskName in st.GetTaskNames()) {
    using (Task task = st.OpenTask(taskName)) {
        if (task.Creator == "username") {
            listBox1.Items.Add(taskName);
        }
    }
}
0 голосов
/ 25 июня 2011

Я сомневаюсь, что вы можете сделать это. Задачи Windows будут общими для всех пользователей, пожалуйста, исправьте меня, если я ошибаюсь. но вы можете получить созданного пользователя задачи perticuler, или же вы сможете получить исполняющего пользователя конкретного компьютера.

но это будет отличаться, когда дело доходит до разных ОС. такие как windows 7 windows xp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...