ฉันกำลังทำงานกับ VBScript เพื่อทำการรีบูตเครื่องทุกเครื่องในเครือข่ายของเราทุกสัปดาห์ ฉันต้องการเรียกใช้สคริปต์นี้ผ่าน Task Scheduler สคริปต์ทำงานเวลา 3:00 น. แต่มีโอกาสเล็กน้อยที่ผู้ใช้อาจยังอยู่ในเครือข่ายในเวลานั้นและฉันจำเป็นต้องให้ตัวเลือกแก่พวกเขาในการยุติการรีบูต หากพวกเขาทำเช่นนั้นฉันต้องการให้รีบูตเกิดขึ้นในคืนถัดไปเวลา 3:00 น. ฉันได้ตั้งค่า Task Scheduler ให้ทำซ้ำในลักษณะนี้
จนถึงตอนนี้ดีมาก ปัญหาคือหากผู้ใช้เลือก "ยกเลิก" ในสคริปต์ของฉัน Task Scheduler ไม่เห็นงานของฉันว่าล้มเหลวและจะไม่ทำงานอีกครั้งในคืนถัดไป
ความคิดใด ๆ ฉันสามารถส่งรหัสข้อผิดพลาดไปที่ตัวกำหนดตารางเวลางานหรือยกเลิกงานผ่าน VBScript ได้หรือไม่
รหัสของฉันอยู่ด้านล่าง:
Option Explicit
Dim objShell, intShutdown
Dim strShutdown, strAbort
' -r = restart, -t 600 = 10 minutes, -f = force programs to close
strShutdown = "shutdown.exe -r -t 600 -f"
set objShell = CreateObject("WScript.Shell")
objShell.Run strShutdown, 0, false
'go to sleep so message box appears on top
WScript.Sleep 100
' Input Box to abort shutdown
intShutdown = (MsgBox("Computer will restart in 10 minutes. Do you want to cancel computer restart?",vbYesNo+vbExclamation+vbApplicationModal,"Cancel Restart"))
If intShutdown = vbYes Then
' Abort Shutdown
strAbort = "shutdown.exe -a"
set objShell = CreateObject("WScript.Shell")
objShell.Run strAbort, 0, false
End if
Wscript.Quit
ขอบคุณสำหรับความคิดใด ๆ