Выполнение пакетного сценария при завершении работы Windows

есть ли способ, в Windows 7 Professional, чтобы запустить пакетный скрипт (например,.BAT-файл), когда пользователь нажимает " shutdown "(не пакетный файл, запланированный для выключения машины, а только тот, который запускается, только если пользователь нажимает"shutdown")?

В идеале такой скрипт покажет окно командной строки и предложит возможность отменить процедуру завершения работы.

решения, которые не требуют сторонней утилиты, были бы предпочтительнее.

5 ответов


можно создать политику локального компьютера в Windows. См. TechNet в http://technet.microsoft.com/en-us/magazine/dd630947

  1. выполнить gpedit.msc открыть редактор групповой политики,
  2. перейти к Конфигурация Компьютера | Конфигурация Windows | Сценарии (Запуск/Завершение).

enter image description here


Ну, это простой способ сделать некоторые изменения реестра: Я пробовал это на 2008 R2 с и 2016 сервера.

вещи должны быть сделаны:

  1. создать текстовый файл "regedit.txt"
  2. вставьте в него следующий код:
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown]     

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown]  
"GPO-ID"="LocalGPO"    
"SOM-ID"="Local"    
"FileSysPath"="C:\Windows\System32\GroupPolicy\Machine"    
"DisplayName"="Local Group Policy"    
"GPOName"="Local Group Policy"    

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown]    
"Script"="terminate_script.bat"    
"Parameters"=""    
"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\Scripts\Shutdown]
"GPO-ID"="LocalGPO"    
"SOM-ID"="Local"    
"FileSysPath"="C:\Windows\System32\GroupPolicy\Machine"    
"DisplayName"="Local Group Policy"    
"GPOName"="Local Group Policy"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown]    
"Script"="terminate_script.bat"    
"Parameters"=""
"IsPowershell"=dword:00000000
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
  1. Сохраните этот файл как regedit.Редж!--4--> расширение

  2. запустить его в командной строке, используя ниже команда:

    regedit.exe /s regedit.reg
    

создайте свой собственный скрипт выключения-Myshutdown.bat-и сделайте все, что вы собирались сделать в своем скрипте, а затем в конце его вызовите shutdown /a. Затем запустите файл bat вместо обычного завершения работы.

(см. http://www.w7forums.com/threads/run-batch-file-on-shutdown.11860/ для получения дополнительной информации.)


Я нашел эту тему при поиске сценария запуска для запуска и выключения Windows 10. Эти ответы выше не работает. Для меня на windows 10 работал, когда я ставил скрипты в планировщик задач. Как это сделать: нажмите клавишу window и напишите планировщик задач, откройте его, затем справа добавьте задачу... кнопка. Здесь можно добавлять скрипты. PS:я нашел действие для запуска и выхода из системы пользователя, нет для выключения.


для приведенного выше кода для работы; вам нужно убедиться, что существуют следующие каталоги (мои нет). Просто добавьте следующее в летучую мышь и запустите ее:

mkdir C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
mkdir C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown
mkdir C:\Windows\System32\GroupPolicy\User\Scripts\Startup
mkdir C:\Windows\System32\GroupPolicy\User\Scripts\Shutdown

просто GP нужно, чтобы эти каталоги существовали для:

Group Policy\Local Computer Policy\Windows Settings\Scripts (Startup/Shutdown)

для правильной работы.