สร้าง Scheduled Task บน Windows Server 2025 ให้ทำงานอัตโนมัติ

งานจำนวนมากบน Windows Server เป็นงานที่ต้องทำซ้ำทุกวัน เช่น Backup, Cleanup Log, ตรวจสอบ Service, Sync ไฟล์, รีสตาร์ต Service หรือรัน PowerShell Script

หากต้องทำด้วยมือทุกครั้ง นอกจากจะเสียเวลาแล้ว ยังมีโอกาสลืมและเกิด Human Error ได้ง่าย

Scheduled Task คือเครื่องมือที่ช่วยให้ Windows Server 2025 ทำงานเหล่านี้โดยอัตโนมัติ และเมื่อใช้ร่วมกับ PowerShell จะสามารถสร้างระบบ Automation ได้อย่างทรงพลัง


① Scheduled Task คืออะไร

Scheduled Task คือระบบตั้งเวลาให้ Windows รันคำสั่งหรือโปรแกรมโดยอัตโนมัติ

ตัวอย่างงานที่นิยมใช้

  • Backup รายวัน
  • ล้าง Log
  • Health Check
  • Restart Service
  • Sync ข้อมูล
  • รัน Script
  • ส่งรายงาน

ถือเป็นพื้นฐานสำคัญของ Automation บน Windows Server


② ทำไมต้องใช้ Scheduled Task

ข้อดีสำคัญ

  • ลดงานซ้ำ
  • ลด Human Error
  • ทำงานได้ 24 ชั่วโมง
  • รองรับ PowerShell Script
  • รองรับ Monitoring
  • ช่วยลดภาระของ Administrator

องค์กรส่วนใหญ่ใช้ Scheduled Task ควบคู่กับ PowerShell อยู่แล้ว


③ ดู Scheduled Task ทั้งหมด

ใช้คำสั่ง

Get-ScheduledTask

ระบบจะแสดง Task ทั้งหมดในเครื่อง


④ ค้นหา Scheduled Task

ตัวอย่าง

Get-ScheduledTask |
Where-Object TaskName -like "*Backup*"

ช่วยค้นหา Task ได้รวดเร็ว


⑤ ดูสถานะ Task

ตัวอย่าง

Get-ScheduledTask `
-TaskName "DailyBackup"

ใช้ตรวจสอบว่า Task ยังอยู่และพร้อมทำงานหรือไม่


⑥ ดูประวัติการทำงาน

ตัวอย่าง

Get-ScheduledTaskInfo `
-TaskName "DailyBackup"

ข้อมูลสำคัญที่แสดง

  • Last Run Time
  • Last Result
  • Next Run Time

⑦ สร้าง Action

Action คือสิ่งที่ Task จะทำ

ตัวอย่าง

$action = New-ScheduledTaskAction `
-Execute "powershell.exe" `
-Argument "-File C:\Scripts\Backup.ps1"

เมื่อถึงเวลาที่กำหนด Script จะถูกรันอัตโนมัติ


⑧ สร้าง Trigger

Trigger คือเวลาที่ Task จะเริ่มทำงาน

ตัวอย่าง

$trigger = New-ScheduledTaskTrigger `
-Daily `
-At 22:00

ระบบจะรันทุกวันเวลา 22:00 น.


⑨ สร้าง Principal

กำหนดบัญชีที่ใช้รัน

ตัวอย่าง

$principal = New-ScheduledTaskPrincipal `
-UserId "SYSTEM" `
-RunLevel Highest

เหมาะสำหรับงานระดับ Server


⑩ สร้าง Scheduled Task

รวมทุกส่วนเข้าด้วยกัน

Register-ScheduledTask `
-TaskName "DailyBackup" `
-Action $action `
-Trigger $trigger `
-Principal $principal

Task จะถูกสร้างทันที


⑪ รัน Task ด้วยตนเอง

ตัวอย่าง

Start-ScheduledTask `
-TaskName "DailyBackup"

ใช้สำหรับทดสอบก่อนใช้งานจริง


⑫ หยุด Task

ตัวอย่าง

Stop-ScheduledTask `
-TaskName "DailyBackup"

ใช้หยุดงานที่กำลังรันอยู่


⑬ ปิดใช้งาน Task

ตัวอย่าง

Disable-ScheduledTask `
-TaskName "DailyBackup"

Task จะยังอยู่ แต่ไม่ทำงาน


⑭ เปิดใช้งาน Task อีกครั้ง

ตัวอย่าง

Enable-ScheduledTask `
-TaskName "DailyBackup"

⑮ ลบ Scheduled Task

ตัวอย่าง

Unregister-ScheduledTask `
-TaskName "DailyBackup" `
-Confirm:$false

ควรตรวจสอบก่อนลบเสมอ


⑯ สร้าง Task ให้รันทุกชั่วโมง

ตัวอย่าง

