community.windows.win_scheduled_task 模块 – 管理计划任务
注意
此模块是 community.windows 集合(版本 2.3.0)的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.windows
。
要在 Playbook 中使用它,请指定:community.windows.win_scheduled_task
。
概要
创建/修改或删除 Windows 计划任务。
参数
参数 |
注释 |
---|---|
要为任务配置的操作列表。 有关如何构造每个列表条目的详细信息,请参阅子选项。 创建任务时,必须至少有一个操作,但删除任务时,这可以为空或空列表。 此列表的顺序很重要,该模块将确保在修改任务时保持顺序。 此模块仅支持 |
|
为可执行文件提供的参数字符串。 |
|
ExecAction 的可执行文件的路径。 |
|
从中运行可执行文件的工作目录。 |
|
是否可以通过使用“运行”命令或上下文菜单启动任务。 选择
|
|
是否可以使用 TerminateProcess 终止任务。 选择
|
|
任务的作者。 |
|
指示任务与哪个版本的任务计划程序兼容的整数值。
选择
|
|
任务注册的日期。 |
|
任务计划程序在任务过期后删除任务之前将等待的时间量。 在与该任务关联的所有触发器的 end_boundary 都被超出后,任务将过期。 这是 ISO 8601 持续时间格式 |
|
任务的描述。 |
|
如果计算机正在使用电池供电,是否不启动任务。 选择
|
|
在任务计划程序 UI 中显示的用户/组的名称。 |
|
是否启用该任务,该任务只能在 选择
|
|
允许完成任务的时间量。 当设置为 如果省略,则默认时间限制为 72 小时。 这是 ISO 8601 持续时间格式 |
|
将运行任务的组。
|
|
是否在 UI 中隐藏任务。 选择
|
|
该任务将使用的登录方法。
选择
|
|
一个整数,表示启动已在运行的任务时的行为。
选择
|
|
计划任务的名称,不包括路径。 |
|
用于运行计划任务的用户帐户的密码。 在用户未登录的情况下运行任务时,需要此密码,但不包括内置服务帐户和组托管服务帐户 (gMSA)。 如果设置了此选项,除非 |
|
此任务将存储在其中的任务文件夹。 当 当 默认值: |
|
任务的优先级级别 (0-10)。 创建新任务时,默认值为 有关优先级级别的详细信息,请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383512.aspx。 |
|
任务计划程序将尝试重启任务的次数。 |
|
任务计划程序将尝试重启任务的时间。 如果设置此选项,则还必须设置 允许的最大时间为 31 天。 允许的最小时间为 1 分钟。 这是 ISO 8601 持续时间格式 |
|
用于运行任务的用户权限级别。 如果未指定,将使用有限权限创建任务。 选择
|
|
是否仅当计算机处于空闲状态时才运行任务。 选择
|
|
是否仅在网络可用时才运行任务。 选择
|
|
任务的来源。 |
|
是否可以在其计划时间过后随时启动任务。 选择
|
|
当 当 选择
|
|
如果计算机开始使用电池供电,是否停止任务。 选择
|
|
要为任务配置的触发器列表。 有关如何构造每个列表条目的详细信息,请参阅子选项。 此列表的顺序很重要,该模块将确保在修改任务时保持顺序。 有多种类型的触发器,有关触发器类型及其选项的列表,请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383868.aspx。 下面列出的子选项并非所有触发器类型都必需,请阅读描述以了解更多详细信息。 |
|
触发器的月份中的天数,从 1 到 31。 如果要将触发器设置为任何月份的最后一天,请使用 可以是天数列表或逗号分隔的字符串。 当 |
|
触发器的星期几。 可以是完整星期几名称的列表或逗号分隔的字符串,例如 monday 而不是 mon。 当 当 |
|
触发器触发后延迟任务运行的时间。 当 格式为 ISO 8601 持续时间格式 |
|
是否将触发器设置为启用或禁用 在所有触发器类型中使用。 选择
|
|
触发器被停用的结束时间。 格式为 ISO 8601 日期时间格式 |
|
任务允许运行的最长时间。 对于所有触发器类型都是可选的。 格式为 ISO 8601 持续时间格式 |
|
触发器的年份中的月份。 可以是完整月份名称的列表或逗号分隔的字符串,例如 march 而不是 mar。 当 |
|
随机添加到触发器启动时间的延迟时间。 当 格式为 ISO 8601 持续时间格式 |
|
允许您定义触发器的重复操作,该操作定义任务的运行频率以及任务启动后重复模式的重复时间。 它接受以下键: |
|
定义模式重复的时间。 该值采用 ISO 8601 持续时间格式 默认情况下,未设置此值,这意味着它将无限期重复。 |
|
任务每次重启之间的时间量。 该值以 ISO 8601 持续时间格式 |
|
是否在重复模式结束时停止正在运行的任务实例。 选择
|
|
布尔值,设置任务是否在每月的最后一天运行。 当 选择
|
|
布尔值,设置任务是否在每月的最后一周运行。 当 选择
|
|
任务的开始时间,即使触发器满足其他启动条件,在满足此时间之前也不会启动。 如果您希望在某天上午 9 点运行任务,您仍然需要指定触发器激活的日期,您可以设置任何日期,即使是过去的日期。 当 对于其余的触发器类型,此项是可选的。 格式为 ISO 8601 日期时间格式 |
|
允许您定义触发任务的终端服务器会话更改类型。 当 选择
|
|
仅在 标识触发触发器的事件的 XML 查询字符串。 |
|
触发器类型,此值控制下面需要哪些选项。 选择
|
|
触发器将目标指向的用户名。 当 可以是用户名或用户的 SID。 当 |
|
运行的周期间隔,例如, 当 |
|
触发器触发的月份中的周数。 可以是数字 1 到 4 的列表或逗号分隔的字符串,分别代表该月的第一周到第四周。 当 |
|
是否即使没有发生其他更改也更新密码。 当设置为 选择
|
|
运行计划任务的用户。 如果在创建期间未指定,则默认为当前用户(在交互式令牌下)。 指定的用户帐户必须具有 |
|
任务的版本号。 |
|
当到达运行任务的时间时,任务是否会唤醒计算机。 选择
|
备注
注意
服务操作和触发器的选项名称和结构遵循
RegisteredTask
命名标准和要求。 如果遇到任何问题,阅读此指南将很有用:https://msdn.microsoft.com/en-us/library/windows/desktop/aa382542.aspx。可以通过将
logon_type
设置为password
并省略密码参数来使用组托管服务帐户 (gMSA)。有关 gMSA 的更多信息,请参见:https://techcommunity.microsoft.com/t5/Core-Infrastructure-and-Security/Windows-Server-2012-Group-Managed-Service-Accounts/ba-p/255910
另请参阅
另请参阅
- community.windows.win_scheduled_task_stat
获取有关 Windows 计划任务的信息。
- ansible.windows.win_user_right
管理 Windows 用户权限。
示例
- name: Create a task to open 2 command prompts as SYSTEM
community.windows.win_scheduled_task:
name: TaskName
description: open command prompt
actions:
- path: cmd.exe
arguments: /c hostname
- path: cmd.exe
arguments: /c whoami
triggers:
- type: daily
start_boundary: '2017-10-09T09:00:00'
username: SYSTEM
state: present
enabled: true
- name: Create task to run a PS script as NETWORK service on boot
community.windows.win_scheduled_task:
name: TaskName2
description: Run a PowerShell script
actions:
- path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
arguments: -ExecutionPolicy Unrestricted -NonInteractive -File C:\TestDir\Test.ps1
triggers:
- type: boot
username: NETWORK SERVICE
run_level: highest
state: present
- name: Update Local Security Policy to allow users to run scheduled tasks
ansible.windows.win_user_right:
name: SeBatchLogonRight
users:
- LocalUser
- DOMAIN\NetworkUser
action: add
- name: Change above task to run under a domain user account, storing the passwords
community.windows.win_scheduled_task:
name: TaskName2
username: DOMAIN\User
password: Password
logon_type: password
- name: Change the above task again, choosing not to store the password
community.windows.win_scheduled_task:
name: TaskName2
username: DOMAIN\User
logon_type: s4u
- name: Change above task to use a gMSA, where the password is managed automatically
community.windows.win_scheduled_task:
name: TaskName2
username: DOMAIN\gMsaSvcAcct$
logon_type: password
- name: Create task with multiple triggers
community.windows.win_scheduled_task:
name: TriggerTask
path: \Custom
actions:
- path: cmd.exe
triggers:
- type: daily
- type: monthlydow
username: SYSTEM
- name: Set logon type to password but don't force update the password
community.windows.win_scheduled_task:
name: TriggerTask
path: \Custom
actions:
- path: cmd.exe
username: Administrator
password: password
update_password: false
- name: Disable a task that already exists
community.windows.win_scheduled_task:
name: TaskToDisable
enabled: false
- name: Create a task that will be repeated every minute for five minutes
community.windows.win_scheduled_task:
name: RepeatedTask
description: open command prompt
actions:
- path: cmd.exe
arguments: /c hostname
triggers:
- type: registration
repetition:
interval: PT1M
duration: PT5M
stop_at_duration_end: true
- name: Create task to run a PS script in Windows 10 compatibility on boot with a delay of 1min
community.windows.win_scheduled_task:
name: TriggerTask
path: \Custom
actions:
- path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
arguments: -ExecutionPolicy Unrestricted -NonInteractive -File C:\TestDir\Test.ps1
triggers:
- type: boot
delay: PT1M
username: SYSTEM
compatibility: 4