[Ungelöst] BootNext bei Neustart setzten

YCbCr

Profi
Thread Starter
Mitglied seit
30.11.2020
Beiträge
298
Hi,

hat jemand eine Idee, wie man Windows 10 dazu bringen könnte, bei Neustarts, insbesondere automatischen Neustarts während Windows Updates, der BootNext EFI Variablen den Wert von BootCurrent zu geben, wenn diese nicht existiert / bereits einen Wert hat?

Für manuelle Neustarts durch meinen User wäre es wohl kein Problem. Aber mir geht es vor allem darum, das System nicht immer beim Herunterfahren, bzw. darauf folgenden Start babysitten zu müssen.

Danke schon mal für eure Zeit.
 

Ich weiß nicht, ob man damit die Variable auch per Eingabeaufforderung setzen kann (oder nur per GUI). Falls ja: Befehl in eine Batch-Datei packen und dann über eine Aufgabe ausführen lassen. Das sollte funktionieren.

Sollte man die Variable nicht per Eingabeaufforderung setzen können kann man das, denke ich, recht einfach im Programm implementieren.
 
Danke erstmal für die Antwort.

Das Problem stellt für mich weniger das setzten der Variablen (per API oder Skript) dar, sondern eher, wie ich Windows dazu bringe, das beim Neustart auszuführen.

Dabei geht es mir besonders um die automatischen Neustarts während des blauen "Windows wird aktualisiert, bitte warten" (oder so ähnlich) Screens. Ich bin mir nicht sicher, ob der Task Scheduler zu diesem Zweitpunkt überhaupt läuft. Aber selbst wenn bräuchte ich immer noch eine passende Ereignis-Quelle und Id, um Aufgabe auszulösen. Diese sind ja leider nicht wirklich dokumentiert. User32/1074 und Kernel-Power/109 werden beide für Neustart und Herunterfahren verwendet (Ereignis Parameter kann man ja bei Scheduled Tasks nicht mit angeben?) und werden sowieso erst geloggt, nachdem der Task Scheduler bereits gestoppt wurde. Beim jedem Herunterfahren will ich BootNext natürlich nicht setzten, dann könnte ich ja auch gleich BootOrder dauerhaft ändern.

Mit geplanten Aufgaben (und Windows allgemein) kenne ich mich auch leider nicht besonders aus. Also bitte nicht wundern, wenn ich hier etwas furchtbar offensichtliches übersehe.
 
Bin auch kein Spezialist was die Aufgabenplanung angeht, aber versuche es mal hiermit:

  • Type : On Event (Basic)
  • Log : System
  • Source : User32
  • EventID : 1074
  • Run whether user is logged on or not: Enabled

Quelle: https://superuser.com/a/844579 (den letzten Punkt findest du in den Kommentaren zu der Antwort)

Alternativ könntest du es auch mal mit einem "Register-ObjectEvent" in PowerShell versuchen: https://docs.microsoft.com/en-us/po...lity/register-objectevent?view=powershell-7.1
Das habe ich mal für ein anderes Event benutzt und es hat ganz gut funktioniert.
 
Das Problem damit ist halt, wie oben schon geschrieben, dass dieses Event bei jeder Form von Herunterfahren generiert wird, nicht nur bei Neustarts. Falls es nicht einen Weg gibt, das Event, das den Task ausgelöst hat, irgendwie als Parameter an das Skript zu übergeben (oder anderweitig den Grund für das Herunterfahren zu ermitteln), kommt das Event also nicht wirklich in Frage.

Die Idee, WMI Events (in einem PowerShell Skript oder sonstwie) zu verwenden hört sich erstmal vielversprechend an. Allerdings ist das einzige, das ich dazu gefunden habe Win32_ComputerShutdownEvent, dessen Type Property nicht zwischen shutdown und reboot unterscheidet. :wall:

Ansonsten könnte ich wohl noch ein shutdown script per Gruppenrichtlinie hinzufügen. Aber auch hier wüsste ich nicht, wie ich zwischen Herunterfahren und Neustart unterscheiden könnte.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh