我有一台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中表现不同,我该如何解决呢?
答案 0 :(得分:0)
我自己找到了答案。奇怪的是,当我执行脚本时,我得到的是我在调度程序中添加的那些列表。同样,如果我要求其他用户使用他的凭据执行脚本,则只打印他/她在任务调度程序中添加的任务。需要考虑的是所有用户都拥有管理员权限。
要解决此问题,我使用管理员凭据登录服务器,现在打印出我想要的所有工作流程详细信息。