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

List of all scheduled tasks using Python in AWS server

我有一个 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 上执行相同的脚本时,我能够获得我在任务调度程序库 window 中看到的所有计划任务的名称。我错过了什么?为什么这个脚本在 AWS 中表现不同,我该如何解决?

我自己找到了答案。很奇怪,当我执行脚本时,我得到的唯一列表是我在调度程序中添加的列表。同样,如果我要求不同的用户使用他的凭据执行脚本,它只会打印 he/she 添加到任务计划程序中的那些任务。要考虑的一点是所有用户都有管理员权限。

为了解决这个问题,我使用管理员凭据登录到服务器,现在它正在打印我想要的所有工作流详细信息。