it-swarm-eu.dev

Esecuzione di uno script batch su Windows shutdown

Esiste un modo, in Windows 7 Professional, per eseguire uno script batch (ad esempio un file .BAT) quando l'utente fa clic su "shutdown" (non un file batch pianificato per arrestare la macchina, solo uno che viene eseguito solo se l'utente fa clic su "shutdown")?

Idealmente, tale script mostrerebbe la finestra Prompt del comando e offrirà un'opzione per annullare la procedura di spegnimento.

Le soluzioni che non richiedono un'utilità di terze parti sarebbero preferibili.

25
PNS

È possibile creare un criterio del computer locale su Windows. Vedi il TechNet all'indirizzo http://technet.Microsoft.com/en-us/magazine/dd630947

  1. Esegui gpedit.msc per aprire l'Editor dei Criteri di gruppo,
  2. Passare a Configurazione computer | Impostazioni di Windows | Script (avvio/spegnimento).

enter image description here

47
bahrep

Beh, è ​​un modo semplice per fare alcune modifiche al registro: Ho provato questo su 2008 r2 e 2016 servers.

Le cose devono essere fatte:

  1. Crea un file di testo " regedit.txt "
  2. Incolla il seguente codice in esso:
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\0]  
"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\0\0]    
"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\0]
"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\0\0]    
"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. Salva questo file come regedit.reg extension

  2. Eseguilo su qualsiasi riga di comando utilizzando il seguente comando:

    regedit.exe /s regedit.reg
    
4
asif

Ho trovato questo argomento durante la ricerca di script di esecuzione per l'avvio e l'arresto di Windows 10. Queste risposte non funzionavano. Per me su Windows 10 ha funzionato quando ho messo gli script per l'utilità di pianificazione. Come fare: premere il tasto della finestra e scrivere Task Scheduler, aprirlo, quindi sulla destra il pulsante Aggiungi attività .... Qui puoi aggiungere script . PS: ho trovato l'azione per l'utente di avvio e disconnessione, non c'è per l'arresto.

2
paka

Crea il tuo script di spegnimento, chiamato Myshutdown.bat, e fai ciò che avresti fatto nel tuo script e alla fine chiamalo shutdown/a. Quindi esegui il tuo file bat invece del normale spegnimento.

(Vedi http://www.w7forums.com/threads/run-batch-file-on-shutdown.11860/ per maggiori informazioni).

2
rss2363

Per il codice sopra riportato per funzionare; è necessario assicurarsi che le seguenti directory esistano (il mio no). Basta aggiungere il seguente a un pipistrello ed eseguirlo:

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

È solo che GP ha bisogno di quelle directory per esistere:

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

per funzionare correttamente.

0
Dugb