如何使用python导出Windows Task Scheduler历史日志?

时间:2019-06-30 08:02:34

标签: python windows logging scheduled-tasks

我正在尝试导出计划任务信息,以跟踪是否有任何失败的任务及其时间。任务计划程序上有一个导出功能,但是有没有一种方法可以使用python自动导出?

1 个答案:

答案 0 :(得分:0)

看起来像这样的问题有一个提取您要查询的数据的示例。 https://stackoverflow.com/a/36635050/4734574

更新

我使用了链接中的第一个示例,并在系统上设置了所有任务。如果您没有看到所有任务,则可能是UAC(用户帐户控制)的权限问题。如果是这种情况,您可能要在具有管理员权限的情况下运行dos / git-bash。

  1. pip install pywin32
  2. 运行以下python脚本:

task_dump.py

import win32com.client

TASK_ENUM_HIDDEN = 1
TASK_STATE = {0: 'Unknown',
              1: 'Disabled',
              2: 'Queued',
              3: 'Ready',
              4: 'Running'}

scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()

n = 0
folders = [scheduler.GetFolder('\\')]
while folders:
    folder = folders.pop(0)
    folders += list(folder.GetFolders(0))
    tasks = list(folder.GetTasks(TASK_ENUM_HIDDEN))
    n += len(tasks)
    for task in tasks:
        settings = task.Definition.Settings
        print('Path       : %s' % task.Path)
        print('Hidden     : %s' % settings.Hidden)
        print('State      : %s' % TASK_STATE[task.State])
        print('Last Run   : %s' % task.LastRunTime)
        print('Last Result: %s\n' % task.LastTaskResult)
print('Listed %d tasks.' % n)

注意:我没有对原始张贴者帖子进行任何修改。

  1. 运行:python task_dump.py > tasks.log

示例结果

Path       : \NvBatteryBoostCheckOnLogon_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-30 10:15:36+00:00
Last Result: 0

Path       : \NvDriverUpdateCheckDaily_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-29 22:25:26+00:00
Last Result: 0

Path       : \NVIDIA GeForce Experience SelfUpdate_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 1999-11-30 00:00:00+00:00
Last Result: 267011

Path       : \NvNgxUpdateCheckDaily_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-29 23:25:31+00:00
Last Result: 1

Path       : \NvNodeLauncher_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-30 10:13:35+00:00
Last Result: -2147467259

Path       : \NvProfileUpdaterDaily_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-29 22:25:22+00:00
Last Result: 0

Path       : \NvProfileUpdaterOnLogon_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-30 10:15:36+00:00
Last Result: 0

Path       : \NvTmMon_{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}
Hidden     : False
State      : Ready
Last Run   : 2019-06-30 10:15:36+00:00
Last Result: 0