Chciałbym zaplanować jednorazowy restart serwera, np. Aby zakończyć instalację aktualizacji wcześnie rano. Jak mogę to zrobić z wiersza polecenia w systemie Windows 2012?
W systemie Windows 2008 użyłbym at
polecenia
at 2am shutdown -r -f -c "restart"
i wziąłem resztę popołudnia.
Ale w systemie Windows 2012 uruchomienie tego polecenia mi to mówi
The AT command has been deprecated. Please use schtasks.exe instead.
Więc równoważne polecenie z schtasks.exe może być
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Oprócz tego, że jest bardzo niezapomniana, to polecenie ma jeszcze jedną ważną wadę : planuje dziś zadanie na 2 w nocy - mało użyteczne, chyba że nie śpię o 1 w nocy, aby je uruchomić.
Według pomocy dla schtasks.exe /sd
przełącznik do ustawiania daty początkowej nie ma zastosowania w przypadku /sc once
. Więc nawet jeśli chciałbym wpisać jutrzejszą datę w formacie mm / dd / rrrr - a ja nie - nie mogę tego zrobić.
Jedyne możliwe rozwiązanie, jakie znalazłem, jest tutaj , gdzie Kevin Traas sugeruje utworzenie pliku wsadowego, aby utworzyć zaplanowane zadanie tuż przed północą, które czeka kilka minut, a następnie tworzy kolejne zaplanowane zadanie, aby uruchomić polecenie, które faktycznie chcesz uruchomić. Sprytne, ale nigdzie nie tak wygodne jak at
.
źródło
Odpowiedzi:
Samo
shutdown
polecenie ma parametr opóźnienia,/t
który opóźnia wyłączenie na kilka sekund do 10 lat. Jeśli chcesz zaplanować zamknięcie za 14 godzin, powiedzmy, że możesz biecMożesz także dodać przyczynę za pomocą
/d
parametru lub komentarz za pomocą/c
; biegnijshutdown /?
po szczegóły.źródło
Pomimo dokumentacji
/SD
parametr wydaje się być zgodny z/SC ONCE
. Zadanie zostało pomyślnie utworzone w celu uruchomienia w podanym terminie o podanej godzinie. (Testowane na W8 i W7)Dodatkowo dokumentacja XP
schtasks.exe
mówi, że/SD
parametr jest wymagany podczas używania/SC ONCE
, więc wyobrażam sobie, że istnieje spora liczba skryptów używających tej kombinacji.Przykład:
Jeśli niezgodność z dokumentacją nie pasuje do ciebie, rozważ wygenerowanie pliku XML bezpośrednio ( schemat jest tutaj ), który jest zdecydowanie obsługiwany i zdecydowanie obsługuje zadanie zaplanowane do uruchomienia raz w przyszłości. Prostym sposobem na uzyskanie odpowiedniego pliku jest utworzenie go w
mmc
przystawce Harmonogram zadań i użycie polecenia eksportowania .Przykład:
Polecenie importowania:
źródło
/sd
wsparcia. To również interesujące w przypadku importu XML - chociaż osobiście nie dbam o to, aby nie postępować wbrew dokumentacji. Przynajmniej jest to możliwe - o wiele, wiele trudniejsze niż kiedyśat
./sd
nie działa/sc once
w systemie Windows Server 2008. Powoduje toERROR: Incorrect Start Date.
/SD 06/14/2013
.Skończyło się na tym, że stworzyłem
runat.ps1
replikę niektórych prostych funkcjiat
, uwzględniając mądrość z odpowiedzi Mitcha.Składnia jest
runat (time) (command)
npJeśli ty też jesteś nostalgiczny za dawnymi dobrymi czasy, kiedy nie musiałeś pisać ...
... możesz go zainstalować, uruchamiając następującą komendę PowerShell:
Możesz też ręcznie pobrać
runat.ps1
skrypt tutaj .źródło
Użyłem tego w skrypcie dla 2012 R2 i działa dobrze; Stworzy codzienne zadanie, które ponownie uruchomi serwer o 4:30 rano
Upewnij się, że uruchamiasz to z wiersza CMD z uprawnieniami administracyjnymi.
Andy
źródło
Kolejny skrypt programu PowerShell do programowego ponownego uruchamiania komputera następnego dnia o określonej godzinie
źródło
Sugeruję użycie polecenia schtasks z parametrem / f.
Użycie / f, jeśli istnieje zadanie o tej samej nazwie, jest modyfikowane.
Jest to bardzo przydatne do wdrażania zadań za pomocą skryptów.
Pełny przykład restartu serwera harmonogramu:
Wyodrębniono z: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
źródło
Jeśli celem jest po prostu ponowne uruchomienie po zainstalowaniu aktualizacji, możesz użyć modułu PSWindowsUpdate do zainstalowania aktualizacji. Możesz go pobrać stąd . Po zainstalowaniu wystarczy otworzyć PowerShell i pisać
źródło
Ten skrypt pozwala zaplanować ponowne uruchomienie wielu serwerów o określonej dacie / godzinie.
https://gallery.technet.microsoft.com/Schedule-restart-of-2c1131fb?redir=0
źródło