2017-07-07 51 views
0

我有一個AWS服務器,其中有一個計劃任務的列表。當我通過命令提示符執行下面保存在名爲script.py的文件中的python腳本時,我沒有獲得控制檯中許多任務的名稱。在AWS服務器中使用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

缺少管理權限? – barny

+0

我有管理員權限。 – Enthusiast

回答

0

我自己找到了答案。奇怪的是,當我執行腳本只列表我得到的是我在調度程序中添加的那些。同樣,如果我要求不同的用戶使用他的憑據執行腳本,它只會打印他/她在任務計劃程序中添加的那些任務。要考慮的要點是所有用戶都具有管理員權限。

要解決此問題,我使用管理員的憑據登錄到服務器,現在它正在打印我想要的所有工作流程詳細信息。