Pracuję nad VBScript, aby co tydzień uruchamiać ponownie wszystkie maszyny w naszej sieci. Chcę uruchomić ten skrypt za pomocą Harmonogramu zadań. Skrypt działa o 3:00 rano, ale istnieje niewielka szansa, że użytkownicy mogą być w tym czasie w sieci, i muszę dać im możliwość zakończenia ponownego uruchamiania. Jeśli to zrobią, chciałbym, aby ponowne uruchomienie nastąpiło następnej nocy o 3:00 rano. Ustawiłem Harmonogram zadań, aby powtarzał się w ten sposób.
Jak na razie dobrze. Problem polega na tym, że jeśli użytkownik wybierze opcję „Anuluj” w moim skrypcie, Harmonogram zadań nie zobaczy mojego zadania jako zakończonego niepowodzeniem i nie uruchomi go ponownie następnego dnia.
Jakieś pomysły? Czy mogę przekazać kod błędu do harmonogramu zadań lub w inny sposób przerwać zadanie za pomocą VBScript?
Mój kod jest poniżej:
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
Doceń wszelkie myśli.