¿Es posible deshabilitar una tarea programada desde la línea de comandos en Windows XP?

11

En mi máquina con Windows 7 puedo ejecutar algo como:

schtasks.exe /Change /TN "MyTaskName" /Disable

Pero / Desactivar no parece estar disponible en Windows XP: ¿hay alguna forma de desactivarlo desde la línea de comandos?

John Sibly
fuente

Respuestas:

8

El /disablecambio es solo una característica de Vista / 7 / 2008R2 / 2012 .

Simplemente puede cambiar el nombre del .jobarchivo de tareas para "deshabilitarlo".

schtasks /Create /SC HOURLY /TN "TEST TASK" /TR notepad
schtasks

TaskName                             Next Run Time            Status
==================================== ======================== ===============
TEST TASK                            09:45:00, 7/26/2010

move "C:\WINDOWS\Tasks\TEST TASK.job" "C:\WINDOWS\Tasks\TEST TASK.bak"
schtasks
INFO: There are no scheduled tasks present in the system.

Para "habilitar" la tarea, cambie el nombre del .bakarchivo a .job:

schtasks
INFO: There are no scheduled tasks present in the system.

move "C:\WINDOWS\Tasks\TEST TASK.bak" "C:\WINDOWS\Tasks\TEST TASK.job"
schtasks

TaskName                             Next Run Time            Status
==================================== ======================== ===============
TEST TASK                            09:45:00, 7/26/2010
jscott
fuente
Buena idea. Sin embargo, realmente me gustaría que aparezca como deshabilitado en el Programador de tareas, para poder habilitarlo nuevamente en algún momento en el futuro. Normalmente, puede configurarlo en "Ejecutar una vez" y establecer una hora específica, pero este script en particular debemos ejecutarlo al iniciar sesión y luego deshabilitarlo.
John Sibly
44
@John: Actualicé mi respuesta para mostrar el ejemplo "habilitador". Salvo esa opción, puede copiar C:\Windows\System32\schtasks.exebinarios desde una instalación 2003+. Coloque este binario en la máquina XP y llámelo utilizando su ruta explícita. Acabo de probar con éxito la desactivación de una tarea creada con XP schtasksusando el 2003 schtasks.
jscott
Gracias por sus respuestas: voy a utilizar la solución alternativa Win2003, ya que esto se adapta mejor a nuestra situación. Pero la idea de cambio de nombre también puede ser útil en algún momento
John Sibly
2

Para lograr el comportamiento de ejecución única, siempre puede codificar un script de murciélago 'wrapper' que verifica un archivo de bloqueo.

Cree el archivo de bloqueo en la primera ejecución, y cada vez que finalice la secuencia de comandos del contenedor solo se cerrará si encuentra el archivo de bloqueo:

if exist Lock.file goto :eof
Miguel
fuente