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.

Antworten:


91

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

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


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


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.


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

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.




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

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.


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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.