檢視次數:
排程任務可讓您依排程自動執行特定的 Server & Workload Security保護 任務。您可以使用 Server & Workload Security保護 API 執行所有與排程任務相關的活動,這些活動您也可以使用 Server & Workload Security保護 主控台來完成,例如執行建議掃描、檢查安全性更新和同步雲端帳戶。請參閱 排程 Server & Workload Security保護 以執行任務 以取得有關可用排程任務類型的詳細資訊。
在您建立排程任務後,您可以隨時執行它。您也可以在建立後立即執行它們,然後立即刪除它們。這樣一來,排程任務透過 API 和 SDK 提供了多種強大且方便的工具來自動化Server & Workload Security保護

相關類別 上層主題

您在處理排程任務時會使用以下的 SDK 類別:
  • ScheduledTasksApi:提供對Server & Workload Security保護上排程任務的訪問。您可以創建、描述、修改、刪除、搜索和列出排程任務
  • ScheduledTask:表示排程任務
  • ScheduleDetails:定義執行排程任務的時間表
  • 任務參數類別:定義排程任務執行的任務。(請參閱 配置任務 以獲取類別列表。)

建立排程任務 上層主題

請使用以下一般程序來建立排程任務(更詳細的資訊如下):

步驟

  1. 建立一個 ScheduledTask 物件並配置一般屬性。
  2. 建立一個 ScheduleDetails 物件來定義任務執行的排程,並將其新增到 ScheduledTask 物件中。
  3. 創建一個任務參數類來定義要執行的任務,並將其添加到ScheduledTask對象中。每種類型的任務都有不同的任務參數類。請注意,同步用戶和檢查軟體更新任務不需要任務參數類。
  4. 使用 ScheduledTasksApi 物件在 Server & Workload Security保護 上建立排程任務。

接下來需執行的動作

配置一般屬性 上層主題

當您建立一個ScheduledTask物件時,請使用它來定義一般屬性:
  • 名稱
  • 它排程的任務類型
  • 任務是否已啟動
  • 任務在建立後是否執行
discover_computer_task = api.ScheduledTask()
discover_computer_task.name = "Discover Computers - Daily"
discover_computer_task.type = "discover-computers"
discover_computer_task.run_now = False
在您設定一般屬性後,配置排程和任務,並將它們添加到ScheduledTask對象中。

建立排程 上層主題

ScheduleDetails 物件的以下屬性控制任務執行的時間:
  • 重複類型——每月、每週、每日、每小時或無(僅執行一次)
  • 每日、每週和每月計劃的重複。每日和每週的重複以間隔表示,例如每隔一天。對於每月重複,您可以指定特定的月份。
  • 任務執行的次數(重複次數)。任務在執行指定次數後會自動刪除。這在您只想執行一次排程任務時非常有用。
  • 每日、每週和每月重複類型的開始時間決定了任務運行的時間,以毫秒(Epoch時間)指定。當重複以每日和每週計劃的間隔表示時,後續運行的天數或週數是從開始時間計算的。例如,當重複是每隔一天時,開始時間落在星期一意味著任務下一次運行的時間是星期三。
  • 用於解釋開始時間的時區。
請注意,ScheduleDetails 物件不會在 Server & Workload Security保護 上作為單獨實體保存,而是作為排程任務的一部分儲存。您無法保存 ScheduleDetails 物件以供其他排程任務日後重複使用。
使用以下一般程序來建立排程:

步驟

  1. 創建一個ScheduleDetails對象並設置重複類型。
  2. 建立一個與重複類型相對應的ScheduleParameters物件,配置運行的重複性和開始時間,並將其添加到ScheduledTask物件中。可用的ScheduleParameters物件包括DailyScheduleParametersHourlyScheduleParametersMonthlyScheduleParametersOnceOnlyScheduleParameters
  3. 可選擇在 ScheduledTask 物件上設置時區。

接下來需執行的動作

例如,為每日排程建立一個 ScheduleDetails 物件:
daily_schedule = api.ScheduleDetails()
daily_schedule.recurrence_type = "daily"
DailyScheduleParameters 類別對應每日排程。此範例使用自訂間隔來配置排程:
daily_schedule_parameters = api.DailyScheduleParameters()

daily_schedule_parameters.frequency_type = "custom"
daily_schedule_parameters.custom_interval = custom_interval
daily_schedule_parameters.start_time = start_time
最後,將排程參數添加到 ScheduleDetails 物件:
daily_schedule.daily_schedule_parameters = daily_schedule_parameters

