Windows Task Scheduler cho phép bạn chạy các tác vụ theo lịch trình và khi một sự kiện nhất định xuất hiện trong Event Viewer (được mô tả chi tiết trong bài Using Event Triggers in Windows). In this article, we’ll show you how to create a scheduled task that automatically runs after another task completes successfully.

Giả sử bạn muốn chạy một Pongr nhiệm vụ sau Ping công việc hoàn thành thành công.

  1. Mở Task Scheduler bàn điều khiển (Taskschd.msc) và tìm Ping;
  2. Nhấn vào History trên thanh tác vụ dưới cùng. Nó chứa lịch sử đầy đủ của các sự kiện liên quan đến nhiệm vụ được lên lịch này;

    Nếu Trình lập lịch tác vụ chỉ hiển thị History (Disabled)bạn cần nhấp vào Enable All Task History trong ngăn Tác vụ bên phải. Sau đó, tất cả các sự kiện nhiệm vụ sẽ được hiển thị trong tab Lịch sử.

  3. Chúng tôi cần sự kiện có ID sự kiện 102 (Task completed) xuất hiện sau khi hoàn thành thành công nhiệm vụ (Task Scheduler successfully finished);
  4. Mở thuộc tính của sự kiện này, đi tới Detailsvà chuyển sang XML View của sự kiện. Chúng tôi sẽ sử dụng dữ liệu sau từ XML khi xây dựng câu lệnh điều kiện cho tác vụ được lập lịch mới:
EventID: 102
Provider-Name: Microsoft-Windows-TaskScheduler
Channel: Microsoft-Windows-TaskScheduler/Operational
TaskName: MyTasksPing

Bảo đảm Operational nhật ký được bật cho các sự kiện của Trình lập lịch tác vụ. Mở bảng điều khiển Trình xem sự kiện (eventvwr.msc) và đi tới Nhật ký ứng dụng và dịch vụ -> Microsoft -> Windows -> Bộ lập lịch tác vụ -> Hoạt động. Nhấp chuột phải vào mục và chọn Enable Log. bật nhật ký sự kiện của trình lập lịch tác vụ

Bây giờ bạn có thể tạo một Pongd nhiệm vụ.

Khi bạn tạo một kích hoạt cho một công việc Pong, bạn phải chỉ định điều kiện để kích hoạt công việc khi sự kiện 102 xuất hiện (New Trigger -> On an event). Nhưng vấn đề là EventID 102 xuất hiện sau khi bất kỳ tác vụ nào được hoàn thành, không chỉ tác vụ Ping.

task dumpuler: tạo trình kích hoạt sự kiện

Bạn có thể tạo điều kiện linh hoạt hơn để lựa chọn sự kiện (Custom) khi bộ lọc tiêu chuẩn không giúp bạn chọn một sự kiện đủ chính xác. Bấm vào New Event Filter.

Tạo một bộ lọc mới bằng cách chỉ định dữ liệu đã truy xuất trước đó từ Chế độ xem XML của sự kiện.

  • Events Logs: Microsoft-Windows-TaskScheduler / Operational
  • Event source: Bảng kế hoạch
  • Task category: Nhiệm vụ hoàn thành

bộ lọc sự kiện nhiệm vụ mới theo nhật ký trình lập lịch tác vụ

Nhấn vào XML. Nó sẽ hiển thị biểu diễn XML của bộ lọc của bạn (XPath):

<QueryList>
<Query  Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]</Select>
</Query>
</QueryList>

Kiểm tra Edit query manually. Bạn cần liên kết bộ lọc của mình với tác vụ MyTasksPing. Để thực hiện việc này, hãy thay thế dòng sau trong bộ lọc XML:

*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]

với:

*[EventData [@Name="TaskSuccessEvent"][Data[@Name="TaskName"]='MyTasksPing']]

chỉnh sửa bộ lọc sự kiện: thêm phụ thuộc

Lưu cài đặt bộ lọc của bạn trong tab Trình kích hoạt (Bộ lọc sự kiện tùy chỉnh) và lưu tác vụ Pong.

Bây giờ hãy thử chạy tác vụ Ping (theo cách thủ công, lập lịch hoặc sử dụng PowerShell: Start-ScheduledTask mytasksping). Khi nhiệm vụ Ping hoàn thành thành công, công việc Pong sẽ được bắt đầu ngay lập tức.

chạy nhiệm vụ theo lịch trình này đến nhiệm vụ khác

Định dạng XPath được hiển thị bên dưới.

Giải thích XPath

Bằng cách này, bạn có thể thiết lập toàn bộ chuỗi nhiệm vụ, để chạy các tác vụ của bộ lập lịch theo trình tự. Tương tự, bạn có thể tạo bất kỳ phụ thuộc nào khác trong các tác vụ của Bộ lập lịch Windows. Ví dụ: nếu công việc sao lưu hoàn tất thành công, bạn chạy một tập lệnh và nếu sao lưu không thành công, bạn cần chạy một tập lệnh để dọn dẹp hoặc sửa trạng thái hiện tại.