So planen Sie die Ausführung einer Aufgabe beim Herunterfahren von Fenstern

86

Wie planen Sie eine Aufgabe in Windows XP, die beim Herunterfahren von Windows ausgeführt werden soll? So dass ich jedes Mal, wenn ich Windows herunterfahre, ein einfaches Befehlszeilenprogramm ausführen möchte, das ich in c # geschrieben habe. In geplanten Aufgaben scheint es keine Option zu geben, diese Aufgabe auszuführen, wenn mein Computer heruntergefahren wird.

Crippeoblade
quelle

Antworten:

91

Führen Sie gpedit.msc (lokale Richtlinien) aus.

Computerkonfiguration -> Windows-Einstellungen -> Skripte -> Herunterfahren -> Eigenschaften -> Hinzufügen

Dan Williams
quelle
27
Wenn Sie möchten, dass ein Batch-Skript bei der Abmeldung ausgeführt wird, hat das direkte Verweisen auf die .bat-Datei nicht funktioniert. Wenn ich jedoch C:\Windows\System32\cmd.exeals Skriptname und /C C:\path\to\batch\script.batals Skriptparameter verwendet habe , war dies der Fall.
Dan Stevens
6
WARINUNG: Die Skripts zum Starten und Herunterfahren von Gruppenrichtlinien werden bei Verwendung von Fastboot nicht ausgeführt (standardmäßig in Windows 8 und höher aktiviert). In diesem Fall wird der Computer nur durch Neustart oder erzwungenes Herunterfahren (über die Eingabeaufforderung) wirklich heruntergefahren. In allen anderen Fällen (Herunterfahren des Startmenüs) wurde der Computerkern im Ruhezustand gehalten und beim Booten wiederhergestellt, und die Skripts zum Starten und Herunterfahren des Gruppenrichtlinienobjekts werden ignoriert.
Voji
@voji: Gilt das auch für Windows Server?
Sampathsris
Wie wäre es mit einem Neustart?
Dangalg
Diese scheinen auf Server Core 1909
gordy
39

Wenn Sie zusätzlich zur Antwort von Dan Williams ein Skript zum Starten / Herunterfahren hinzufügen möchten , müssen Sie unter Computerkonfiguration nach Windows-Einstellungen suchen . Wenn Sie ein Anmelde- / Abmeldeskript hinzufügen möchten , müssen Sie unter Benutzerkonfiguration nach Windows-Einstellungen suchen .

Um zu wiederholen, was Dan mit diesen Informationen gesagt hat,

Zum Starten / Herunterfahren:

  1. Führen Sie gpedit.msc (Lokale Richtlinien) aus.
  2. Computerkonfiguration -> Windows-Einstellungen -> Skripte -> Starten oder Herunterfahren -> Eigenschaften -> Hinzufügen

Für Anmeldung / Abmeldung:

  1. Führen Sie gpedit.msc (Lokale Richtlinien) aus.
  2. Benutzerkonfiguration -> Windows - Einstellungen -> Scripts -> Logon oder Abmelden -> Eigenschaften -> Add

Quelle: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx

Brett Pennings
quelle
2
Dies ist die bessere Antwort. Wenn Sie GPEditor öffnen, werden zwei Knoten angezeigt, wie Sie beschreiben. Da beide Knoten über eine Windows-Einstellungsoption verfügen, ist die akzeptierte Antwort weniger klar als Ihre Antwort. Danke für den Tipp. Sehr hilfreich.
Seth Spearman
34

Für diejenigen, die den Taskplaner bevorzugen, ist es möglich, eine Aufgabe so zu planen, dass sie ausgeführt wird, nachdem ein Neustart / Herunterfahren eingeleitet wurde, indem die Aufgabe so eingestellt wird, dass sie ausgeführt wird, nachdem Ereignis 1074 im Systemprotokoll in der Ereignisanzeige protokolliert wurde. Es ist jedoch nur für sehr kurze Aufgaben geeignet, die ausgeführt werden, solange das System neu gestartet / heruntergefahren wird, was normalerweise nur wenige Sekunden dauert.

  • Aus dem Taskplaner:

    Beginnen Sie die Aufgabe: Bei einem Ereignis
    Protokoll
    : Systemquelle: USER32
    Ereignis-ID: 1074

  • An der Eingabeaufforderung:

    schtasks / create / tn "Aufgabenname" / tr "Aufgabendatei" / sc onevent / ec system / mo * [system / eventid = 1074]