範例:每日行程 上層主題

以下範例會建立一個每日排程以供排程任務使用。
# Create a ScheduleDetails object and set the recurrence type
daily_schedule = api.ScheduleDetails()
daily_schedule.recurrence_type = "daily"

# Specify when the task runs
daily_schedule_parameters = api.DailyScheduleParameters()

# Use a custom frequency type to run the task at daily intervals.
# Every day and only weekdays are other available frequency types.
daily_schedule_parameters.frequency_type = "custom"
daily_schedule_parameters.custom_interval = custom_interval
daily_schedule_parameters.start_time = start_time

# Add the schedule parameters to the schedule details
daily_schedule.daily_schedule_parameters = daily_schedule_parameters

範例:每月排程 上層主題

以下範例會建立一個每月排程以供排程任務使用。
# Create a ScheduleDetails object and set the recurrence type
quarterly_schedule = api.ScheduleDetails()
quarterly_schedule.recurrence_type = "monthly"

# Specify when the task runs
monthly_schedule_parameters = api.MonthlyScheduleParameters()

# Set the schedule to run on a specific day of the month.
# Other options are the last day of the month, or a specific weekday of a specific week
monthly_schedule_parameters.frequency_type = "day-of-month"

# Set the day
monthly_schedule_parameters.day_of_month = day

# Set the months to be quarterly
monthly_schedule_parameters.months = ["january", "april", "july", "october"]

# Add the schedule parameters to the schedule details
quarterly_schedule.monthly_schedule_parameters = monthly_schedule_parameters

配置任務 上層主題

以下每個任務參數類別都對應一種類型的排程任務。您使用這些類別來配置任務:
  • 檢查安全更新任務參數
  • DiscoverComputersTaskParameters
  • GenerateReportTaskParameters
  • RunScriptTaskParameters
  • 掃描完整性變更任務參數
  • 掃描惡意軟體任務參數
  • 掃描開放端口掃描參數
  • 掃描建議掃描參數
  • SendAlertSummaryScanParameters
  • SendPolicyTaskParameters
  • 同步雲端帳戶任務參數
  • 同步目錄任務參數
  • 同步VCenter任務參數
  • UpdateSuspiciousObjectsListTaskParameters
秘訣
秘訣
授予您 API 金鑰的權限決定了哪些任務參數類別可用。例如,當主要租戶限制租戶使用腳本時,RunScriptTaskParameters 類別對租戶不可用。
使用以下一般程序來建立和配置任務物件:

步驟

  1. 從與您正在建立的排程任務類型相對應的類別中創建任務參數對象。
    注意
    注意
    同步使用者和檢查軟體更新任務不需要配置。對於這些任務,不要創建任務參數類別。
  2. 配置任務參數物件以定義任務的行為:
    • 每個類別定義了您需要配置的不同屬性。
    • 若干任務參數類別需要 ComputerFilter 物件來識別要操作的電腦。
    • 根據任務參數對象的類型,您可能需要添加RecipientsTagFilterTimeRange對象。

接下來需執行的動作

例如,建立一個 ScheduledTask 物件並設定任務類型,以便發現電腦:
discover_computer_task = api.ScheduledTask()
discover_computer_task.type = "discover-computers"
創建相應的 DiscoverComputerTaskParameters 物件並設置屬性值:
task_parameters = api.DiscoverComputersTaskParameters()
task_parameters.discovery_type = "range"
task_parameters.iprange_low = "192.168.60.0"
task_parameters.iprange_high = "192.168.60.255"
task_parameters.scan_discovered_computers = True
然後,將 DiscoverComputerTaskParameters 物件新增到 ScheduledTask 物件,並在 Server & Workload Security保護 上建立排程任務:
discover_computer_task.discover_computers_task_parameters = task_parameters

scheduled_tasks_api = api.ScheduledTasksApi(api.ApiClient(configuration))
scheduled_task = scheduled_tasks_api.create_scheduled_task(discover_computer_task, api_version)

建立排程任務 上層主題

以下範例會建立一個發現電腦的排程任務。
# Create the ScheduledTask object and set the name and type. Do not run now.
discover_computer_task = api.ScheduledTask()
discover_computer_task.name = "Discover Computers - Daily"
discover_computer_task.type = "discover-computers"
discover_computer_task.run_now = False

# Call the createDailyScheduleDetails method to obtain a daily ScheduleDetails object.
# Set the start time to 03:00 DST.
discover_computer_task.schedule_details = create_daily_schedule_details(api, api_exception, 2, 1536030000000);

