使用python操作Windows任务计划程序

最低支持服务器:Windows Server 2008
以下参考网站 替换 en-us > zh-cn 即可查看 中文文档(为机器翻译可能不太准确)
参考网站: https://learn.microsoft.com/en-us/windows/win32/taskschd/time-trigger-example–scripting-
当前以 每5分钟执行test.exe 作为场景举例

连接服务,并创建任务对象
https://learn.microsoft.com/zh-cn/windows/win32/taskschd/taskfolder

# 连接计划任务服务
scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()# 创建任务对象
# 获取任务定义的文件夹
root_folder = scheduler.GetFolder('\\')
# 创建对象 flags参数为0 固定
task_def = scheduler.NewTask(0)

设置任务动作 执行exe脚本 或者 执行 CMD命令
https://learn.microsoft.com/en-us/windows/win32/taskschd/execaction

TASK_ACTION_EXEC = 0
action = task_def.Actions.Create(TASK_ACTION_EXEC)
action.ID = 'TEST'
# 脚本只需 设置Path 为脚本绝对路径即可
action.Path = r"E:\test.exe"
# action.Path = "netstat"
# action.Arguments = "-ano"

设置任务信息
https://learn.microsoft.com/en-us/windows/win32/taskschd/task-registration-information

task_def.RegistrationInfo.Description = '定时任务描述'  # 任务描述
task_def.RegistrationInfo.Author = "脚本创建"   # 创建者

定时任务设置
https://learn.microsoft.com/en-us/windows/win32/taskschd/tasksettings

# 为“任务计划程序”设置任务设置信息 创建一个 TaskSettings 对象。
task_def.Settings.Enabled = True
# task_def.Settings.StopIfGoingOnBatteries = False
# 超过其计划时间后的任何时间启动任务
task_def.Settings.StartWhenAvailable = True
task_def.Settings.Hidden = False
# 设置 如果任务失败,按以下频率重新启动
task_def.Settings.RestartCount = 3  # 任务计划程序尝试重启任务的次数。
# 该值指定任务计划程序尝试重启任务的时间 必须设置 RestartCount 属性
task_def.Settings.RestartInterval = "PT20M"

创建基于时间的触发器
https://learn.microsoft.com/en-us/windows/win32/taskschd/timetrigger

# 指定每日触发器的常量。1:只运行一次, 2: 每日执行
TASK_TRIGGER_TIME = 2
# 创建一个每日触发器。
trigger = task_def.Triggers.Create(TASK_TRIGGER_TIME)# 当前时间30秒后执行该任务  必要参数
# isoformat() 转换时间格式: YYYY-MM-DDTHH:MM:SS
trigger.StartBoundary = (datetime.now() + timedelta(seconds=30)).isoformat()
# 获取或设置触发器停用的日期和时间。
# trigger.EndBoundary = (datetime.now() + timedelta(minutes=5)).isoformat()
trigger.Id = "DailyTriggerId"
# 是否启用触发器。
trigger.Enabled = True

设置重复模式 设置为interval间隔执行一次
https://learn.microsoft.com/en-us/windows/win32/taskschd/repetitionpattern

# 重复模式的时间。PnYnMnDTnHnMnS PT5M指定5分钟 如果未为持续时间指定任何值,则模式将无限期重复。
trigger.Repetition.Interval = "PT5M"

注册任务
https://learn.microsoft.com/en-us/windows/win32/taskschd/taskfolder-registertaskdefinition

# 注册任务
TASK_CREATE_OR_UPDATE = 6
TASK_LOGON_NONE = 0
root_folder.RegisterTaskDefinition("ServerMonitor",  # 任务的名称task_def,  # 构建的任务(有动作数据、触发数据、描述数据等)TASK_CREATE_OR_UPDATE,  # 如果任务存在,则更新任务'',  # 用于注册任务的用户凭据'',  # 用于注册任务的userId的密码TASK_LOGON_NONE     # 未指定登录方法。
)

整体代码

from datetime import datetime, timedeltaimport win32com.client# 连接计划任务服务
scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()# 创建任务对象
# 获取任务定义的文件夹
root_folder = scheduler.GetFolder('\\')
# 创建对象 flags参数为0 固定
task_def = scheduler.NewTask(0)TASK_ACTION_EXEC = 0
action = task_def.Actions.Create(TASK_ACTION_EXEC)
action.ID = 'TEST'
# 脚本只需 设置Path 为脚本绝对路径即可
action.Path = r"E:\test.exe"
# action.Path = "netstat"
# action.Arguments = "-ano"task_def.RegistrationInfo.Description = '定时任务描述'  # 任务描述
task_def.RegistrationInfo.Author = "脚本创建"  # 创建者# 为“任务计划程序”设置任务设置信息 创建一个 TaskSettings 对象。
task_def.Settings.Enabled = True
# task_def.Settings.StopIfGoingOnBatteries = False
# 超过其计划时间后的任何时间启动任务
task_def.Settings.StartWhenAvailable = True
task_def.Settings.Hidden = False
# 设置 如果任务失败,按以下频率重新启动
task_def.Settings.RestartCount = 3  # 任务计划程序尝试重启任务的次数。
# 该值指定任务计划程序尝试重启任务的时间 必须设置 RestartCount 属性
task_def.Settings.RestartInterval = "PT20M"# 指定每日触发器的常量。1:只运行一次, 2: 每日执行
TASK_TRIGGER_TIME = 2
# 创建一个每日触发器。
trigger = task_def.Triggers.Create(TASK_TRIGGER_TIME)# 当前时间30秒后执行该任务  必要参数
# isoformat() 转换时间格式: YYYY-MM-DDTHH:MM:SS
trigger.StartBoundary = (datetime.now() + timedelta(seconds=30)).isoformat()
# 获取或设置触发器停用的日期和时间。
# trigger.EndBoundary = (datetime.now() + timedelta(minutes=5)).isoformat()
trigger.Id = "DailyTriggerId"
# 是否启用触发器。
trigger.Enabled = True# 重复模式的时间。PnYnMnDTnHnMnS PT5M指定5分钟 如果未为持续时间指定任何值,则模式将无限期重复。
trigger.Repetition.Interval = "PT5M"# 注册任务
TASK_CREATE_OR_UPDATE = 6
TASK_LOGON_NONE = 0
root_folder.RegisterTaskDefinition("ServerMonitor",  # 任务的名称task_def,  # 构建的任务(有动作数据、触发数据、描述数据等)TASK_CREATE_OR_UPDATE,  # 如果任务存在,则更新任务'',  # 用于注册任务的用户凭据'',  # 用于注册任务的userId的密码TASK_LOGON_NONE  # 未指定登录方法。
)

