排程任務可讓您依排程自動執行特定的 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
:定義執行排程任務的時間表- 任務參數類別:定義排程任務執行的任務。(請參閱 配置任務 以獲取類別列表。)
建立排程任務
請使用以下一般程序來建立排程任務(更詳細的資訊如下):
步驟
- 建立一個
ScheduledTask
物件並配置一般屬性。 - 建立一個
ScheduleDetails
物件來定義任務執行的排程,並將其新增到ScheduledTask
物件中。 - 創建一個任務參數類來定義要執行的任務,並將其添加到
ScheduledTask
對象中。每種類型的任務都有不同的任務參數類。請注意,同步用戶和檢查軟體更新任務不需要任務參數類。 - 使用
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
物件以供其他排程任務日後重複使用。使用以下一般程序來建立排程:
步驟
- 創建一個
ScheduleDetails
對象並設置重複類型。 - 建立一個與重複類型相對應的
ScheduleParameters
物件,配置運行的重複性和開始時間,並將其添加到ScheduledTask
物件中。可用的ScheduleParameters
物件包括DailyScheduleParameters
、HourlyScheduleParameters
、MonthlyScheduleParameters
和OnceOnlyScheduleParameters
。 - 可選擇在
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 類別對租戶不可用。 |
使用以下一般程序來建立和配置任務物件:
步驟
- 從與您正在建立的排程任務類型相對應的類別中創建任務參數對象。
注意
同步使用者和檢查軟體更新任務不需要配置。對於這些任務,不要創建任務參數類別。 - 配置任務參數物件以定義任務的行為:
- 每個類別定義了您需要配置的不同屬性。
- 若干任務參數類別需要
ComputerFilter
物件來識別要操作的電腦。 - 根據任務參數對象的類型,您可能需要添加
Recipients
、TagFilter
或TimeRange
對象。
接下來需執行的動作
例如,建立一個
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 時,排程任務在執行後會自動刪除。 |
使用以下一般程序來建立、執行和刪除排程任務:
步驟
- 建立並配置
ScheduledTask
物件:- 將排程任務設置為立即執行。
- 將任務設置為僅運行一次,以確保不會發生後續運行。
- 根據需要創建和配置任務詳細信息。
- 創建一個
ScheduledTasksApi
對象,並使用它在Server & Workload Security保護上創建計劃任務。 - 使用
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保護上建立了一個掃瞄網路中電腦的排程任務,並每兩天執行一次。然而,您現在需要進行掃瞄,因此您立即執行了該排程任務。
使用以下一般程序來執行排程任務:
步驟
- 建立一個
ScheduledTask
物件並將runNow
屬性設為true
。不要設置其他屬性。 - 獲取現有排程任務的 ID 以執行。
- 創建一個
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 參考中的 修改排程任務 操作。