Come pianificare un'attività da eseguire quando si chiude Windows


86

Come si pianifica l'esecuzione di un'attività in Windows XP quando si arresta Windows. Tale che voglio eseguire un semplice programma a riga di comando che ho scritto in c # ogni volta che chiudo Windows. Non sembra esserci un'opzione nelle attività pianificate per eseguire questa attività quando il mio computer si spegne.

Risposte:


92

Esegui gpedit.msc (criteri locali)

Configurazione computer -> Impostazioni di Windows -> Script -> Arresto -> Proprietà -> Aggiungi


28
Se vuoi che uno script batch venga eseguito alla disconnessione, ho scoperto che fare riferimento direttamente al file .bat non ha funzionato. Tuttavia, se ho usato C:\Windows\System32\cmd.execome nome script e /C C:\path\to\batch\script.batcome parametri script , lo ha fatto.
Dan Stevens

6
AVVISO: gli script di avvio e arresto dei criteri di gruppo non vengono eseguiti quando si utilizza l'avvio rapido (abilitato per impostazione predefinita in Windows 8 e versioni successive). In questo caso, solo il riavvio o l'arresto forzato (dal prompt dei comandi) spengono realmente il computer. In tutti gli altri casi (chiusura del menu di avvio), il kernel del computer è stato ibernato e ripristinato all'avvio e gli script di avvio e arresto degli oggetti Criteri di gruppo vengono ignorati.
voji

@voji: è vero anche per Windows Server?
sampathsris

che ne dici di riavviare?
dangalg

questi non sembrano funzionare affatto su Server Core 1909
gordy

41

Oltre alla risposta di Dan Williams, se desideri aggiungere uno script di avvio / arresto , devi cercare Impostazioni di Windows in Configurazione computer . Se si desidera aggiungere uno script di accesso / disconnessione , è necessario cercare Impostazioni di Windows in Configurazione utente .

Quindi, per ribadire ciò che Dan ha detto con queste informazioni incluse,

Per avvio / arresto:

  1. Esegui gpedit.msc (criteri locali)
  2. Configurazione computer -> Impostazioni di Windows -> Script -> Avvio o arresto -> Proprietà -> Aggiungi

Per accesso / disconnessione:

  1. Esegui gpedit.msc (criteri locali)
  2. Configurazione utente -> Impostazioni di Windows -> Script -> Accesso o disconnessione -> Proprietà -> Aggiungi

Fonte: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx


2
Questa è la risposta migliore. Quando apri GPEditor, mostra due nodi come descrivi. Poiché entrambi i nodi hanno un'opzione Impostazioni di Windows, la risposta accettata è meno chiara della tua risposta. Grazie per il consiglio. Molto utile.
Seth Spearman

34

Per coloro che preferiscono utilizzare l'Utilità di pianificazione, è possibile pianificare l'esecuzione di un'attività dopo che è stato avviato un riavvio / arresto impostando l'esecuzione dell'attività dopo che è stato registrato l'evento 1074 nel Registro di sistema nel Visualizzatore eventi. Tuttavia, va bene solo per attività molto brevi, che verranno eseguite finché il sistema si riavvia / si arresta, che di solito è solo pochi secondi.

  • Dall'utilità di pianificazione:

    Inizia l'attività: su un
    registro eventi :
    Origine sistema : USER32
    ID evento: 1074

  • Dal prompt dei comandi:

    schtasks / create / tn "taskname" / tr "task file" / sc onevent / ec system / mo * [system / eventid = 1074]

Commento: l'opzione / ec è disponibile da Windows Vista e versioni successive. (grazie @ t2d)

Tieni presente che lo stato dell'attività può essere:

L'operazione richiesta non è stata eseguita perché l'utente non ha effettuato l'accesso alla rete. Il servizio specificato non esiste. (0x800704DD)

Tuttavia, ciò non significa che non sia stato eseguito.


Grazie per il consiglio! @Oz, funzionerà sia al riavvio che allo spegnimento? Il caso che sto cercando di coprire è che Windows Update forza un riavvio ...
Erik Eidt

Sì, poiché questo evento viene registrato al riavvio / spegnimento.
Oz Edri

Si noti che l'argomento /ec systemnon esiste, ma è chiamato /ru system. vedi support.microsoft.com/en-us/kb/814596#bookmark-4
t2d

@ t2d, mentre / ec esiste nelle versioni più recenti, / ru si riferisce a una cosa completamente diversa. EC ti consente di specificare un canale di eventi, mentre ru ti consente di eseguire come un altro utente. Tuttavia grazie per il tuo commento. Modificherò il mio post di conseguenza.
Oz Edri

1
C'è un errore di battitura nel modificatore nel tuo esempio. Dovrebbe essere ... /mo *[system/eventid=1074], non.../mo *[system/evendid=1074]
testworks

4

Una soluzione alternativa potrebbe essere quella di scrivere un semplice file batch per eseguire il programma, quindi spegnere il computer.

Puoi spegnere dalla riga di comando, quindi il tuo script potrebbe essere abbastanza semplice:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0

4

Se esegui GPEdit.MSC puoi andare su Configurazione computer -> Impostazioni di Windows -> Script e aggiungere script di avvio / arresto. Questi possono essere semplici file batch o anche EXE completi. Inoltre è possibile regolare le configurazioni utente per gli script di accesso e disconnessione in questo stesso strumento. Questo strumento non è disponibile in Windows XP Home.




1

Quello che posso suggerire di fare è creare un collegamento al file .bat (ad esempio sul desktop) e quando vuoi spegnere il computer (ed eseguire il file .bat) fai clic sul collegamento che hai creato. Dopo aver fatto ciò, modifica il file .bat e aggiungi questa riga di codice alla fine o dove necessario:

c:\windows\system32\shutdown -s -f -t 00

Di cosa si tratta

  1. Esegue il processo di arresto
  2. Visualizza un avviso
  3. Forza l'arresto di tutti i processi in esecuzione
  4. Viene eseguito immediatamente

1

Su Windows 10 Pro, il file batch può essere registrato; la soluzione alternativa per registrare cmd.exe e specificare il file bat come parametro non è necessaria. L'ho appena fatto, registrando sia uno script di arresto che uno script di avvio (avvio), e ha funzionato.


0

Ho dovuto anche abilitare "Specifica il tempo di attesa massimo per gli script dei criteri di gruppo" e "Visualizza le istruzioni negli script di arresto durante l'esecuzione" per farlo funzionare per me come spiego qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.