python操作Windows任务计划程序相关推荐

  1. python控制windows 任务计划程序 获取具体单一任务

    获取具体单一任务 # rpa为任务所在文件夹,wip_am为任务名称 task = scheduler.GetFolder('rpa').GetTask('wip_am') print(task.St ...

  2. windows任务计划程序运行python脚本失败的原因

    前言 用windows任务计划程序定时执行py脚本,为什么会执行失败?运行结果显示(0x1)? 直接闪退? 在IDE运行程序,正常运行 在文件管理器目录下运行程序,也没有问题. 但是为什么在任务计划程 ...

  3. 使用PowerShell和Windows任务计划程序备份Linux SQL Server数据库

    This article is an in-depth guide on how PowerShell can be used to maintain and manage SQL backup on ...

  4. Windows 任务计划程序

    Windows 任务计划程序 任务计划程序 Windows 前言 一.操作方法 前言 有时候需要定时执行某个程序或者脚本,可以使用Windows自带的任务计划程序,本文介绍了如何在任务计划程序库中添加 ...

  5. Windows 任务计划程序定时执行 powershell 脚本

    由于需要进行一些特殊操作,打算使用 powershell 来写脚本,需要Windows 任务计划程序定时执行. 怎么在Windows 任务计划程序中执行powershell脚本?? 做一个简单测试:本 ...

  6. Windows 任务计划程序(task scheduler)介绍

    一.入口 任务计划程序在windows绝大多数版本都是系统自带,可以通过一下入口找到 1.开始--(windows)管理工具 2.服务器管理器--工具(server版) 3.我的电脑(此电脑)--点击 ...

  7. Windows任务计划程序Task Scheduler笔记

    微软文档居然搜不到了 Windows任务计划程序已经存在许多年了,原来在微软的TechNet上有详细的操作介绍的,现在发现网站改版,原来的介绍居然搜索不到了,微软的平台上出现这种事情,也是比较吃惊了. ...

  8. 使用Windows[任务计划程序]设置定时任务

    文章目录 使用Windows[任务计划程序]设置定时任务 [任务计划程序]打开位置 Windows 11 Windows 10 创建定期启动程序任务 创建基本任务 给任务命名,并添加任务描述 根据需求 ...

  9. windows任务计划程序

    通常开发过程中,我们的windows控制台应用程序要想在windows中自动定时运行,windows任务计划程序是一个非常简便的选择. 1.点击计算机,右键计算机管理: 2. 在计算机管理中选择任务计 ...

最新文章

  1. 更新了朋友圈微博动态,好友何时会点赞评论?
  2. 操作Docker容器
  3. 红茶一杯话Binder(传输机制篇_中)
  4. mac命令行安装htop
  5. python中直方图-Numpy,Python中的“拉伸”直方图(级别)
  6. Struts2学习笔记《二》
  7. 王者荣耀服务器未响应8月5日苹果,王者荣耀:世冠小组赛8月5日前瞻预测
  8. mac sqlite可视化工具_Navicat for SQLite 12 for mac(强大数据库管理及开发工具)
  9. 像A + B一样容易
  10. CSDN排名规则变化略谈
  11. CorelDRAWX4的VBA插件开发(二十九)使用C++制作动态连接库DLL辅助VBA构键强大功能-(3)制作最简单的可供调用的DLL
  12. JDK源码阅读之Long
  13. zstack信道_zigbee无线信道的组成
  14. csv文件修改编码格式
  15. MySQL错误Got error -1 from storage engine
  16. Java基础篇--设计模式
  17. MarkMan(马克鳗)
  18. Java 姓名脱敏的一点点改进 针对大于三个字 或叠字
  19. 老毛子(华硕)固件ipv6及dmz主机设置
  20. SRS 代码分析【HLS切片】

热门文章

  1. Hadoop入门(上):大数据特点、大数据前景、大数据组织结构、Hadoop组成、Hadoop版本介绍、Hadoop运行环境搭建、CentOS6安装JDK、安装Hadoop、Hadoop目录结构
  2. 学习前端html5和css3笔记六
  3. 【博客话题】我的苦乐年华-项目回忆录
  4. 新格局 新智造——2021中德(台州)智能制造大会成功召开
  5. Mac流程图工具OmniGraffle介绍
  6. 身为董事长,竟遇到猎头挖自己!
  7. 小红书居家写真文案与标题
  8. 深度学习8-加速强化学习训练的方法
  9. keil和proteus联调
  10. GBT 35273-2020 信息安全技术 个人信息安全规范