Contact
Line : comsiam
Contact
Line : comsiam

งานจำนวนมากบน Windows Server เป็นงานที่ต้องทำซ้ำทุกวัน เช่น Backup, Cleanup Log, ตรวจสอบ Service, Sync ไฟล์, รีสตาร์ต Service หรือรัน PowerShell Script
หากต้องทำด้วยมือทุกครั้ง นอกจากจะเสียเวลาแล้ว ยังมีโอกาสลืมและเกิด Human Error ได้ง่าย
Scheduled Task คือเครื่องมือที่ช่วยให้ Windows Server 2025 ทำงานเหล่านี้โดยอัตโนมัติ และเมื่อใช้ร่วมกับ PowerShell จะสามารถสร้างระบบ Automation ได้อย่างทรงพลัง
Scheduled Task คือระบบตั้งเวลาให้ Windows รันคำสั่งหรือโปรแกรมโดยอัตโนมัติ
ตัวอย่างงานที่นิยมใช้
ถือเป็นพื้นฐานสำคัญของ Automation บน Windows Server
ข้อดีสำคัญ
องค์กรส่วนใหญ่ใช้ Scheduled Task ควบคู่กับ PowerShell อยู่แล้ว
ใช้คำสั่ง
Get-ScheduledTask
ระบบจะแสดง Task ทั้งหมดในเครื่อง
ตัวอย่าง
Get-ScheduledTask |
Where-Object TaskName -like "*Backup*"
ช่วยค้นหา Task ได้รวดเร็ว
ตัวอย่าง
Get-ScheduledTask `
-TaskName "DailyBackup"
ใช้ตรวจสอบว่า Task ยังอยู่และพร้อมทำงานหรือไม่
ตัวอย่าง
Get-ScheduledTaskInfo `
-TaskName "DailyBackup"
ข้อมูลสำคัญที่แสดง
Action คือสิ่งที่ Task จะทำ
ตัวอย่าง
$action = New-ScheduledTaskAction `
-Execute "powershell.exe" `
-Argument "-File C:\Scripts\Backup.ps1"
เมื่อถึงเวลาที่กำหนด Script จะถูกรันอัตโนมัติ
Trigger คือเวลาที่ Task จะเริ่มทำงาน
ตัวอย่าง
$trigger = New-ScheduledTaskTrigger `
-Daily `
-At 22:00
ระบบจะรันทุกวันเวลา 22:00 น.
กำหนดบัญชีที่ใช้รัน
ตัวอย่าง
$principal = New-ScheduledTaskPrincipal `
-UserId "SYSTEM" `
-RunLevel Highest
เหมาะสำหรับงานระดับ Server
รวมทุกส่วนเข้าด้วยกัน
Register-ScheduledTask `
-TaskName "DailyBackup" `
-Action $action `
-Trigger $trigger `
-Principal $principal
Task จะถูกสร้างทันที
ตัวอย่าง
Start-ScheduledTask `
-TaskName "DailyBackup"
ใช้สำหรับทดสอบก่อนใช้งานจริง
ตัวอย่าง
Stop-ScheduledTask `
-TaskName "DailyBackup"
ใช้หยุดงานที่กำลังรันอยู่
ตัวอย่าง
Disable-ScheduledTask `
-TaskName "DailyBackup"
Task จะยังอยู่ แต่ไม่ทำงาน
ตัวอย่าง
Enable-ScheduledTask `
-TaskName "DailyBackup"
ตัวอย่าง
Unregister-ScheduledTask `
-TaskName "DailyBackup" `
-Confirm:$false
ควรตรวจสอบก่อนลบเสมอ
ตัวอย่าง
$trigger = New-ScheduledTaskTrigger `
-Once `
-At (Get-Date) `
-RepetitionInterval (New-TimeSpan -Hours 1)
เหมาะสำหรับ Monitoring Script
ตัวอย่าง
$trigger = New-ScheduledTaskTrigger `
-AtStartup
ใช้สำหรับ
ตัวอย่าง
$trigger = New-ScheduledTaskTrigger `
-AtLogOn
เหมาะสำหรับ Script ฝั่ง User
ตัวอย่าง
$action = New-ScheduledTaskAction `
-Execute "powershell.exe" `
-Argument "-ExecutionPolicy Bypass -File C:\Scripts\CheckService.ps1"
เป็นรูปแบบที่นิยมมากในองค์กร
ตัวอย่าง
Get-ScheduledTask |
Where-Object State -eq Disabled
หรือดูผลลัพธ์
Get-ScheduledTaskInfo
ช่วยวิเคราะห์ปัญหา Automation
ตัวอย่าง
Export-ScheduledTask `
-TaskName "DailyBackup"
ได้ไฟล์ XML สำหรับเก็บสำรอง
ตัวอย่าง
Register-ScheduledTask `
-Xml (Get-Content D:\Backup\Task.xml | Out-String) `
-TaskName "DailyBackup"
ใช้ย้าย Task ระหว่าง Server ได้
ตัวอย่างงานที่นิยม
Scheduled Task คือพื้นฐานของ Automation เกือบทั้งหมดบน Windows Server
ปัญหาที่พบเป็นประจำ
PowerShell ช่วยตรวจสอบปัญหาเหล่านี้ได้ง่ายมาก
ควรทำดังนี้
จะช่วยให้ระบบ Automation มีความเสถียรมากขึ้น
| หัวข้อ | Task Scheduler | PowerShell |
|---|---|---|
| เริ่มต้นง่าย | ดีมาก | ปานกลาง |
| สร้าง Task เดียว | ดี | ดี |
| สร้างหลาย Task | ช้า | เร็วมาก |
| Automation | ต่ำ | สูง |
| Migration | จำกัด | ดีมาก |
| Enterprise Scale | ปานกลาง | ยอดเยี่ยม |
PowerShell เหมาะกับองค์กรที่มี Task จำนวนมาก
งานที่นิยมใช้ Scheduled Task มากที่สุด
ทั้งหมดนี้สามารถทำได้โดยไม่ต้องมีคนเฝ้า Server
Scheduled Task เป็นเครื่องมือสำคัญสำหรับการทำ Automation บน Windows Server 2025 และเมื่อใช้งานร่วมกับ PowerShell จะช่วยให้ผู้ดูแลระบบลดงานซ้ำ เพิ่มความแม่นยำ และสร้างระบบอัตโนมัติได้อย่างมีประสิทธิภาพ
ทีมงาน comsiam แนะนำให้ Administrator ทุกคนเรียนรู้การสร้าง Scheduled Task ด้วย PowerShell เพราะเป็นพื้นฐานของงาน Automation เกือบทุกประเภทในองค์กร และ comsiam มองว่าการเปลี่ยนงานที่ต้องทำทุกวันให้เป็นงานอัตโนมัติ คือหนึ่งในวิธีเพิ่มประสิทธิภาพการดูแลระบบที่คุ้มค่าที่สุด
ในแต่ละสัปดาห์ คุณใช้เวลากี่ชั่วโมงกับงานที่ทำซ้ำเดิมทุกวัน และงานเหล่านั้นสามารถเปลี่ยนเป็น Scheduled Task ได้กี่งาน?