Hi,
like system startup it is not possible to execute a script at system shutdown with the task scheduler. It must be configured with a group policy. You can choose the GUI way are set it by script:
Let us assume the Script is C:\scripts\shutdownEv.cmd.
Adjust the following template, replace Scriptname 2 times, and add the keys to the registry by saving it as file shutdown.reg…
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Local Group Policy" "GPOName"="Local Group Policy" "PSScriptOrder"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0\0] "Script"="c:\\Scripts\\shutdownEv.cmd" "Parameters"="" "IsPowershell"=dword:00000000 "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Local Group Policy" "GPOName"="Local Group Policy" "PSScriptOrder"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0\0] "Script"="c:\\Scripts\\shutdownEv.cmd" "Parameters"="" "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
…. Ensure that there is not another GPO at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0: configured. Then you have to use 1 or 2…. The shutdown key only exists if scripts are already configured.
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown" ERROR: The system was unable to find the specified registry key or value.
Ok, no scripts are in place. Add the registry keys:
regedit /u shutdown.reg
Also a ini File “C:\Windows\System32\GroupPolicy\Machine\Scripts\scripts.ini” is requiered. And like the registry keys. Check the connect of the file if there are already scripts defined.
[Shutdown] 0CmdLine=c:\Scripts\shutdownEv.cmd 0Parameters=
Same procedure for a powershell script. The Registry File shutdownps.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Local Group Policy" "GPOName"="Local Group Policy" "PSScriptOrder"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0\0] "Script"="c:\\Scripts\\shutdownEV.ps1" "Parameters"="" "IsPowershell"=dword:00000001 "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Local Group Policy" "GPOName"="Local Group Policy" "PSScriptOrder"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0\0] "Script"="c:\\Scripts\\shutdownEV.ps1" "Parameters"="" "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
and the corresponding ini file “C:\Windows\System32\GroupPolicy\Machine\Scripts\psscripts.ini”
[Shutdown] 0CmdLine=c:\Scripts\shutdownEV.ps1 0Parameters=
Note: The ini file is not necessary for executing the script at shutdown. It is required that the policy is also shown by the Group Policy Object Editor.
Michael