Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

ใน Windows Server 2008 (Vista) มีฟีเจอร์ใหม่ที่ผูก Task Scheduler กับ Event Logs ได้ ใช้สำหรับรันสคริปต์หรือส่งอีเมลแจ้งเตือนเมื่อมี Event เฉพาะเกิดขึ้น มาดูรายละเอียด

การรัน Task เมื่อ Event เกิดขึ้น ขึ้นอยู่กับการผสานรวม Task Scheduler และ Event Viewer สามารถกำหนด Task ให้กับ Event ใดๆ ได้โดยตรงใน Event Viewer Console ตอบสนองต่อ Event โดยการรันสคริปต์หรือส่งอีเมลแจ้งเตือนให้ Admin (หรือผู้ใช้รายอื่น)

สมมติ ต้องการแจ้งเตือน Security Admin เมื่อบัญชี Active Directory ถูกล็อก Event ID ของการล็อกคือ 4740 บันทึกใน Security Log บน Domain Controller เปิด Event Viewer (eventvwr.msc) ค้นหา Event นี้ คลิกขวา เลือก Attach Task To This Event

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

Create Basic Task Wizard จะเปิดขึ้น ตั้งชื่อ Task (สร้างอัตโนมัติ: Security_Microsoft-Windows-Security-Auditing_4740 ใช้ได้)

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

ขั้นตอนถัดไป ระบุ Log Type, Source, Event ID (กรอกอัตโนมัติ ไม่สามารถแก้ไขได้)

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

เลือกประเภทการตอบสนอง:

  • Start a program
  • Send an e-mail
  • Display a message

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

เลือกส่งอีเมล ระบุ Sender, Recipient, SMTP Server, Subject, Body

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

ขั้นสุดท้าย ดูการตั้งค่า Trigger Task ใหม่จะปรากฏใน Task Scheduler Library -> Event Viewer Tasks

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

ที่นี่สามารถแก้ไข Trigger และทดสอบการตอบสนองได้ Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

Tip หากต้องผูก Trigger เดียวกับหลาย EventID ให้คั่นด้วยคอมม่า

Trigger ทำงานแล้ว เมื่อมี AD Account ถูกล็อก จะส่งอีเมลแจ้งเตือนไปที่ที่ระบุ

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

Note ฟีเจอร์เดียวกันใน Windows Server 2003 และก่อนหน้า ใช้คอนโซล eventtriggers.exe ตัวอย่างคำสั่งผูกสคริปต์ PowerShell กับ Event 4740:

eventtriggers /create /TR “Lock Account” /TK “C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe c:\script\SendEmailAlert.ps1″ /L Security /EID 4740

การแจ้งเตือนนี้ไม่ค่อยรายละเอียด ต้องเปิด Event Viewer เพื่อดูรายละเอียด ลองแนบข้อมูลจาก Event Log เข้าไปในอีเมล ใช้ wevtutil ดึงข้อมูล Event จาก Windows Logs เพื่อดู Event 4740 ล่าสุดจาก Security Log:

wevtutil qe Security /q:"*[System[(EventID=4740)]]" /f:text /rd:true /c:1

สร้างสคริปต์ query.cmd 2 บรรทัด: บรรทัดแรกลบไฟล์ล็อกเก่า บรรทัดที่สองดึง Event ล่าสุดบันทึกลงไฟล์:

del c:\script\query.txt
wevtutil qe Security /q:"*[System[(EventID=4740)]]" /f:text /rd:true /c:1 > c:\script\query.txt

เปิดการตั้งค่า Trigger ใน Task Scheduler แท็บ Actions เพิ่ม Action ใหม่: Start script query.cmd ย้ายขึ้นไปบนสุด (รันก่อน)

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

แก้ไข Action ส่งอีเมล: เลือก c:\script\query.txt เป็นไฟล์แนบ

Note ต้องตั้งค่า Run with highest privileges ใน Task

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

ทดสอบ Task อีกครั้ง Admin จะได้อีเมลพร้อมไฟล์แนบที่มีข้อมูลชื่อบัญชี เวลาล็อก และรายละเอียดอื่นๆ

Windows Event Triggers: ตั้งค่า Task Scheduler ให้ทำงานเมื่อมี Event Log

Tip การใช้ Event Triggers แจ้งเตือน Admin ไม่ใช่การแทนที่ระบบ Monitoring เต็มรูปแบบเช่น SCOM หรือ Zenoss แต่เป็นเครื่องมือ Monitoring และแจ้งเตือน Built-in เรียบง่ายสำหรับธุรกิจขนาดเล็กที่ไม่ต้องการลงทุน

การผูก Task กับ Event Log ทำงานได้ใน Windows ทุกเวอร์ชันตั้งแต่ Server 2008 / Vista ฟีเจอร์นี้ช่วยแจ้งเตือน Admin เรื่องปัญหาเซิร์ฟเวอร์สำคัญได้อย่างรวดเร็ว

Note ใน Windows Server 2012 R2 Task Scheduler ไม่รองรับส่งอีเมล (Deprecated) ควรใช้ PowerShell 3.0 – Send-MailMessage