#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright: (c) 2017, Ansible Project # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # this is a windows documentation stub. actual code lives in the .ps1 # file of the same name ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: win_scheduled_task_stat version_added: "2.5" short_description: Get information about Windows Scheduled Tasks description: - Will return whether the folder and task exists. - Returns the names of tasks in the folder specified. - If C(name) is set and exists, will return information on the task itself. - Use M(win_scheduled_task) to configure a scheduled task. options: path: description: The folder path where the task lives. default: \ name: description: The name of the scheduled task to get information for. author: - Jordan Borean (@jborean93) ''' EXAMPLES = r''' - name: get information about a folder win_scheduled_task_stat: path: \folder name register: task_folder_stat - name: get information about a task in the root folder win_scheduled_task_stat: name: task name register: task_stat - name: get information about a task in a custom folder win_scheduled_task_stat: path: \folder name name: task name register: task_stat ''' RETURN = r''' actions: description: A list of actions. returned: name is specified and task exists type: list sample: [ { "Arguments": "/c echo hi", "Id": null, "Path": "cmd.exe", "Type": "TASK_ACTION_EXEC", "WorkingDirectory": null } ] folder_exists: description: Whether the folder set at path exists. returned: always type: boolean sample: True folder_task_count: description: The number of tasks that exist in the folder. returned: always type: int sample: 2 folder_task_names: description: A list of tasks that exist in the folder. returned: always type: list sample: [ 'Task 1', 'Task 2' ] principal: description: Details on the principal configured to run the task. returned: name is specified and task exists type: complex contains: display_name: description: The name of the user/group that is displayed in the Task Scheduler UI. returned: '' type: str sample: Administrator group_id: description: The group that will run the task. returned: '' type: str sample: BUILTIN\Administrators id: description: The ID for the principal. returned: '' type: str sample: Author logon_type: description: The logon method that the task will run with. returned: '' type: str sample: TASK_LOGON_INTERACTIVE_TOKEN run_level: description: The level of user rights used to run the task. returned: '' type: str sample: TASK_RUNLEVEL_LUA user_id: description: The user that will run the task. returned: '' type: str sample: SERVER\Administrator registration_info: description: Details on the task registration info. returned: name is specified and task exists type: complex contains: author: description: The author os the task. returned: '' type: str sample: SERVER\Administrator date: description: The date when the task was register. returned: '' type: str sample: '2017-01-01T10:00:00' description: description: The description of the task. returned: '' type: str sample: task description documentation: description: The documentation of the task. returned: '' type: str sample: task documentation security_descriptor: description: The security descriptor of the task. returned: '' type: str sample: security descriptor source: description: The source of the task. returned: '' type: str sample: source uri: description: The URI/path of the task. returned: '' type: str sample: \task\task name version: description: The version of the task. returned: '' type: str sample: 1.0 settings: description: Details on the task settings. returned: name is specified and task exists type: complex contains: allow_demand_start: description: Whether the task can be started by using either the Run command of the Context menu. returned: '' type: bool sample: True allow_hard_terminate: description: Whether the task can terminated by using TerminateProcess. returned: '' type: bool sample: True compatibility: description: The compatibility level of the task returned: '' type: int sample: 2 delete_expired_task_after: description: The amount of time the Task Scheduler will wait before deleting the task after it expires. returned: '' type: str sample: PT10M disallow_start_if_on_batteries: description: Whether the task will not be started if the computer is running on battery power. returned: '' type: bool sample: False disallow_start_on_remote_app_session: description: Whether the task will not be started when in a remote app session. returned: '' type: bool sample: True enabled: description: Whether the task is enabled. returned: '' type: bool sample: True execution_time_limit: description: The amount of time allowed to complete the task. returned: '' type: str sample: PT72H hidden: description: Whether the task is hidden in the UI. returned: '' type: bool sample: False idle_settings: description: The idle settings of the task. returned: '' type: dictionary sample: { "idle_duration": "PT10M", "restart_on_idle": false, "stop_on_idle_end": true, "wait_timeout": "PT1H" } maintenance_settings: description: The maintenance settings of the task. returned: '' type: str sample: null mulitple_instances: description: Indicates the behaviour when starting a task that is already running. returned: '' type: int sample: 2 network_settings: description: The network settings of the task. returned: '' type: dictionary sample: { "id": null, "name": null } priority: description: The priority level of the task. returned: '' type: int sample: 7 restart_count: description: The number of times that the task will attempt to restart on failures. returned: '' type: int sample: 0 restart_interval: description: How long the Task Scheduler will attempt to restart the task. returned: '' type: str sample: PT15M run_only_id_idle: description: Whether the task will run if the computer is in an idle state. returned: '' type: bool sample: True run_only_if_network_available: description: Whether the task will run only when a network is available. returned: '' type: bool sample: False start_when_available: description: Whether the task can start at any time after its scheduled time has passed. returned: '' type: bool sample: False stop_if_going_on_batteries: description: Whether the task will be stopped if the computer begins to run on battery power. returned: '' type: bool sample: True use_unified_scheduling_engine: description: Whether the task will use the unifed scheduling engine. returned: '' type: bool sample: False volatile: description: Whether thet ask is volatile. returned: '' type: bool sample: False wake_to_run: description: Whether the task will wake the computer when it is time to run the task. returned: '' type: bool sample: False state: description: Details on the state of the task returned: name is specified and task exists type: complex contains: last_run_time: description: The time the registered task was last run. returned: '' type: str sample: '2017-09-20T20:50:00' last_task_result: description: The results that were returned the last time the task was run. returned: '' type: int sample: 267009 next_run_time: description: The time when the task is next scheduled to run. returned: '' type: str sample: '2017-09-20T22:50:00' number_of_missed_runs: description: The number of times a task has missed a scheduled run. returned: '' type: int sample: 1 status: description: The status of the task, whether it is running, stopped, etc. returned: '' type: str sample: TASK_STATE_RUNNING task_exists: description: Whether the task at the folder exists. returned: name is specified type: boolean sample: True triggers: description: A list of triggers. returned: name is specified and task exists type: list sample: [ { "delay": "PT15M", "enabled": true, "end_boundary": null, "execution_time_limit": null, "id": null, "repetition": { "duration": null, "interval": null, "stop_at_duration_end": false }, "start_boundary": null, "type": "TASK_TRIGGER_BOOT" }, { "days_of_month": "5,15,30", "enabled": true, "end_boundary": null, "execution_time_limit": null, "id": null, "months_of_year": "june,december", "random_delay": null, "repetition": { "duration": null, "interval": null, "stop_at_duration_end": false }, "run_on_last_day_of_month": true, "start_boundary": "2017-09-20T03:44:38", "type": "TASK_TRIGGER_MONTHLY" } ] '''