Я пытаюсь перечислить все запланированные задачи в Windows с помощью скрипта Python.
В этом посте проверка Python на наличие завершенных и неудачных планировщиков задач Windows есть какой-то код, который работал.
import win32com.client
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):
print('Path : %s' % task.Path)
print('State : %s' % TASK_STATE[task.State])
print('Last Run : %s' % task.LastRunTime)
print('Last Result: %s\n' % task.LastTaskResult)
Однако я хотел бы отобразить путь к файлу, который он выполняет (например, c:\test\aaa.bat
), и параметры команды. Как это можно сделать?
А может кто-нибудь объяснить смысл некоторых команд в коде:
- [] в коде [scheduler.GetFolder('\')]
- Где я могу получить подробное объяснение кода, такого как list(folder.GetFolders(0)), folder.GetTasks(0)? Есть ли доступная документация?
Dispatch
возвращает экземплярITaskService
.GetFolder('\\')
возвращаетITaskFolder
для корневой папки в пространстве имен планировщика.GetFolders(0)
возвращает подпапки в файлеITaskFolderCollection
.GetTasks(0)
получает нескрытые задачи в папке в файлеIRegisteredTaskCollection
. Чтобы включить скрытые задачи, используйтеGetTasks(TASK_ENUM_HIDDEN)
, т.е.GetTasks(1)
. Перечисление возвращает задачу какIRegisteredTask
. Обратите внимание, что его свойствоDefinition
— этоITaskDefinition
. - person Eryk Sun   schedule 04.09.2017os.walk
, которая выдает путь, подпапки и задачи в каждой папке. - person Eryk Sun   schedule 05.09.2017walk_tasks
в свой ответ на связанный вопрос. - person Eryk Sun   schedule 17.09.2017