ค้นหาเว็บไซต์

วิธีสร้างและจัดการงานที่กำหนดเวลาไว้ใน 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 ในตัว โดยทำตามขั้นตอนเหล่านี้:

  1. เปิด Task Scheduler โดยพิมพ์ "Task Scheduler" ลงในแถบค้นหาของเมนู Start แล้วเลือกแอป "Task Scheduler"
  2. คลิก "สร้างงาน" ในบานหน้าต่าง "การดำเนินการ" ทางด้านขวามือ

  3. ตั้งชื่อและคำอธิบายงานของคุณบนแท็บ "ทั่วไป"
  4. กำหนดค่าทริกเกอร์ของคุณบนแท็บ "ทริกเกอร์" คุณสามารถเลือกประเภททริกเกอร์ได้หลากหลาย รวมถึง “เมื่อเริ่มต้น” “เมื่อเข้าสู่ระบบ” “ตามกำหนดเวลา” และ “ในกิจกรรม”

  5. กำหนดค่าการดำเนินการของคุณในแท็บ "การดำเนินการ" เลือก "เริ่มโปรแกรม" และป้อนเส้นทางไปยังสคริปต์ PowerShell หรือไฟล์ปฏิบัติการของคุณ

  6. คลิก "ตกลง" เพื่อบันทึกงานของคุณ

หลังจากตั้งค่าและกำหนดค่างานที่กำหนดเวลาไว้ คุณควรทดสอบเพื่อให้แน่ใจว่าทำงานได้ตามที่คาดไว้ เมื่อต้องการทำเช่นนี้ ให้รันงานและมอนิเตอร์เอาต์พุต คุณยังสามารถดูประวัติงานและตรวจสอบว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่ หากมีปัญหาใดๆ คุณสามารถแก้ไขงานและรันใหม่ได้ หากต้องการสร้างงานที่กำหนดเวลาไว้เพื่อเรียกใช้สคริปต์ 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

บทความที่เกี่ยวข้อง