AWS服务器中使用Python的所有计划任务的列表

时间:2017-07-07 14:00:29

标签: python amazon-web-services cloud scheduled-tasks scheduler

我有一台AWS服务器,其中包含计划任务列表。当我在通过命令提示符保存在名为script.py的文件中的python脚本下执行时,我没有在控制台中获得许多任务的名称。

脚本

import win32com.client
def Task_Names():
    path = find_path()
    columns1 = ['Workflow Name','Last Run Time','Status']
    dat = pd.DataFrame(columns1)
    TASK_STATE = {0: 'Unknown',
                  1: 'Disabled',
                  2: 'Queued',
                  3: 'Ready',
                  4: 'Running'}
    scheduler = win32com.client.Dispatch('Schedule.Service')
    scheduler.Connect()
    folders = [scheduler.GetFolder('\\')]
    while folders:
        folder = folders.pop(0)
        folders += list(folder.GetFolders(0))

        for task in folder.GetTasks(0):
            if task.LastTaskResult == -2147023829:
                result = 'Failed'
            elif task.LastTaskResult == -2147024894:
                result = 'The system cannot find the file specified'
            elif task.LastTaskResult == 267009:
                result = 'The task is currently running'
            elif task.LastTaskResult == 0:
                result = 'Completed'
            #status.append(valu)
            print(task.Name,task.LastRunTime,result)

if __name__ == '__main__':
    Task_Names()

我将文件保存在H:\ScriptRepo中,因此我在命令提示符中使用cd命令cd /d H:\ScriptRepo导航到该文件夹​​。一旦我到达那里,我正在输入python script.py

问题是我无法获得所有计划任务的名称。当我在本地PC上执行相同的脚本时,我能够获得在任务调度程序库窗口中看到的所有计划任务的名称。我错过了什么?为什么这个脚本在AWS中表现不同,我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。奇怪的是,当我执行脚本时,我得到的是我在调度程序中添加的那些列表。同样,如果我要求其他用户使用他的凭据执行脚本,则只打印他/她在任务调度程序中添加的任务。需要考虑的是所有用户都拥有管理员权限。

要解决此问题,我使用管理员凭据登录服务器,现在打印出我想要的所有工作流程详细信息。