Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Trong Windows Task Scheduler, bạn có thể chạy các tác vụ theo lịch trình và sau khi sự kiện cụ thể được đăng ký trong nhật ký. (Nó đã được mô tả trong bài viết “Trình kích hoạt sự kiện trong Windows“.) Trong bài viết này, chúng tôi sẽ xem xét cách tự động bắt đầu tác vụ của Bộ lập lịch sau khi tác vụ trước đó hoàn thành . Hãy xem thuật toán để định cấu hình các phần phụ thuộc của việc chạy các tác vụ của Trình lập lịch biểu mà bạn có thể tùy chỉnh để đáp ứng nhu cầu của mình.

Trong trường hợp của tôi, sau khi một tập lệnh đã được hoàn thành, tôi phải bắt đầu một tập lệnh khác từ một tài khoản người dùng khác. Vì vậy, những hành động này không thể được thống nhất trong một nhiệm vụ duy nhất.

Giả sử, chúng ta phải bắt đầu Pong Tác vụ của bộ lập lịch sau Ping nhiệm vụ được hoàn thành. Khi bất kỳ nhiệm vụ nào được bắt đầu hoặc hoàn thành, thông tin về sự kiện này sẽ được ghi vào nhật ký hệ thống. Chúng tôi sẽ tập trung vào sự kiện hoàn thành nhiệm vụ Ping.

Mở Tác vụ Người lập lịch biểu bảng điều khiển ( Taskschd.msc ), xác định vị trí và chọn sự kiện Ping và trong bảng điều khiển dưới cùng, hãy chuyển đến Lịch sử tab, chứa thông tin về tất cả các sự kiện liên quan đến tác vụ này. Chúng tôi cần sự kiện có ID sự kiện 102 (Nhiệm vụ đã hoàn thành) được tạo sau khi nhiệm vụ hoàn thành.

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Mở mô tả sự kiện chi tiết bằng cách đi tới Chi tiết và bật Chế độ xem XML của sự kiện. Theo dữ liệu XML, bạn có thể nhận được tất cả các chi tiết của sự kiện cần thiết để tạo một bộ lọc. Đặc biệt, chúng tôi cần:

EventID :102
Tên nhà cung cấp :Microsoft-Windows-TaskScheduler
Kênh :Microsoft-Windows-TaskScheduler / Operational
TaskName :\ ping

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Khi tạo trình kích hoạt cho nhiệm vụ Pong, chúng ta phải tạo điều kiện kích hoạt để tác vụ bắt đầu khi sự kiện có ID 102 xuất hiện trong nhật ký (Trình kích hoạt tác vụ Trên một sự kiện ). Nhưng vấn đề là EventID 102 xuất hiện sau khi hoàn thành bất kỳ tác vụ nào, không chỉ tác vụ Ping. Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Tuy nhiên, có thể tạo điều kiện linh hoạt hơn để lựa chọn sự kiện ( Tùy chỉnh ) nếu bộ lọc tiêu chuẩn không giúp chọn sự kiện đủ chính xác. Nhấp vào Bộ lọc sự kiện mới :

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

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

Nhật ký Sự kiện :Microsoft-Windows-TaskScheduler / Operational

Nguồn sự kiện :TaskScheduler

Danh mục công việc :Nhiệm vụ hoàn thành

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Sau đó, chuyển đến XML và xem chế độ xem bộ lọc sau ( XPath ):

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

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Thay đổi mã XPath thành mã sau, mã này sẽ lọc nhật ký và tìm kiếm sự kiện TaskCompleted cho tác vụ \ ping:

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

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành

Sau khi sự kiện đã được thêm, hãy thử bắt đầu tác vụ ping. Khi hoàn thành, nhiệm vụ chơi bóng bàn phải được bắt đầu ngay lập tức.

Giải thích XPath được hiển thị bên dưới:

Lên lịch để Công việc bắt đầu khi Một Công việc khác hoàn thành