Run a Script at Shutdown (OnShutdown): Unterschied zwischen den Versionen

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche
Zeile 11: Zeile 11:
  
 
=== About OnShutdown ===
 
=== About OnShutdown ===
''This is a reliable way to run code at shutdown on Windows.  
+
''This is a reliable way to run code at shutdown on Windows. ''<br>
A service that accepts '''SERVICE_CONTROL_PRESHUTDOWN''' is allowed to delay the system shutdown up to 125 seconds (provided it asks for it).  
+
''A service that accepts '''SERVICE_CONTROL_PRESHUTDOWN''' is allowed to delay the system shutdown up to 125 seconds (provided it asks for it).'' <br>
The 125 second limit can be extended by editing HKLM:\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout. See Service Control Handler Function for more details.''
+
''The 125 second limit can be extended by editing HKLM:\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout. See Service Control Handler Function for more details.''
  
  

Version vom 30. September 2021, 07:45 Uhr

Unfortunately Windows does not bring a simple option to run a script/command at shutdown. There are some ways to do this, but all of this ways are no reliable and does not always works if you use fastboot.

Unreliable methods of running script/command at shutdown:

  • Task Scheduler event trigger on event id 1074/6006/6008 (<Select Path="System">*[System[Provider[@Name='User32'] and EventID=1074]]</Select>) depends on EventLog and TaskScheduler and doesn't fire reliably (or at all on Server Core 1909)
  • Group Policy Shutdown can be terminated early, doesn't fire when fastboot is enabled (default in Win10+) and isn't supported on Server Core 1909
  • Register-WmiEvent -Class Win32_ComputerShutdownEvent can be terminated early, doesn't fire when fastboot is enabled (default in Win10+) and fails on Server Core 1909


OnShutdown

After burning some hours and testing all the methods above, I found a interesting GitHub Projekt OnShutdown.

About OnShutdown

This is a reliable way to run code at shutdown on Windows.
A service that accepts SERVICE_CONTROL_PRESHUTDOWN is allowed to delay the system shutdown up to 125 seconds (provided it asks for it).
The 125 second limit can be extended by editing HKLM:\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout. See Service Control Handler Function for more details.