Kommentar: Die Option / ec ist unter Windows Vista und höher verfügbar. (danke @ t2d)

Bitte beachten Sie, dass der Aufgabenstatus sein kann:

Der angeforderte Vorgang wurde nicht ausgeführt, da sich der Benutzer nicht am Netzwerk angemeldet hat. Der angegebene Dienst existiert nicht. (0x800704DD)

Dies bedeutet jedoch nicht, dass es nicht ausgeführt wurde.

Oz Edri
quelle
Danke für den Tipp! @Oz, Wird dies sowohl beim Neustart als auch beim Herunterfahren ausgeführt? Der Fall, den ich zu behandeln versuche, ist, dass Windows Update einen Neustart erzwingt ...
Erik Eidt
Ja, da dieses Ereignis beim Neustart / Herunterfahren protokolliert wird.
Oz Edri
Bitte beachten Sie, dass das Argument /ec systemnicht existiert, aber aufgerufen wird /ru system. siehe support.microsoft.com/en-us/kb/814596#bookmark-4
t2d
@ t2d, während / ec in neueren Versionen existiert, bezieht sich / ru auf eine ganz andere Sache. Mit EC können Sie einen Ereigniskanal angeben, während Sie mit ru als anderer Benutzer ausgeführt werden können. Trotzdem vielen Dank für Ihren Kommentar. Ich werde meinen Beitrag entsprechend bearbeiten.
Oz Edri
1
In Ihrem Beispiel enthält der Modifikator einen Tippfehler. Es sollte ... /mo *[system/eventid=1074]nicht sein.../mo *[system/evendid=1074]
Testworks
5

Eine Problemumgehung könnte darin bestehen, eine einfache Batchdatei zu schreiben, um das Programm auszuführen, und dann den Computer herunterzufahren.

Sie können über die Befehlszeile herunterfahren - Ihr Skript kann also recht einfach sein:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0
Neil Neyman
quelle
4

Wenn Sie GPEdit.MSC ausführen, können Sie unter Computerkonfiguration -> Windows-Einstellungen -> Skripts Start- / Herunterfahrskripts hinzufügen. Dies können einfache Batch-Dateien oder sogar vollständige EXE-Dateien sein. Außerdem können Sie Benutzerkonfigurationen für Anmelde- und Abmeldeskripts in demselben Tool anpassen. Dieses Tool ist in Windows XP Home nicht verfügbar.

Kibbee
quelle
1

Ich kann vorschlagen, eine Verknüpfung zur BAT-Datei (z. B. auf Ihrem Desktop) zu erstellen und beim Herunterfahren des Computers (und Ausführen der BAT-Datei) auf die von Ihnen erstellte Verknüpfung zu klicken. Bearbeiten Sie anschließend die .bat-Datei und fügen Sie diese Codezeile am Ende oder bei Bedarf hinzu:

c:\windows\system32\shutdown -s -f -t 00

Was das macht, ist es

  1. Führt den Herunterfahrvorgang aus
  2. Zeigt eine Warnung an
  3. Erzwingt das Stoppen aller laufenden Prozesse
  4. Wird sofort ausgeführt
Matthew Smith
quelle
1

Unter Windows 10 Pro kann die Batchdatei registriert werden. Die Problemumgehung zum Registrieren von cmd.exe und zum Angeben der bat-Datei als Parameter ist nicht erforderlich. Ich habe dies gerade getan und sowohl ein Shutdown-Skript als auch ein Startskript (Boot-Skript) registriert, und es hat funktioniert.

Wo'O Ideafarm
quelle
0

Ich musste auch "Maximale Wartezeit für Gruppenrichtlinienskripte angeben" und "Anweisungen in heruntergefahrenen Skripten anzeigen, während sie ausgeführt werden" aktivieren, damit es für mich funktioniert, wie ich hier erkläre .

Roald
quelle