$trigger = New-ScheduledTaskTrigger `
-Once `
-At (Get-Date) `
-RepetitionInterval (New-TimeSpan -Hours 1)

เหมาะสำหรับ Monitoring Script


⑰ สร้าง Task ตอนเปิดเครื่อง

ตัวอย่าง

$trigger = New-ScheduledTaskTrigger `
-AtStartup

ใช้สำหรับ

  • Start Service
  • Mount Drive
  • Health Check

⑱ สร้าง Task ตอน Login

ตัวอย่าง

$trigger = New-ScheduledTaskTrigger `
-AtLogOn

เหมาะสำหรับ Script ฝั่ง User


⑲ รัน PowerShell Script อัตโนมัติ

ตัวอย่าง

$action = New-ScheduledTaskAction `
-Execute "powershell.exe" `
-Argument "-ExecutionPolicy Bypass -File C:\Scripts\CheckService.ps1"

เป็นรูปแบบที่นิยมมากในองค์กร


⑳ ตรวจสอบ Task ที่ล้มเหลว

ตัวอย่าง

Get-ScheduledTask |
Where-Object State -eq Disabled

หรือดูผลลัพธ์

Get-ScheduledTaskInfo

ช่วยวิเคราะห์ปัญหา Automation


㉑ Export Scheduled Task

ตัวอย่าง

Export-ScheduledTask `
-TaskName "DailyBackup"

ได้ไฟล์ XML สำหรับเก็บสำรอง


㉒ Import Scheduled Task

ตัวอย่าง

Register-ScheduledTask `
-Xml (Get-Content D:\Backup\Task.xml | Out-String) `
-TaskName "DailyBackup"

ใช้ย้าย Task ระหว่าง Server ได้


㉓ Scheduled Task กับ PowerShell Automation

ตัวอย่างงานที่นิยม

  • Backup รายวัน
  • ตรวจสอบ Disk
  • ตรวจสอบ Service
  • ส่ง Email Alert
  • Export Report
  • Cleanup Log

Scheduled Task คือพื้นฐานของ Automation เกือบทั้งหมดบน Windows Server


㉔ ปัญหาที่พบบ่อย

ปัญหาที่พบเป็นประจำ

  • Script Path ผิด
  • Permission ไม่พอ
  • Execution Policy Block
  • Password หมดอายุ
  • Trigger ผิดเวลา
  • Account ถูก Disable

PowerShell ช่วยตรวจสอบปัญหาเหล่านี้ได้ง่ายมาก


㉕ Best Practice สำหรับ Scheduled Task

ควรทำดังนี้

  • ใช้ Service Account แยก
  • ทดสอบ Script ก่อนใช้งานจริง
  • เก็บ Log ทุกครั้ง
  • ตั้งชื่อ Task ให้สื่อความหมาย
  • ตรวจสอบ Last Run Result เป็นประจำ
  • Backup Task สำคัญ

จะช่วยให้ระบบ Automation มีความเสถียรมากขึ้น


㉖ GUI หรือ PowerShell ดีกว่า

หัวข้อTask SchedulerPowerShell
เริ่มต้นง่ายดีมากปานกลาง
สร้าง Task เดียวดีดี
สร้างหลาย Taskช้าเร็วมาก
Automationต่ำสูง
Migrationจำกัดดีมาก
Enterprise Scaleปานกลางยอดเยี่ยม

PowerShell เหมาะกับองค์กรที่มี Task จำนวนมาก


㉗ ตัวอย่างใช้งานจริงในองค์กร

งานที่นิยมใช้ Scheduled Task มากที่สุด

  • Backup Server เวลา 22:00
  • ตรวจสอบ Disk ทุก 1 ชั่วโมง
  • Restart Service เมื่อพบปัญหา
  • ส่งรายงานทุกเช้า
  • ลบไฟล์ชั่วคราวทุกคืน
  • Export Event Log รายสัปดาห์

ทั้งหมดนี้สามารถทำได้โดยไม่ต้องมีคนเฝ้า Server


㉘ สรุป

Scheduled Task เป็นเครื่องมือสำคัญสำหรับการทำ Automation บน Windows Server 2025 และเมื่อใช้งานร่วมกับ PowerShell จะช่วยให้ผู้ดูแลระบบลดงานซ้ำ เพิ่มความแม่นยำ และสร้างระบบอัตโนมัติได้อย่างมีประสิทธิภาพ

ทีมงาน comsiam แนะนำให้ Administrator ทุกคนเรียนรู้การสร้าง Scheduled Task ด้วย PowerShell เพราะเป็นพื้นฐานของงาน Automation เกือบทุกประเภทในองค์กร และ comsiam มองว่าการเปลี่ยนงานที่ต้องทำทุกวันให้เป็นงานอัตโนมัติ คือหนึ่งในวิธีเพิ่มประสิทธิภาพการดูแลระบบที่คุ้มค่าที่สุด

คำถามชวนคิด

ในแต่ละสัปดาห์ คุณใช้เวลากี่ชั่วโมงกับงานที่ทำซ้ำเดิมทุกวัน และงานเหล่านั้นสามารถเปลี่ยนเป็น Scheduled Task ได้กี่งาน?