ใน Windows Task Scheduler คุณสามารถเรียกใช้งานได้ทั้งตามกำหนดเวลาและหลังจากลงทะเบียนเหตุการณ์เฉพาะในบันทึก (มีการอธิบายไว้ในบทความ “ทริกเกอร์เหตุการณ์ใน Windows“) ในบทความนี้ เราจะพิจารณาวิธีเริ่มงานตัวจัดกำหนดการโดยอัตโนมัติหลังจากงานก่อนหน้าเสร็จสิ้น . มาดูอัลกอริทึมเพื่อกำหนดค่าการพึ่งพาของงานตัวจัดกำหนดการซึ่งคุณสามารถปรับแต่งให้ตรงกับความต้องการของคุณได้
ในกรณีของฉัน หลังจากสคริปต์หนึ่งเสร็จสิ้น ฉันต้องเริ่มสคริปต์อื่นจากบัญชีผู้ใช้อื่น ดังนั้นการกระทำเหล่านี้จึงไม่สามารถรวมกันเป็นงานเดียวได้
สมมติว่าเราต้องเริ่ม โป่ง งานตัวกำหนดเวลาหลังจาก Ping เสร็จสิ้นภารกิจ เมื่องานใดๆ เริ่มต้นหรือเสร็จสิ้น ข้อมูลเกี่ยวกับเหตุการณ์นี้จะถูกลงทะเบียนในบันทึกของระบบ เราจะเน้นที่งานปิงเสร็จสิ้น
เปิด งาน กำหนดการ คอนโซล (Taskschd.msc ) ค้นหาและเลือกเหตุการณ์ Ping และในแผงด้านล่าง ให้ไปที่ ประวัติ แท็บซึ่งมีข้อมูลเกี่ยวกับเหตุการณ์ทั้งหมดที่เกี่ยวข้องกับงานนี้ เราต้องการกิจกรรมที่มีรหัสเหตุการณ์ 102 (งานเสร็จสมบูรณ์) ซึ่งสร้างขึ้นหลังจากงานเสร็จสิ้น
เปิดคำอธิบายเหตุการณ์โดยละเอียดโดยไปที่ รายละเอียด แท็บและเปิดใช้งาน มุมมอง XML ของเหตุการณ์ ตามข้อมูล XML คุณสามารถดูรายละเอียดทั้งหมดของเหตุการณ์ที่จำเป็นในการสร้างตัวกรอง โดยเฉพาะอย่างยิ่ง เราต้องการ:
รหัสกิจกรรม :102ชื่อผู้ให้บริการ :Microsoft-Windows-TaskScheduler
ช่อง :Microsoft-Windows-TaskScheduler/Operational
TaskName :\ping
เมื่อสร้างทริกเกอร์สำหรับงานปิงปอง เราต้องสร้างเงื่อนไขทริกเกอร์สำหรับงานที่จะเริ่มต้นเมื่อเหตุการณ์ที่มี ID 102 ปรากฏในบันทึก (ทริกเกอร์งาน ในเหตุการณ์ ). แต่ปัญหาคือ EventID 102 ปรากฏขึ้นหลังจากงานใด ๆ เสร็จสิ้น ไม่ใช่แค่งาน Ping
อย่างไรก็ตาม สามารถสร้างเงื่อนไขที่ยืดหยุ่นมากขึ้นสำหรับการเลือกเหตุการณ์ได้ (กำหนดเอง ) หากตัวกรองมาตรฐานไม่ช่วยในการเลือกเหตุการณ์ให้แม่นยำเพียงพอ คลิก ตัวกรองเหตุการณ์ใหม่ :
สร้างตัวกรองเหตุการณ์ใหม่โดยระบุข้อมูลจากมุมมอง XML ของเหตุการณ์:
บันทึกเหตุการณ์ :Microsoft-Windows-TaskScheduler/ปฏิบัติการที่มาของเหตุการณ์ :TaskScheduler
หมวดงาน :งานเสร็จสิ้น
จากนั้นไปที่ XML และดูที่มุมมองตัวกรองต่อไปนี้ (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>
เปลี่ยนรหัส XPath เป็นรหัสต่อไปนี้ ซึ่งจะกรองบันทึกและค้นหาเหตุการณ์ TaskCompleted สำหรับงาน \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>
หลังจากเพิ่มกิจกรรมแล้ว ให้ลองเริ่มงาน ping เสร็จแล้วก็ต้องเริ่มงานปิงปองทันที
คำอธิบาย XPath แสดงอยู่ด้านล่าง: