Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

กำหนดเวลางานเพื่อเริ่มต้นเมื่องานอื่นเสร็จสิ้น

ใน 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 แสดงอยู่ด้านล่าง:

กำหนดเวลางานเพื่อเริ่มต้นเมื่องานอื่นเสร็จสิ้น