วิธีสร้างและจัดการงานที่กำหนดเวลาไว้ใน PowerShell
ในฐานะผู้ใช้ Windows คุณอาจคุ้นเคยกับแนวคิดของงานที่กำหนดเวลาไว้ Windows Task Scheduler เป็นเครื่องมือสำคัญสำหรับการทำงานอัตโนมัติบนเครื่อง Windows ช่วยให้คุณสามารถกำหนดเวลาและรันงานต่างๆ เป็นประจำ ทำให้คุณไม่ต้องดำเนินการด้วยตนเอง งานเหล่านี้เป็นงานอัตโนมัติที่สามารถกำหนดเวลาให้ทำงานตามเวลาที่กำหนดบนคอมพิวเตอร์ของคุณ เพื่อช่วยให้คุณทำงานที่ซ้ำๆ ได้โดยอัตโนมัติ เช่น การสำรองข้อมูล การอัพเดต และการบำรุงรักษาระบบ ในคู่มือที่ครอบคลุมนี้ ฉันจะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อจัดการงานที่กำหนดเวลาไว้โดยใช้ PowerShell ตั้งแต่การทำความเข้าใจ cmdlet ไปจนถึงการสร้างงานที่กำหนดเวลาไว้ การอัปเดตงานที่มีอยู่ การเปิดใช้งาน-ปิดใช้งานงานที่กำหนดเวลาไว้ และการแก้ไขปัญหาทั่วไป คู่มือนี้ครอบคลุมทั้งหมด
ข้อมูลเบื้องต้นเกี่ยวกับ Windows Task Scheduler และ PowerShell cmdlets
Windows Task Scheduler เป็นคุณสมบัติในตัวที่ช่วยให้คุณกำหนดเวลางานให้ทำงานโดยอัตโนมัติ คุณสามารถใช้มันเพื่อรันสคริปต์ เปิดแอพพลิเคชั่น และทำงานอื่นๆ ที่เกี่ยวข้องกับระบบ PowerShell เป็นภาษาสคริปต์ที่มีประสิทธิภาพซึ่งสามารถใช้เพื่อจัดการและทำให้งาน Windows เป็นอัตโนมัติ โดยมีชุด cmdlets ที่คุณสามารถใช้เพื่อสร้าง จัดการ และแก้ไขปัญหางานที่กำหนดเวลาไว้ เนื่องจาก PowerShell เป็นภาษาสคริปต์ จึงไม่น่าแปลกใจเลยที่คุณสามารถทำให้กระบวนการกำหนดเวลางานเป็นอัตโนมัติโดยใช้สคริปต์ PowerShell ซึ่งหมายความว่าคุณสามารถสร้างงานที่กำหนดเวลาไว้และจัดการงานเหล่านั้นได้ ซึ่งช่วยประหยัดเวลาและความพยายามในระยะยาว งานที่กำหนดเวลาไว้ของ PowerShell เป็นวิธีการดำเนินการสคริปต์ PowerShell บน Windows Server หรือเครื่องไคลเอ็นต์โดยอัตโนมัติ สามารถตั้งค่าให้ทำงานตามเวลาที่กำหนด ในบางวัน หรือเมื่อมีเหตุการณ์บางอย่างเกิดขึ้นได้ สิ่งนี้ทำให้เครื่องมือเหล่านี้เป็นเครื่องมือที่ทรงพลังอย่างยิ่งในการทำงานตามปกติโดยอัตโนมัติ และเพิ่มเวลาว่างให้กับสิ่งอื่น ๆ
หากต้องการเริ่มต้นใช้งานตามกำหนดเวลา คุณต้องเข้าใจแนวคิดพื้นฐานเบื้องหลังงานเหล่านั้น มีคำศัพท์สำคัญบางประการที่คุณควรคุ้นเคย:
- Task Scheduler: นี่คือเครื่องมือ Windows ในตัวที่ให้คุณกำหนดเวลางานให้ทำงานโดยอัตโนมัติ
- งาน: งานคือการดำเนินการเฉพาะที่คุณต้องการเรียกใช้ในเวลาหรือเหตุการณ์ที่ระบุ
- ทริกเกอร์: ทริกเกอร์คือเหตุการณ์เฉพาะที่จะทำให้งานรัน
- การดำเนินการ: การดำเนินการคืองานเฉพาะที่คุณต้องการเรียกใช้
ทำความเข้าใจคุณประโยชน์ของการใช้งานตามกำหนดการของ PowerShell
ก่อนที่จะเจาะลึกรายละเอียดทางเทคนิค สิ่งสำคัญคือต้องเข้าใจประโยชน์ของการใช้งานตามกำหนดการของ PowerShell ประการแรก งานตามกำหนดการของ PowerShell ช่วยให้คุณสามารถดำเนินการสคริปต์หรือคำสั่งได้โดยอัตโนมัติตามเวลาหรือช่วงเวลาที่กำหนด ซึ่งหมายความว่าคุณสามารถตั้งค่างานให้ทำงานโดยอัตโนมัติได้ แม้ว่าคุณจะไม่ได้อยู่ที่คอมพิวเตอร์ก็ตาม ซึ่งสามารถเพิ่มประสิทธิภาพการทำงานได้อย่างมาก และเพิ่มเวลาให้กับงานที่สำคัญกว่าได้
ประโยชน์หลักอีกประการหนึ่งของงานที่จัดกำหนดการไว้คือความยืดหยุ่น คุณสามารถสร้างงานให้รันครั้งเดียว รายวัน รายสัปดาห์ รายเดือน หรือแม้แต่ตามเวลาที่กำหนดตลอดทั้งวัน การปรับแต่งระดับนี้ช่วยให้คุณสามารถปรับแต่งการดำเนินงานให้เหมาะกับความต้องการเฉพาะของคุณได้ นอกจากนี้ ด้วย PowerShell คุณสามารถจัดการและแก้ไขงานที่กำหนดเวลาไว้ได้อย่างง่ายดาย ทำให้คุณควบคุมกระบวนการอัตโนมัติของคุณได้อย่างสมบูรณ์
สุดท้ายนี้ สามารถใช้ในการจัดการงานที่กำหนดเวลาไว้บนคอมพิวเตอร์ระยะไกลได้ ซึ่งจะมีประโยชน์ในสภาพแวดล้อมเครือข่าย
วิธีสร้างงานที่กำหนดเวลาไว้เพื่อเรียกใช้สคริปต์ PowerShell
วิธีที่ง่ายที่สุดในการสร้างงานที่กำหนดเวลาไว้คือการใช้ Task Scheduler GUI ในตัว โดยทำตามขั้นตอนเหล่านี้:
- เปิด Task Scheduler โดยพิมพ์ "Task Scheduler" ลงในแถบค้นหาของเมนู Start แล้วเลือกแอป "Task Scheduler"
คลิก "สร้างงาน" ในบานหน้าต่าง "การดำเนินการ" ทางด้านขวามือ
- ตั้งชื่อและคำอธิบายงานของคุณบนแท็บ "ทั่วไป"
กำหนดค่าทริกเกอร์ของคุณบนแท็บ "ทริกเกอร์" คุณสามารถเลือกประเภททริกเกอร์ได้หลากหลาย รวมถึง “เมื่อเริ่มต้น” “เมื่อเข้าสู่ระบบ” “ตามกำหนดเวลา” และ “ในกิจกรรม”
กำหนดค่าการดำเนินการของคุณในแท็บ "การดำเนินการ" เลือก "เริ่มโปรแกรม" และป้อนเส้นทางไปยังสคริปต์ PowerShell หรือไฟล์ปฏิบัติการของคุณ
- คลิก "ตกลง" เพื่อบันทึกงานของคุณ
หลังจากตั้งค่าและกำหนดค่างานที่กำหนดเวลาไว้ คุณควรทดสอบเพื่อให้แน่ใจว่าทำงานได้ตามที่คาดไว้ เมื่อต้องการทำเช่นนี้ ให้รันงานและมอนิเตอร์เอาต์พุต คุณยังสามารถดูประวัติงานและตรวจสอบว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่ หากมีปัญหาใดๆ คุณสามารถแก้ไขงานและรันใหม่ได้ หากต้องการสร้างงานที่กำหนดเวลาไว้เพื่อเรียกใช้สคริปต์ PowerShell โปรดดูที่: วิธีสร้างงานที่กำหนดเวลาไว้ด้วย PowerShell เพื่อเรียกใช้สคริปต์ PowerShell
PowerShell cmdlets เพื่อจัดการงานที่กำหนดเวลาไว้
PowerShell จัดเตรียม cmdlets จำนวนหนึ่งที่ช่วยให้คุณสามารถจัดการงานที่กำหนดเวลาไว้ได้จากบรรทัดคำสั่ง cmdlet เหล่านี้สามารถใช้เพื่อสร้าง แก้ไข และลบงาน ตลอดจนเริ่มต้นและหยุดงานเหล่านั้นได้
cmdlet ที่สำคัญที่สุดสำหรับการจัดการงานที่กำหนดเวลาไว้ใน PowerShell คือ:
- New-ScheduledTaskTrigger: cmdlet นี้ช่วยให้คุณสร้างทริกเกอร์ใหม่สำหรับงานตามกำหนดการ
- New-ScheduledTaskAction: cmdlet นี้ช่วยให้คุณสร้างการดำเนินการใหม่สำหรับงานตามกำหนดการ
- ลงทะเบียน-ScheduledTask: cmdlet นี้ช่วยให้คุณสามารถลงทะเบียนงานที่กำหนดเวลาไว้ใหม่บนเครื่องภายในเครื่อง
- รับงานตามกำหนดเวลา: cmdlet นี้ช่วยให้คุณสามารถดึงข้อมูลเกี่ยวกับงานที่กำหนดเวลาไว้ได้
- Set-ScheduledTask: cmdlet นี้ช่วยให้คุณสามารถแก้ไขงานที่กำหนดเวลาไว้ที่มีอยู่ได้
- Start-ScheduledTask: cmdlet นี้ช่วยให้คุณสามารถเริ่มงานที่กำหนดเวลาไว้ได้ด้วยตนเอง
- Stop-ScheduledTask: cmdlet นี้ช่วยให้คุณสามารถหยุดงานที่กำหนดเวลาไว้ได้ด้วยตนเอง
- ยกเลิกการลงทะเบียน-ScheduledTask: cmdlet นี้ช่วยให้คุณสามารถลบงานที่กำหนดเวลาไว้ออกจากเครื่องภายในเครื่อง
- ปิดใช้งาน-ScheduledTask: ปิดใช้งานงานที่กำหนดเวลาไว้
- เปิดใช้งาน-ScheduledTask: เปิดใช้งานงานที่กำหนดเวลาไว้
มี cmdlet อื่นๆ เพิ่มเติมสำหรับจัดการงานที่กำหนดเวลาไว้ ดูได้ที่: https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/?view=windowsserver2022-ps ด้านล่างนี้เป็นตัวอย่างของวิธีที่คุณสามารถสร้างและจัดการงานที่จัดกำหนดการไว้
การสร้างงานที่กำหนดเวลาไว้โดยใช้สคริปต์ PowerShell
การสร้างงานที่กำหนดเวลาไว้โดยใช้ PowerShell cmdlets ช่วยให้คุณควบคุมกระบวนการได้มากขึ้น หากต้องการสร้างงานที่กำหนดเวลาไว้โดยใช้ PowerShell ขั้นแรกให้สร้างการดำเนินการและทริกเกอร์ออบเจ็กต์ ตัวอย่างเช่น หากคุณต้องการสร้างงานที่เรียกใช้สคริปต์ PowerShell (เช่น C:\scripts\SiteStorage.ps1) ทุกวันเวลา 6.00 น. ให้ทำตามขั้นตอนเหล่านี้ (ตรวจสอบให้แน่ใจว่าคุณเปิด PowerShell ในฐานะผู้ดูแลระบบ มิฉะนั้นคุณจะพบข้อผิดพลาด “Register-ScheduledTask: Access is rejected”:
ขั้นตอนที่ 1: กำหนดทริกเกอร์
ใช้ New-ScheduledTaskTrigger cmdlet เพื่อสร้างทริกเกอร์ใหม่สำหรับงานของคุณ สิ่งนี้จะกำหนดว่างานควรรันเมื่อใด ตัวอย่างเช่น:
$Trigger = New-ScheduledTaskTrigger -Daily -At "6:00 AM"
สิ่งนี้จะสร้างทริกเกอร์ที่รันงานของคุณทุกวันเวลา 6.00 น.
ขั้นตอนที่ 2: ตั้งค่าการดำเนินการเป็นเรียกใช้
หลังจากกำหนดทริกเกอร์แล้ว คุณจะต้องกำหนดการดำเนินการที่งานควรทำ ใช้ cmdlet New-ScheduledTaskAction เพื่อสร้างการดำเนินการใหม่สำหรับงานของคุณ ซึ่งสามารถใช้เพื่อเรียกสคริปต์ PowerShell หรือไฟล์ปฏิบัติการที่ดำเนินการตามเป้าหมาย ในกรณีของสคริปต์ PowerShell คุณสามารถส่งผ่านอาร์กิวเมนต์ได้โดยใช้พารามิเตอร์ 'อาร์กิวเมนต์' ตัวอย่างเช่น ต่อไปนี้เป็นการดำเนินการตามกำหนดการเพื่อเรียกใช้สคริปต์ PowerShell:
$Action = New-ScheduledTaskAction -Execute "PowerShell" -Argument "C:\Scripts\SiteStorage.ps1"
สิ่งนี้จะสร้างการกระทำใหม่ที่เรียกใช้สคริปต์ PowerShell ที่ระบุ
ขั้นตอนที่ 3: สร้างงานที่กำหนดเวลาไว้
ใช้ Register-ScheduledTask cmdlet เพื่อลงทะเบียนงานใหม่ของคุณ ตัวอย่างเช่น:
Register-ScheduledTask -Action $Action -TaskName "Site Storage Report" -Trigger $Trigger
สคริปต์ที่สมบูรณ์มีดังนี้:
$Trigger = New-ScheduledTaskTrigger -Daily -At "6:00 am"
$Action = New-ScheduledTaskAction -Execute "PowerShell" -Argument "C:\Scripts\SiteStorage.ps1"
$Principal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount
Register-ScheduledTask -TaskName "Site Storage Report" -Trigger $Trigger -Action $Action -Principal $Principal
นี่จะลงทะเบียนงานใหม่ของคุณด้วยชื่อ “รายงานที่เก็บข้อมูลไซต์” เราได้ใช้ตัวแปรสำหรับวัตถุ Trigger, action และ Principal ในงานตามกำหนดเวลา ด้วยการปรับแต่งพารามิเตอร์ทริกเกอร์และการดำเนินการ คุณสามารถสร้างงานตามกำหนดการที่เหมาะกับความต้องการเฉพาะของคุณได้ เมื่อสร้างงานแล้ว งานนั้นจะแสดงอยู่ใน Task Scheduler และจะทำงานโดยอัตโนมัติตามกำหนดเวลาที่ระบุ
รันงานที่กำหนดเวลาไว้ด้วยสิทธิ์สูงสุดโดยใช้ PowerShell
ในบางสถานการณ์ คุณอาจต้องรันงานที่กำหนดเวลาไว้ด้วยสิทธิ์ระดับสูงหรือในฐานะผู้ดูแลระบบ (หรือผู้ใช้รายอื่น) PowerShell จัดเตรียมวิธีการในการบรรลุเป้าหมายนี้โดยใช้ cmdlet Register-ScheduledTask
หากต้องการรันงานที่กำหนดเวลาไว้ด้วยสิทธิ์สูงสุด คุณต้องระบุพารามิเตอร์ RunLevel เป็น สูงสุด เมื่อสร้างงาน เพื่อให้แน่ใจว่างานจะทำงานด้วยสิทธิ์ผู้ดูแลระบบสูงสุดที่มีอยู่ในระบบ ตัวอย่างเช่น เมื่อต้องการสร้างงานที่กำหนดเวลาไว้ที่ทำงานด้วยสิทธิ์ระดับสูง คุณสามารถใช้คำสั่งต่อไปนี้:
Register-ScheduledTask -TaskName "Site Storage Report" -Trigger $Trigger -Action $Action -RunLevel Highest
ด้วยการตั้งค่าพารามิเตอร์ RunLevel เป็น Highest งานจะดำเนินการด้วยสิทธิ์ระดับผู้ดูแลระบบ ทำให้สามารถดำเนินการที่ต้องใช้สิทธิ์ผู้ดูแลระบบได้ สิ่งนี้มีประโยชน์เมื่อต้องจัดการกับงานที่ต้องมีการเข้าถึงทรัพยากรระบบหรือการตั้งค่า
การดึงและแสดงรายการงานที่กำหนดเวลาไว้โดยใช้ PowerShell
เมื่อรายการงานที่กำหนดเวลาไว้ของคุณเติบโตขึ้น การมีวิธีดึงข้อมูลและแสดงรายการงานอย่างมีประสิทธิภาพจึงกลายเป็นสิ่งจำเป็น PowerShell มีคำสั่งมากมายที่ช่วยให้คุณสามารถดึงข้อมูลและกรองงานที่กำหนดเวลาไว้ตามเกณฑ์ต่างๆ
Get-ScheduledTask cmdlet เป็นคำสั่งหลักสำหรับการเรียกข้อมูลงานที่กำหนดเวลาไว้ โดยส่งคืนรายการงานทั้งหมดในระบบของคุณ พร้อมด้วยรายละเอียด เช่น ชื่อ ทริกเกอร์ และการดำเนินการ หากต้องการดึงรายการงานที่กำหนดเวลาไว้ทั้งหมด คุณสามารถใช้คำสั่งต่อไปนี้:
Get-ScheduledTask
คุณสามารถกรองผลลัพธ์เพิ่มเติมได้โดยใช้พารามิเตอร์ เช่น -TaskName, -TaskPath หรือ -TaskState ซึ่งจะแสดงรายการงานที่กำหนดเวลาไว้ในระบบของคุณ พร้อมด้วยชื่อ ทริกเกอร์ และการดำเนินการ หากต้องการรับงานเฉพาะ คุณสามารถใช้ cmdlet Get-ScheduledTask พร้อมด้วยพารามิเตอร์ TaskName ตัวอย่างเช่น หากต้องการดึงงานเฉพาะตามชื่อ คุณสามารถใช้คำสั่งต่อไปนี้:
Get-ScheduledTask -TaskName "Site Storage Report"
ซึ่งจะแสดงรายละเอียดของงานตามชื่อที่ระบุ หากคุณต้องการแสดงรายการงานที่กำหนดเวลาไว้ทั้งหมดในโฟลเดอร์เฉพาะ คุณสามารถใช้พารามิเตอร์ -TaskPath:
Get-ScheduledTask -TaskPath "\MyFolder"
นี่จะแสดงรายการงานทั้งหมดในโฟลเดอร์ที่ระบุ โดยไม่คำนึงถึงชื่อ ด้วยการรวมพารามิเตอร์และตัวกรองต่างๆ เข้าด้วยกัน คุณสามารถเรียกดูและแสดงรายการงานที่กำหนดเวลาไว้ในลักษณะที่เหมาะกับความต้องการของคุณได้
การตรวจสอบผลการทำงานครั้งสุดท้ายของงานที่กำหนดเวลาไว้
หากต้องการรับผลลัพธ์การรันล่าสุดของงานที่กำหนดเวลาไว้โดยใช้ PowerShell คุณสามารถใช้ประโยชน์จาก cmdlets Get-ScheduledTask และ Get-ScheduledTaskInfo ได้ นี่คือตัวอย่าง:
$Task = Get-ScheduledTask -TaskName "Site Storage Report"
$TaskInfo = Get-ScheduledTaskInfo -InputObject $Task
$TaskInfo.LastTaskResult
สิ่งนี้จะส่งออกผลลัพธ์ของการทำงานครั้งล่าสุด "รายงานการจัดเก็บไซต์" มันจะส่งออก 0 หากการรันครั้งล่าสุดสำเร็จ และจะแสดงรหัสข้อผิดพลาดที่ไม่ใช่ศูนย์หากล้มเหลว อีกครั้ง โปรดอย่าลืมแทนที่ "รายงานที่เก็บข้อมูลไซต์" ด้วยชื่องานของคุณ และ cmdlets เหล่านี้ต้องการสิทธิ์ระดับสูง (เรียกใช้ในฐานะผู้ดูแลระบบ) จึงจะทำงานได้
การแก้ไขงานที่กำหนดเวลาไว้โดยใช้ PowerShell
เมื่อคุณสร้างงานที่กำหนดเวลาไว้แล้ว คุณอาจต้องจัดการหรือแก้ไขงานนั้นในบางครั้ง PowerShell จัดเตรียมชุดคำสั่งที่ช่วยให้คุณสามารถดำเนินการต่างๆ กับงานที่กำหนดเวลาไว้ที่มีอยู่ได้ หากต้องการแก้ไข PowerShell Scheduled Task ที่มีอยู่โดยใช้ PowerShell cmdlets คุณสามารถใช้ Set-ScheduledTask cmdlet ได้ ตัวอย่างเช่น:
# Change the description of a task
Set-ScheduledTask -TaskName "Site Storage Report" -Description "Generate Report at every Monday"
# Update the trigger of a task
$Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek "Monday"
Set-ScheduledTask -TaskName "Site Storage Report" -Trigger $Trigger
การดำเนินการนี้จะแก้ไขงาน "รายงานที่เก็บข้อมูลไซต์" เพื่อใช้ทริกเกอร์และการดำเนินการใหม่ คุณยังสามารถใช้ cmdlet Set-ScheduledTask เพื่อแก้ไขคุณสมบัติเฉพาะของงาน เช่น ทริกเกอร์หรือการดำเนินการ ตัวอย่างเช่น คุณต้องการปรับเปลี่ยนเวลาที่งานทำงาน ขั้นแรก รับงานและทริกเกอร์ จากนั้นแก้ไขคุณสมบัติ และสุดท้ายอัปเดตงานโดยใช้ Set-ScheduledTask
$Task = Get-ScheduledTask -TaskName "Site Storage Report"
$Task.Triggers[0].StartBoundary = (Get-Date "9:00 AM").ToString("s")
$Task | Set-ScheduledTask
สคริปต์นี้เปลี่ยนเวลารันของงาน “รายงานที่เก็บข้อมูลไซต์” เป็น 9:00 น.
การเริ่มต้นและหยุดงานที่กำหนดเวลาไว้ด้วย PowerShell
เมื่อคุณสร้างงานที่กำหนดเวลาไว้แล้ว คุณอาจต้องเริ่มหรือหยุดงานด้วยตนเองในบางครั้ง PowerShell จัดเตรียมคำสั่งที่ช่วยให้คุณสามารถเริ่ม หยุด และรันงานที่กำหนดเวลาไว้ได้อย่างง่ายดาย
หากต้องการเริ่มงานที่กำหนดเวลาไว้ด้วยตนเองโดยใช้ PowerShell cmdlets คุณสามารถใช้ cmdlet Start-ScheduledTask ได้ ตัวอย่างเช่น หากต้องการเริ่มงานชื่อ "รายงานที่เก็บข้อมูลไซต์" คุณสามารถใช้คำสั่งต่อไปนี้:
Start-ScheduledTask -TaskName "Site Storage Report"
สิ่งนี้จะเริ่มต้นการดำเนินงานตามกำหนดเวลาหรือทริกเกอร์ที่กำหนดไว้ ในทำนองเดียวกัน หากคุณต้องการหยุดการทำงานของงานที่กำลังทำงานอยู่ คุณสามารถใช้ cmdlet Stop-ScheduledTask ได้ คำสั่งนี้ยุติการดำเนินการของงานที่ระบุ
Stop-ScheduledTask -TaskName "Site Storage Report"
การดำเนินการนี้จะหยุดการดำเนินการโดยไม่คำนึงถึงสถานะปัจจุบัน ด้วยการใช้คำสั่งเหล่านี้ คุณสามารถควบคุมการดำเนินงานตามกำหนดการของคุณได้อย่างสมบูรณ์
การลบงานที่กำหนดเวลาไว้โดยใช้ PowerShell cmdlets
หากคุณไม่ต้องการงานอีกต่อไป คุณสามารถลบงานนั้นออกจาก Task Scheduler ได้ หากต้องการลบงานที่กำหนดเวลาไว้ คุณต้องทราบชื่องานหรือรหัส คุณสามารถดึงข้อมูลนี้โดยใช้ cmdlet Get-ScheduledTask เมื่อคุณระบุงานที่คุณต้องการลบแล้ว คุณสามารถดำเนินการคำสั่งต่อไปนี้: Unregister-ScheduledTask cmdlet
Unregister-ScheduledTask -TaskName "Site Storage Report" -Confirm:$false
การดำเนินการนี้จะลบงาน "รายงานการจัดเก็บไซต์" โดยไม่ต้องขอการยืนยัน สิ่งสำคัญคือต้องทราบว่าการลบงานไม่สามารถย้อนกลับได้ ดังนั้นโปรดตรวจสอบอีกครั้งก่อนดำเนินการคำสั่ง
การเปิดใช้งานและปิดใช้งานงานที่กำหนดเวลาไว้ด้วย PowerShell
ในบางกรณี คุณอาจต้องปิดใช้งานงานที่กำหนดเวลาไว้ชั่วคราวโดยไม่ต้องลบงานออกทั้งหมด PowerShell จัดเตรียมคำสั่งที่ช่วยให้คุณสามารถปิดใช้งานและเปิดใช้งานงานที่กำหนดเวลาไว้ได้อย่างง่ายดาย
หากต้องการปิดใช้งานงานที่กำหนดเวลาไว้ คุณสามารถใช้ cmdlet Disable-ScheduledTask คำสั่งนี้จะปิดใช้งานงานที่ระบุ ป้องกันไม่ให้ทำงานตามกำหนดเวลาหรือทริกเกอร์ ตัวอย่างเช่น หากต้องการปิดการใช้งานชื่อ "รายงานที่เก็บข้อมูลไซต์" คุณสามารถใช้คำสั่งต่อไปนี้:
Disable-ScheduledTask -TaskName "Site Storage Report"
การดำเนินการนี้จะปิดการใช้งานงานชั่วคราว ช่วยให้คุณสามารถทำการเปลี่ยนแปลงหรือแก้ไขปัญหาใดๆ โดยไม่ต้องให้งานทำงานในเบื้องหลัง หากคุณต้องการเปิดใช้งานงานที่ปิดใช้งาน คุณสามารถใช้ cmdlet Enable-ScheduledTask:
Enable-ScheduledTask -TaskName "Site Storage Report"
การดำเนินการนี้จะเปิดใช้งานงานอีกครั้ง โดยปล่อยให้ทำงานตามกำหนดเวลาหรือทริกเกอร์ที่กำหนดไว้ ด้วยการใช้คำสั่งเหล่านี้ คุณสามารถควบคุมสถานะของงานที่กำหนดเวลาไว้ได้อย่างง่ายดาย
การแก้ไขปัญหางานที่กำหนดเวลาไว้ใน PowerShell
แม้ว่างานที่กำหนดเวลาไว้ของ PowerShell จะเป็นเครื่องมือที่มีประสิทธิภาพ แต่ก็อาจประสบปัญหาได้ในบางครั้ง การแก้ไขปัญหางานที่กำหนดเวลาไว้ใน PowerShell อาจเป็นเรื่องที่ท้าทาย โดยเฉพาะอย่างยิ่งหากงานไม่ได้ทำงานตามที่คาดไว้ ปัญหาทั่วไปบางประการได้แก่: งานไม่ทำงานตามที่คาดไว้ งานไม่ได้สร้างหรือแก้ไขอย่างถูกต้อง หรืองานไม่สามารถดำเนินการได้เนื่องจากการอนุญาตหรือทรัพยากรขัดแย้งกัน หากคุณประสบปัญหากับงานที่กำหนดเวลาไว้ มีบางสิ่งที่คุณสามารถทำได้เพื่อแก้ไขปัญหา:
- คุณสมบัติงานไม่ถูกต้อง เช่น เวลาเริ่มต้นหรือช่วงเวลาการทำซ้ำ
- ข้อมูลรับรองผู้ใช้หรือการอนุญาตไม่ถูกต้อง
- ไวยากรณ์สคริปต์หรือนโยบายการดำเนินการไม่ถูกต้อง
- ข้อขัดแย้งกับงานหรือแอปพลิเคชันอื่น
- ข้อจำกัดด้านทรัพยากร เช่น พื้นที่ดิสก์หรือหน่วยความจำ
เมื่อต้องการแก้ไขปัญหาเหล่านี้ คุณสามารถใช้เทคนิค PowerShell หลายอย่าง เช่น:
- การใช้ Get-ScheduledTaskInfo cmdlet เพื่อดึงข้อมูลงานและสถานะ
- ตรวจสอบประวัติของงานเพื่อดูว่าทำงานสำเร็จหรือไม่
- การใช้ Event Viewer เพื่อดึงข้อมูลบันทึกของระบบและแอปพลิเคชัน
- การใช้ PowerShell ISE เพื่อดำเนินการตามสคริปต์
แนวทางปฏิบัติที่ดีที่สุดสำหรับงานตามกำหนดการของ PowerShell
เมื่อสร้างและจัดการงานที่กำหนดเวลาไว้โดยใช้ PowerShell สิ่งสำคัญคือต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเพื่อให้มั่นใจในความน่าเชื่อถือและความปลอดภัย แนวทางปฏิบัติที่ดีที่สุดบางประการ ได้แก่:
- ใช้ชื่องานที่สื่อความหมายและคำอธิบายเพื่อระบุงาน
- ใช้รหัสผ่านที่รัดกุมและบัญชีที่มีสิทธิ์น้อยที่สุดเพื่อรันงาน
- ใช้การจัดการข้อผิดพลาดและการบันทึกเพื่อแก้ไขปัญหา
- ใช้การควบคุมเวอร์ชันและการสำรองข้อมูลเพื่อจัดการสคริปต์งานและการกำหนดค่า
- ใช้สภาพแวดล้อมการทดสอบและการจัดเตรียมเพื่อทดสอบงานก่อนที่จะปรับใช้กับการใช้งานจริง
- ใช้นโยบายความปลอดภัยและไฟร์วอลล์เพื่อปกป้องงานและคอมพิวเตอร์จากภัยคุกคามภายนอก
- ใช้สวิตช์
-ExecutionPolicy Bypassเมื่อเรียกใช้สคริปต์ของคุณเพื่อให้แน่ใจว่าสคริปต์สามารถทำงานได้โดยไม่มีปัญหา
บทสรุป
ในบทความนี้ ฉันได้แสดงวิธีสร้างและจัดการงานที่กำหนดเวลาไว้บน Windows โดยใช้ PowerShell ฉันได้อธิบายประโยชน์ของการใช้ PowerShell สำหรับงานตามกำหนดการแล้ว และยกตัวอย่าง PowerShell cmdlets สำหรับการสร้าง จัดการ และแก้ไขปัญหางาน ฉันยังแสดงสคริปต์ PowerShell และแนวทางปฏิบัติที่ดีที่สุดในการจัดการงานที่กำหนดเวลาไว้อย่างมีประสิทธิภาพมากขึ้นอีกด้วย ด้วยขั้นตอนและ cmdlets ที่เหมาะสม คุณสามารถตั้งค่างานที่ทำให้งานสำคัญเสร็จสมบูรณ์ เช่น การสำรองข้อมูล การบำรุงรักษาระบบ และการตรวจสอบความถูกต้องของข้อมูล และอื่นๆ อีกมากมาย ด้วยคำแนะนำที่ครอบคลุมนี้ คุณจะมีข้อมูลทั้งหมดที่จำเป็นในการเริ่มต้นเพิ่มประสิทธิภาพสูงสุดด้วย PowerShell Scheduled Tasks


