2008-09-19 10 views
67

Cómo programar una tarea en Windows XP para que se ejecute cuando cierre Windows. Tal que quiero ejecutar un programa de línea de comando simple que escribí en C# cada vez que cierro las ventanas. No parece haber una opción en las tareas programadas para realizar esta tarea cuando mi computadora se apaga.Cómo programar una tarea para que se ejecute al cerrar ventanas

Respuesta

79

Ejecutar gPedit.msc (Políticas locales)

configuración del equipo -> configuración de Windows -> Scripts -> Apagar -> Propiedades -> añadir

+25

Si desea un lote secuencia de comandos para ejecutar en Logoff, encontré referenciando el archivo .bat directamente no funcionó. Sin embargo, si utilicé 'C: \ Windows \ System32 \ cmd.exe' como * Script Name * y'/C C: \ path \ to \ batch \ script.bat' como * Script Parameters *, lo hizo. –

+1

ADVERTENCIA: las selecciones de inicio y cierre de la política de grupo no se ejecutan cuando se usa fastboot (habilitado de forma predeterminada en Windows 8 y versiones posteriores). En este caso, solo el reinicio o el apagado forzado (desde el símbolo del sistema) cierra realmente la computadora. En todos los demás casos (apagado del menú de inicio), el kernel de la computadora hibernó y se actualizó al arrancar, y se ignoran las ventanas de arranque y apagado de GPO. – voji

5

una solución podría ser la de escribir un archivo por lotes simple de ejecutar el prog RAM entonces apaga la computadora.

puede apagar desde la línea de comandos - por lo que su guión podría ser bastante simple:

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

Si ejecuta GPedit.msc se puede ir a Configuración del equipo -> Configuración de Windows -> Secuencias de comandos, y agregar scripts de inicio/apagado. Estos pueden ser simples archivos por lotes, o incluso EXEs completos. También puede ajustar las configuraciones de usuario para las secuencias de comandos de inicio y fin de sesión en esta misma herramienta. Esta herramienta no está disponible en WIndows XP Home.

+0

realmente útil para saber que puede ejecutar .EXE, gracias! –

30

Además de respuesta Dan Williams, si desea añadir un inicio/apagado la escritura, tiene que estar buscando Configuración de Windows bajo Configuración del equipo . Si desea agregar una secuencia de comandos Iniciar sesión/Cerrar sesión, debe buscar la configuración de Windows en Configuración de usuario.

Así que reiterar lo que Dan dijo que con esta información incluye,

Para inicio/apagado:

  1. gpedit.msc Run (Directivas locales)
  2. ordenador Configuración -> Windows ajustes -> Scripts ->inicio o apagado -> Propiedades -> Añadir

Para Inicio/Cierre:

  1. Run gpedit.msc (Directivas locales)
  2. usuario Configuración -> Configuración de Windows -> Scripts ->de inicio de sesión o cierre de sesión -> Propiedades -> Añadir

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

+2

Esta es la mejor respuesta. Cuando abre GPEditor, muestra dos nodos como usted describe. Como ambos nodos tienen una opción de Configuración de Windows, la respuesta aceptada es menos clara que la respuesta. Gracias por el consejo. Muy útil. –

22

para aquellos que prefieren utilizar el programador de tareas, es posible programar una tarea para ejecutar después de un reinicio/apagado ha sido iniciado por el establecimiento de la tarea a ejecutar después del evento 1074 en el registro del sistema en el Incluso t El visor ha sido registrado. Sin embargo, sólo es bueno para la tarea muy corto, que se extenderá el tiempo que el sistema se está reiniciando/apagado, que es por lo general sólo unos pocos segundos.

  • Desde el programador de tareas:

    comenzar la tarea: En un evento
    registro: Sistema
    Fuente: USER32
    EventID: 1074

  • Desde el símbolo del sistema:

    schtasks/crear/tn "TaskName" "archivo de tarea"/tr/sc onevent/CE del sistema/mes * [sistema/evendid = 1074]

Comentario: la opción/ec está disponible desde Windows Vista y más. (Gracias @ DT2)

Tenga en cuenta que el estado de la tarea puede ser:

La operación requerida no se ha realizado porque el usuario no ha iniciado sesión en la red. El servicio especificado no existe. (0x800704DD)

Sin embargo, esto no significa que no se ha ejecutado.

+0

¡Gracias por el consejo! @Oz, ¿Esto se ejecutará al reiniciar y al apagarlo? El caso que trato de cubrir es Windows Update obliga a reiniciar ... –

+0

Sí, lo es, ya que este evento se inició al reiniciar/apagar. –

+0

Tenga en cuenta que el argumento '/ ec system' no existe, pero se llama'/ru system'. vea https://support.microsoft.com/en-us/kb/814596#bookmark-4 – t2d

0

Lo que puedo sugerir es crear un acceso directo al archivo .bat (por ejemplo, en su escritorio) y cuando desee apagar su computadora (y ejecutar el archivo .bat) haga clic en el acceso directo que creó. Después de hacer esto, edita el.bat y añadir esta línea de código al final o cuando sea necesario:

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

Lo que esto hace es

  1. ejecuta el proceso de apagado
  2. muestra una alerta
  3. obliga a todos los procesos en ejecución para detener
  4. Ejecuta inmediatamente
Cuestiones relacionadas