Ich möchte einen einmaligen Neustart des Servers einplanen, um z. B. die Installation von Updates am frühen Morgen abzuschließen. Wie kann ich dies über die Befehlszeile unter Windows 2012 tun?
Unter Windows 2008 hätte ich den at
Befehl verwendet,
at 2am shutdown -r -f -c "restart"
und nahm den Rest des Nachmittags frei.
Unter Windows 2012 wird mir dies jedoch durch Ausführen dieses Befehls mitgeteilt
The AT command has been deprecated. Please use schtasks.exe instead.
So könnte der entsprechende Befehl mit schtasks.exe lauten
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Abgesehen davon, dass dieser Befehl sehr vergesslich ist, hat er einen weiteren wichtigen Nachteil : Er plant die Aufgabe für heute um 2 Uhr morgens.
Laut der Hilfe zu schtasks.exe ist der /sd
Schalter zum Einstellen des Startdatums bei nicht anwendbar /sc once
. Selbst wenn ich das morgige Datum im Format MM / TT / JJJJ eingeben wollte - und das tue ich nicht - kann ich das nicht.
Die einzig mögliche Lösung, die ich gefunden habe, ist hier , wo Kevin Traas vorschlägt, eine Batchdatei zu erstellen, um eine geplante Aufgabe kurz vor Mitternacht zu erstellen, die einige Minuten wartet, und dann eine andere geplante Aufgabe zu erstellen, um den Befehl auszuführen, den Sie tatsächlich ausführen möchten. Clever, aber bei weitem nicht so praktisch wie at
.
quelle
Antworten:
Der
shutdown
Befehl selbst verfügt über einen Verzögerungsparameter, der/t
das Herunterfahren um einige Sekunden bis zu 10 Jahre verzögert. Wenn Sie ein Herunterfahren in 14 Stunden planen möchten, können Sie beispielsweise ausführenSie können auch einen Grund mit dem
/d
Parameter oder einen Kommentar mit hinzufügen/c
. Laufen Sieshutdown /?
für Details.quelle
Trotz der Dokumentation
/SD
scheint der Parameter mit dem kompatibel zu sein/SC ONCE
. Die Aufgabe wurde erfolgreich erstellt, um am angegebenen Datum zum angegebenen Zeitpunkt ausgeführt zu werden. (Getestet auf W8 und W7)Außerdem wird in der XP-Dokumentation für angegeben
schtasks.exe
, dass der/SD
Parameter für die Verwendung erforderlich/SC ONCE
ist. Ich stelle mir daher vor, dass die Kombination eine ausreichende Anzahl von Skripten enthält.Beispiel:
Wenn es Ihnen nicht gefällt, gegen die Dokumentation zu verstoßen, sollten Sie die XML-Datei direkt generieren (das Schema ist hier ). Dies wird definitiv unterstützt und unterstützt definitiv eine Aufgabe, die zu einem späteren Zeitpunkt einmal ausgeführt werden soll. Eine einfache Möglichkeit, die richtige Datei abzurufen, besteht darin, sie im
mmc
Snap-In Taskplaner zu erstellen und den Befehl export zu verwenden .Beispiel:
Befehl zum Importieren:
quelle
/sd
die Unterstützung. Das ist auch am XML-Import interessant - obwohl es mir persönlich egal ist, ob ich gegen die Dokumentation verstoße. Zumindest ist das möglich - nur viel, viel schwieriger als früherat
./sd
funktioniert nicht mit/sc once
Windows Server 2008. Es führt zuERROR: Incorrect Start Date.
/SD 06/14/2013
.Am Ende habe ich
runat.ps1
einige der einfachen Funktionen von nachgebildet, wobei ichat
die Weisheit von Mitch's Antwort mit einbezogen habe.Die Syntax ist
runat (time) (command)
zWenn Sie auch für die guten alten Zeiten nostalgisch sind, als Sie nicht tippen mussten ...
... dann können Sie es installieren, indem Sie diesen Powershell-Befehl ausführen:
Oder Sie können das
runat.ps1
Skript hier manuell herunterladen .quelle
Ich habe dies in einem Skript für 2012 R2 verwendet und es funktioniert gut. Es wird eine tägliche Aufgabe erstellt, die den Server um 4.30 Uhr neu startet
Stellen Sie sicher, dass Sie dies an einer CMD-Eingabeaufforderung mit Administratorrechten ausführen.
Andy
quelle
Nur ein weiteres Powershell-Skript zum programmgesteuerten Neustarten des Computers am nächsten Tag zur angegebenen Zeit
quelle
Ich schlage vor, den Befehl schtasks mit dem Parameter / f zu verwenden.
Mit / f wird eine Aufgabe mit demselben Namen geändert.
Es ist sehr nützlich, um Aufgaben per Skript bereitzustellen.
Ein vollständiges Beispiel für einen geplanten Serverneustart:
Auszug aus: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
quelle
Wenn Sie nach der Installation von Updates einfach einen Neustart durchführen möchten, können Sie die Updates mit dem PSWindowsUpdate-Modul installieren. Sie können es hier herunterladen . Einmal installiert, öffnen Sie einfach Powershell und geben Sie
quelle
Mit diesem Skript können Sie den Neustart mehrerer Server zu einem bestimmten Zeitpunkt planen.
https://gallery.technet.microsoft.com/Schedule-restart-of-2c1131fb?redir=0
quelle