# Create a DiscoverComputersTaskParameters object.
# The scan applies to a range of IP addresses, and scans discovered computers for open ports.
task_parameters = api.DiscoverComputersTaskParameters()
task_parameters.discovery_type = "range"
task_parameters.iprange_low = "192.168.60.0"
task_parameters.iprange_high = "192.168.60.255"
task_parameters.scan_discovered_computers = True
discover_computer_task.discover_computers_task_parameters = task_parameters

# Create the scheduled task on Server & Workload Security保護
scheduled_tasks_api = api.ScheduledTasksApi(api.ApiClient(configuration))
scheduled_task = scheduled_tasks_api.create_scheduled_task(discover_computer_task, api_version)

return scheduled_task.id
另請參閱 API 參考中的 建立排程任務 操作。

建立、執行和刪除排程任務 上層主題

建立一個排程任務,讓其在創建時立即運行,然後刪除該排程任務。以這種方式使用排程任務,可以通過 API 方便地訪問許多 Server & Workload Security保護 功能。
秘訣
秘訣
ScheduleDetails 物件的重複次數設為 1 時,排程任務在執行後會自動刪除。
使用以下一般程序來建立、執行和刪除排程任務:

步驟

  1. 建立並配置 ScheduledTask 物件:
    • 將排程任務設置為立即執行。
    • 將任務設置為僅運行一次,以確保不會發生後續運行。
    • 根據需要創建和配置任務詳細信息。
  2. 創建一個ScheduledTasksApi對象,並使用它在Server & Workload Security保護上創建計劃任務。
  3. 使用 ScheduledTasksApi 物件刪除 Server & Workload Security保護 上的排程任務。

接下來需執行的動作

以下範例會建立、執行並刪除檢查安全更新的排程任務。
# Set the name and task type
check_for_security_updates = api.ScheduledTask()
check_for_security_updates.name = "Check For Security Updates"
check_for_security_updates.type = "check-for-security-updates"

# Run when the scheduled task is created
check_for_security_updates.run_now = True

# Use a once-only recurrence
schedule_details = api.ScheduleDetails()
schedule_details.recurrence_type = 'none'

# Set the recurrence count to 1 so that the task is deleted after running
schedule_details.recurrence_count = 1
schedule_parameters = api.OnceOnlyScheduleParameters()

# The start time is not important because it is deleted after running
schedule_parameters.start_time = 0
schedule_details.once_only_schedule_parameters = schedule_parameters
check_for_security_updates.schedule_details = schedule_details

# Scan all computers
computer_filter = api.ComputerFilter()
computer_filter.type = "all-computers"

# Create the task parameters object and add the computer filter
task_parameters = api.CheckForSecurityUpdatesTaskParameters()
task_parameters.computer_filter = computer_filter

check_for_security_updates.check_for_security_updates_task_parameters = task_parameters

# Create the scheduled task on Server & Workload Security保護
scheduled_tasks_api = api.ScheduledTasksApi(api.ApiClient(configuration))
scheduled_task = scheduled_tasks_api.create_scheduled_task(check_for_security_updates, api_version)

return scheduled_task.id
另請參閱 API 參考中的 建立排程任務 操作。

執行現有的排程任務 上層主題

您可以隨時執行現有的排程任務。例如,已在Server & Workload Security保護上建立了一個掃瞄網路中電腦的排程任務,並每兩天執行一次。然而,您現在需要進行掃瞄,因此您立即執行了該排程任務。
使用以下一般程序來執行排程任務:

步驟

  1. 建立一個 ScheduledTask 物件並將 runNow 屬性設為 true。不要設置其他屬性。
  2. 獲取現有排程任務的 ID 以執行。
  3. 創建一個 ScheduledTasksApi 對象,並使用它根據您創建的 ScheduledTask 對象來修改現有的計劃任務。

接下來需執行的動作

當您將 runNow 設定為 true 時,排程任務會被配置為在當前時間段內運行。您可能需要在運行排程任務後將開始時間重置為原始值。
以下範例執行發現電腦的排程任務。
# Create the ScheduledTask object and set to run now
scheduled_task = api.ScheduledTask()
scheduled_task.run_now = True

# Modify the scheduled task on Server & Workload Security保護
scheduled_tasks_api = api.ScheduledTasksApi(api.ApiClient(configuration))
scheduled_tasks_api.modify_scheduled_task(scheduled_task_id, scheduled_task, api_version)
另請參閱 API 參考中的 修改排程任務 操作。