我想知道是否有人可以帮助我,我正在尝试使用TaskScheduler类(http://www.codeproject.com/KB/cs/tsnewlib)列出本地计算机上特定用户(Admin)的计划任务.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中的任务)
答案 0 :(得分:2)
在执行查询时似乎没有办法指定用户名(仅限计算机名称),但您可以使用Creator
属性自行过滤结果:
foreach (string taskName in st.GetTaskNames()) {
using (Task task = st.OpenTask(taskName)) {
if (task.Creator == "username") {
listBox1.Items.Add(taskName);
}
}
}
答案 1 :(得分:2)
这仅适用于为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 :(得分:0)
但是当涉及到不同的操作系统时,这会有所不同。比如windows 7 windows xp。