读取远程服务器上的任务历史记录

时间:2014-03-04 14:15:05

标签: c# windows-server-2008 scheduled-tasks

我想访问远程服务器上的任务历史记录。我尝试了这个library并且卡在了我访问历史记录的位置。目前只打印预定的任务,但我也想打印他们的历史记录。有人知道出了什么问题吗?

我有点担心t.path变量,因为它看起来像这个“\ taskname”。这可能是问题吗?

namespace Inbox_Workflow
{
    class Program
    {
        static void Main(string[] args)
        {
            TaskService ts = new TaskService("\\server", "user", "abc", "abc");
            EnumAllTasks(ts);
            Console.ReadKey(true)
        }

        static void EnumAllTasks(TaskService ts)
        {
                EnumFolderTasks(ts.RootFolder);
        }

        static void EnumFolderTasks(TaskFolder fld)
        {
            foreach (Task task in fld.Tasks)
                ActOnTask(task);
        }

       static void ActOnTask(Task t)
        {
            Console.Write(t+" \n");
            TaskEventLog log = new TaskEventLog(t.Path);
            foreach (TaskEvent item in log)
                Console.Write(item + " \n");
        }

    }
}

1 个答案:

答案 0 :(得分:1)

没有,\ taskname很好,实际上它是必需的(这是路径)。

在重新阅读docs

之前,您遇到了同样的问题
  

如果使用指定远程的TaskEventLog构造函数   在机器上,您需要使用模拟登录帐户   在实例化之前具有远程计算机的权限   TaskEventLog。

所以,从这个

改变你的ActOnTask
TaskEventLog log = new TaskEventLog(t.Path);

To This:

TaskEventLog log = new TaskEventLog("server", t.Path, "Domain", "UserName", "Password");

你应该好好去。