schtasks create

Programa una tarea.

Sintaxis

schtasks /create /sc <scheduletype> /tn <taskname> /tr <taskrun> [/s <computer> [/u [<domain>\]<user> [/p <password>]]] [/ru {[<domain>\]<user> | system}] [/rp <password>] [/mo <modifier>] [/d <day>[,<day>...] | *] [/m <month>[,<month>...]] [/i <idletime>] [/st <starttime>] [/ri <interval>] [{/et <endtime> | /du <duration>} [/k]] [/sd <startdate>] [/ed <enddate>] [/it] [/np] [/z] [/xml <xmlfile>] [/v1] [/f] [/rl <level>] [/delay <delaytime>] [/hresult]

Parámetros

Parámetro Descripción
/sc <scheduletype> Especifica el tipo de programación. Los valores válidos incluyen:
  • MINUTE: especifica el número de minutos antes de que se ejecute la tarea.
  • HOURLY: especifica el número de horas antes de que se ejecute la tarea.
  • DAILY: especifica el número de días antes de que se ejecute la tarea.
  • WEEKLY: especifica el número de semanas antes de que se ejecute la tarea.
  • MONTHLY: especifica el número de meses antes de que se ejecute la tarea.
  • ONCE: especifica que esa tarea se ejecuta una vez en una fecha y hora especificadas.
  • ONSTART: especifica que la tarea se ejecuta cada vez que se inicia el sistema. Puede especificar una fecha de inicio o ejecutar la tarea la próxima vez que se inicie el sistema.
  • ONLOGON: especifica que la tarea se ejecuta cada vez que un usuario (cualquier usuario) inicia sesión. Puede especificar una fecha o ejecutar la tarea la próxima vez que el usuario inicie sesión.
  • ONIDLE: especifica que la tarea se ejecuta cada vez que el sistema permanece inactivo durante un período de tiempo especificado. Puede especificar una fecha o ejecutar la tarea la próxima vez que el sistema se quede inactivo.
  • ONEVENT: especifica que la tarea se ejecuta en función de un evento que coincide con la información del registro de eventos del sistema, incluido EventID.
/tn <taskname> Especifica un nombre para la tarea. Cada tarea del sistema debe tener un nombre único y debe cumplir las reglas para los nombres de archivo, sin superar los 238 caracteres. Use comillas para incluir nombres que incluyan espacios. Para almacenar la tarea programada en otra carpeta, ejecute /tn<folder name\task name>.
/tr <Taskrun> Especifica el programa o comando que ejecuta la tarea. Escriba la ruta de acceso completa y el nombre de archivo de un archivo ejecutable, un archivo de script o un archivo por lotes. El nombre de la ruta de acceso no debe superar los 262 caracteres. Si no agrega la ruta de acceso, schtasks asume que el archivo está en el directorio <systemroot>\System32.
/s <computer> Especifica el nombre o la dirección IP de un equipo remoto (con o sin barras diagonales inversas). La opción predeterminada es el equipo local.
/u [<domain>] Ejecuta este comando con los permisos de la cuenta de usuario especificada. El valor predeterminado corresponde a los permisos del usuario actual del equipo local. Los parámetros /u y /p son válidos solo cuando se usa /s. Los permisos de la cuenta especificada se usan para programar y ejecutar la tarea. Para ejecutar la tarea con los permisos de un usuario diferente, use el parámetro /ru. La cuenta de usuario debe ser miembro del grupo Administradores en el equipo remoto. Además, el equipo local debe estar en el mismo dominio que el equipo remoto o debe estar en un dominio de confianza para el dominio de equipo remoto.
/p <password> Especifica la contraseña de la cuenta de usuario especificada en el parámetro /u. Si usa el parámetro /u sin el parámetro /p o el argumento password, schtasks le pedirá una contraseña. Los parámetros /u y /p son válidos solo cuando se usa /s.
/ru {[<domain>]<user> | system} Ejecuta la tarea con permisos de la cuenta de usuario especificada. De forma predeterminada, la tarea se ejecuta con los permisos del usuario actual del equipo local o con los permisos del usuario especificado por el parámetro /u, si se incluye uno. El parámetro /ru es válido al programar tareas en equipos locales o remotos. Las opciones válidas incluyen:
  • Domain: especifica una cuenta de usuario alternativa.
  • System: especifica la cuenta del sistema local, una cuenta con privilegios elevados que el sistema operativo y los servicios del sistema usan.
/rp <password> Especifica la contraseña para la cuenta de usuario existente o la cuenta de usuario especificada por el parámetro /ru. Si no usa este parámetro al especificar una cuenta de usuario, SchTasks.exe le pedirá la contraseña la próxima vez que inicie sesión. No use el parámetro /rp para las tareas que se ejecutan con credenciales de cuenta del sistema (/ru System). La cuenta del sistema no tiene una contraseña y SchTasks.exe no solicita una.
/mo <modifiers> Especifica la frecuencia con la que se ejecuta la tarea dentro de su tipo de programación. Las opciones válidas incluyen:
  • MINUTE: especifica que la tarea se ejecuta cada <n> minutos. Puede usar cualquier valor entre 1 y 1439 minutos. De forma predeterminada, es 1 minuto.
  • HOURLY: especifica que la tarea se ejecuta cada <n> horas. Puede usar cualquier valor entre 1 y 23 minutos. De forma predeterminada, es 1 hora.
  • DAILY: especifica que la tarea se ejecuta cada <n> días. Puede usar cualquier valor entre 1 y 365 días. De forma predeterminada, es 1 día.
  • WEEKLY: especifica que la tarea se ejecuta cada <n> semanas. Puede usar cualquier valor entre 1 y 52 días. De forma predeterminada, es 1 semana.
  • MONTHLY: especifica que la tarea se ejecuta cada <n> meses. Puede usar cualquiera de los valores siguientes:
    • Un número entre 1 y 12 meses
    • LASTDAY: para ejecutar la tarea el último día del mes
    • FIRST, SECOND, THIRD o FOURTH junto con el parámetro /d <day>: especifica la semana y el día concretos para ejecutar la tarea. Por ejemplo, el tercer miércoles del mes.
  • ONCE: especifica que la tarea se ejecuta una vez.
  • ONSTART: especifica que la tarea se ejecuta en el inicio.
  • ONLOGON: especifica que la tarea se ejecuta cuando el usuario especificado por el parámetro /ru inicia sesión.
  • ONIDLE: especifica que la tarea se ejecuta después de que el sistema se quede inactivo durante el número de minutos especificado por el parámetro /i.
/d DAY[,DAY...] Especifica la frecuencia con la que se ejecuta la tarea dentro de su tipo de programación. Las opciones válidas incluyen:
  • WEEKLY: especifica que la tarea se ejecuta semanalmente proporcionando un valor entre 1 y 52 semanas. Opcionalmente, también puede agregar un día específico de la semana agregando un valor de MON a SUN o un intervalo de [MON a SUN...].
  • MONTHLY: especifica que la tarea se ejecuta semanalmente cada mes proporcionando un valor entre FIRST, SECOND, THIRD, FOURTH y LAST. Opcionalmente, también puede agregar un día específico de la semana agregando un valor de MON a SUN o proporcionando un número entre 1 y 12 meses. Si usa esta opción, también puede agregar un día específico del mes proporcionando un número entre 1 y 31.

    NOTA: el valor de fecha de 1 a 31 solo es válido sin el parámetro /mo o si el parámetro /mo es mensual (de 1 a 12). El valor predeterminado es el día 1 (el primer día del mes).

/m MONTH[,MONTH...] Especifica un mes o meses del año durante el cual se debe ejecutar la tarea programada. Las opciones válidas incluyen JAN - DEC y * (cada mes). El parámetro /m solo es válido con una programación de tipo MONTHLY. Es necesario cuando se usa el modificador LASTDAY. De lo contrario, es opcional y el valor predeterminado es * (cada mes).
/i <Idletime> Especifica cuántos minutos está inactivo el equipo antes de que se inicie la tarea. Un valor válido es un número entero de 1 a 999. Este parámetro solo es válido con una programación de tipo ONIDLE y, a continuación, es necesario.
/st <Starttime> Especifica la hora de inicio de la tarea, para lo que se utiliza el formato de hora de 24 horas, HH:mm. El valor predeterminado es la hora actual del equipo local. El parámetro /st es válido con las programaciones MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY y ONCE. Es necesario para una programación ONCE.
/ri <interval> Especifica el intervalo de repetición de la tarea programada, en minutos. Esto no es aplicable para los tipos de programación MINUTE, HOURLY, ONSTART, ONLOGON,ONIDLE y ONEVENT. El intervalo válido es de 1 a 599940 (599940 minutos = 9999 horas). Si se especifican los parámetros /et o /du, el valor predeterminado es 10 minutos.
/et <endtime> Especifica la hora del día a la que finaliza una programación de tareas por minuto u hora en formato de 24 horas <HH:MM>. Después de la hora de finalización especificada, schtasks no vuelve a iniciar la tarea hasta que se repite la hora de inicio. De forma predeterminada, las programaciones de tareas no tienen ninguna hora de finalización. Este parámetro es opcional y válido solo con una programación de tipo MINUTE u HOURLY.
/du <duration> Especifica un período máximo de tiempo durante una programación por minuto o por hora en formato de 24 horas <HHHH:MM>. Una vez transcurrida la hora especificada, schtasks no vuelve a iniciar la tarea hasta que se repite la hora de inicio. De forma predeterminada, las programaciones de tareas no tienen duración máxima. Este parámetro es opcional y válido solo con una programación de tipo MINUTE u HOURLY.
/k Detiene el programa que la tarea ejecuta en el momento especificado por /et o /du. Sin /k, schtasks no vuelve a iniciar el programa después de alcanzar la hora especificada por /et o /du, ni lo detiene si aún se está ejecutando. Este parámetro es opcional y válido solo con una programación de tipo MINUTE u HOURLY.
/sd <Startdate> Especifica la fecha en la que se inicia la programación de la tarea. El valor predeterminado es la fecha actual del equipo local. El formato de Startdate varía con la configuración regional seleccionada para el equipo local en Configuración regional y de idioma. Solo un formato es válido para cada configuración regional. Los formatos de fecha válidos incluyen (asegúrese de elegir el formato más similar al formato seleccionado para Fecha corta en Configuración regional y de idioma en el equipo local):
  • <MM>//: especifica el uso para formatos de mes primero, como inglés (Estados Unidos) y español (Panamá).
  • <DD>//: especifica el uso para formatos de día primero, como búlgaro y neerlandés (Países Bajos).
  • <YYYY>//: especifica el uso para formatos de año primero, como sueco y francés (Canadá).
/ed <Enddate> Especifica la fecha en la que finaliza la programación. Este parámetro es opcional. No es válido en una programación de tipo ONCE, ONSTART, ONLOGON, ONIDLE u ONEVENT. De forma predeterminada, las programaciones no tienen fecha de finalización. El valor predeterminado es la fecha actual del equipo local. El formato de Enddate varía con la configuración regional seleccionada para el equipo local en Configuración regional y de idioma. Solo un formato es válido para cada configuración regional. Los formatos de fecha válidos incluyen (asegúrese de elegir el formato más similar al formato seleccionado para Fecha corta en Configuración regional y de idioma en el equipo local):
  • <MM>//: especifica el uso para formatos de mes primero, como inglés (Estados Unidos) y español (Panamá).
  • <DD>//: especifica el uso para formatos de día primero, como búlgaro y neerlandés (Países Bajos).
  • <YYYY>//: especifica el uso para formatos de año primero, como sueco y francés (Canadá).
/ec <channelname> Especifica el nombre del canal de eventos desencadenado por el tipo de programación ONEVENT que coincide con los criterios de un registro de eventos del sistema.
/it Especifica que se ejecute la tarea programada solo cuando Ejecutar como usuario (la cuenta de usuario en la que se ejecuta la tarea) haya iniciado sesión en el equipo. Este parámetro no tiene ningún efecto en las tareas que se ejecutan con permisos del sistema o en las tareas que ya tienen establecida la propiedad interactive-only. No se puede usar un comando change para quitar la propiedad interactive-only de una tarea. De forma predeterminada, Ejecutar como usuario es el usuario actual del equipo local cuando la tarea se programa o la cuenta se especifica mediante el parámetro /u, si se usa uno. Sin embargo, si el comando incluye el parámetro /ru, Ejecutar como usuario es la cuenta especificada por el parámetro /ru.
/np No se almacena ninguna contraseña. La tarea se ejecuta de forma no interactiva como el usuario especificado. Solo están disponibles los recursos locales.
/z Especifica la eliminación de la tarea tras la finalización de su programación.
/xml <xmlfile> Crea una tarea especificada en el archivo XML. Se puede combinar con los parámetros /ru y /rp, o bien con el parámetro /rp por sí solo si el archivo XML ya contiene la información de la cuenta de usuario.
/v1 Crea una tarea visible para los sistemas operativos anteriores a Vista. Esto no es compatible con el parámetro /XML.
/f Especifica la creación de la tarea y la supresión de las advertencias si la tarea especificada ya existe.
/rl <level> Especifica el nivel de ejecución del trabajo. Los valores aceptables son LIMITED (las tareas programadas se ejecutarán con el menor nivel de privilegios, como las cuentas de usuario estándar) y HIGHEST (las tareas programadas se ejecutarán con el nivel más alto de privilegios, como las cuentas de superusuario). El valor predeterminado es Limited.
/delay <delaytime> Especifica el tiempo de espera para retrasar la ejecución de la tarea después de desencadenarse en formato mmmm:ss. Esto solo es válido para los tipos de programación ONSTART, ONLOGON y ONEVENT.
/hresult Especifica que el código de salida del proceso esté en formato HRESULT.
/? Muestra la ayuda en el símbolo del sistema.

Programación de una tarea para que se ejecute cada <n> minutos

En una programación de minutos, se requiere el parámetro /sc minute. El parámetro /mo (modificador) es opcional y especifica el número de minutos entre cada ejecución de la tarea. El valor predeterminado para /mo es 1 (cada minuto). Los parámetros /et (hora de finalización) y /du (duración) son opcionales y se pueden usar con o sin el parámetro (tarea final) /k.

Ejemplos

  • Para programar un script de seguridad, Sec.vbs, para que se ejecute cada 20 minutos, escriba:

    schtasks /create /sc minute /mo 20 /tn "Security Script" /tr \\central\data\scripts\sec.vbs
    

    Dado que en este ejemplo no se incluye una fecha u hora de inicio, la tarea se inicia 20 minutos después de que se complete el comando y se ejecuta cada 20 minutos después de que se ejecute el sistema. Observe que el archivo de origen del script de seguridad se encuentra en un equipo remoto, pero que la tarea está programada y se ejecuta en el equipo local.

  • Para programar un script de seguridad, Sec.vbs, para que se ejecute en el equipo local cada 100 minutos entre las 5:00 p. m. y las 7:59 a. m. cada día, escriba:

    schtasks /create /tn "Security Script" /tr sec.vbs /sc minute /mo 100 /st 17:00 /et 08:00 /k
    

    En este ejemplo se usa el parámetro /sc para especificar una programación de minutos y el parámetro /mo para especificar un intervalo de 100 minutos. Usa los parámetros /st y /et para especificar la hora de inicio y la hora de finalización de la programación de cada día. También usa el parámetro /k para detener el script si sigue ejecutándose a las 7:59 a. m. Sin /k, schtasks no iniciaría el script después de las 7:59 a. m., pero si la instancia iniciada a las 6:20 a. m. todavía estaba en ejecución, no la detendría.

Programación de una tarea para que se ejecute cada <n> horas

En una programación por hora, se requiere el parámetro /sc hourly. El parámetro /mo (modificador) es opcional y especifica el número de horas entre cada ejecución de la tarea. El valor predeterminado para /mo es 1 (cada hora). El parámetro /k (tarea de finalización) es opcional y se puede usar con /et (finalizar a la hora especificada) o /du (finalizar después del intervalo especificado).

Ejemplos

  • Para programar el programa MyApp para que se ejecute cada cinco horas, a partir del primer día de marzo de 2002, escriba:

    schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn MyApp /tr c:\apps\myapp.exe
    

    En este ejemplo, el equipo local usa la opción Inglés (Zimbabwe) en Configuración regional y de idioma, por lo que el formato de la fecha de inicio es MM/DD/AAAA (03/01/2002).

  • Para programar la aplicación MyApp se ejecute cada hora, a partir de cinco minutos pasada la medianoche, escriba:

    schtasks /create /sc hourly /st 00:05 /tn MyApp /tr c:\apps\myapp.exe
    
  • Para programar la aplicación MyApp para que se ejecute cada 3 horas, durante un total de 10 horas, escriba:

    schtasks /create /tn MyApp /tr MyApp.exe /sc hourly /mo 3 /st 00:00 /du 0010:00
    

    En este ejemplo, la tarea se ejecuta a las 12:00 a. m., 3:00 a. m., 6:00 a. m. y 9:00 a. m. Dado que la duración es de 10 horas, la tarea no se vuelve a ejecutar a las 12:00 p. m. En su lugar, comienza de nuevo a las 12:00 a. m. el día siguiente. Además, dado que el programa se ejecuta durante unos minutos, el parámetro /k, que detiene el programa si todavía se está ejecutando cuando expira la duración, no es necesario.

Programación de una tarea que se ejecute cada <n> días

En una programación diaria, se requiere el parámetro /sc daily. El parámetro /mo (modificador) es opcional y especifica el número de días entre cada ejecución de la tarea. El valor predeterminado para /mo es 1 (cada día).

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute una vez al día, todos los días, a las 8:00 a. m. hasta el 31 de diciembre de 2021, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /st 08:00 /ed 31/12/2021
    

    En este ejemplo, el sistema de equipo local se establece en la opción Inglés (Reino Unido) en Configuración regional y de idioma, por lo que el formato de la fecha de finalización es DD/MM/AAAA (31/12/2021). Además, dado que en este ejemplo no se incluye el parámetro /mo, se usa el intervalo predeterminado de 1 para ejecutar el comando todos los días.

  • Para programar la aplicación MyApp para que se ejecute cada doce días a las 1:00 p. m. (13:00) a partir del 31 de diciembre de 2021, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /mo 12 /sd 12/31/2002 /st 13:00
    

    En este ejemplo, el sistema se establece en la opción Inglés (Zimbabwe) en Configuración regional y de idioma, por lo que el formato de la fecha de finalización es MM/DD/AAAA (12/31/2021).

  • Para programar un script de seguridad, Sec.vbs, para que se ejecute cada 70 días, escriba:

    schtasks /create /tn "Security Script" /tr sec.vbs /sc daily /mo 70 /it
    

    En este ejemplo, el parámetro /it se usa para especificar que la tarea se ejecuta solo cuando el usuario en cuya cuenta se ejecuta la tarea inicia sesión en el equipo. Dado que la tarea se ejecuta con los permisos de una cuenta de usuario específica, esta tarea solo se ejecuta cuando ese usuario ha iniciado sesión.

    Nota:

    Para identificar las tareas con la propiedad /it interactive-only, use una consulta detallada (/query /v). En una visualización de consulta detallada de una tarea con /it, el campo Modo de inicio de sesióntiene un valor de Solo interactivo.

Programación de una tarea que se ejecute cada <n> semanas

En una programación semanal, se requiere el parámetro /sc weekly. El parámetro /mo (modificador) es opcional y especifica el número de semanas entre cada ejecución de la tarea. El valor predeterminado para /mo es 1 (cada semana).

Las programaciones semanales también tienen un parámetro /d opcional para programar la tarea para que se ejecute en días especificados de la semana o todos los días (). El valor predeterminado es MON (lunes). La opción diaria () es equivalente a programar una tarea diariamente.

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute en un equipo remoto cada seis semanas, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 6 /s Server16 /u Admin01
    

    Dado que en este ejemplo se deja fuera el parámetro /d, la tarea se ejecuta los lunes. En este ejemplo también se usa el parámetro /s para especificar el equipo remoto y el parámetro /u para ejecutar el comando con los permisos de la cuenta de administrador del usuario. Además, dado que el parámetro /p se deja fuera, SchTasks.exe solicita al usuario la contraseña de la cuenta de administrador y, debido a que el comando se ejecuta de forma remota, todas las rutas de acceso de dicho comando, incluida la ruta de acceso a MyApp.exe, hacen referencia a rutas de acceso en el equipo remoto.

  • Para programar una tarea que se ejecute cada dos viernes, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI
    

    En este ejemplo se usa el parámetro /mo para especificar el intervalo de dos semanas y el parámetro /d para especificar el día de la semana. Para programar una tarea que se ejecuta cada viernes, deje el parámetro /mo o establézcalo en 1.

Programación de una tarea para que se ejecute cada <n> meses

En este tipo de programación, se requiere el parámetro /sc monthly. El parámetro /mo (modificador), que especifica el número de meses entre cada ejecución de la tarea, es opcional y el valor predeterminado es 1 (cada mes). Este tipo de programación también tiene un parámetro /d opcional para programar la tarea que se va a ejecutar en una fecha especificada del mes. El valor predeterminado 1 (el primer día del mes).

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute el primer día de cada mes, escriba:

    schtasks /create /tn MyApp /tr myapp.exe /sc monthly
    

    El valor predeterminado para el parámetro /mo (modificador) y el parámetro /d (día) es 1, por lo que no es necesario usar ninguno de esos parámetros para este ejemplo.

  • Para programar la aplicación MyApp para que se ejecute cada tres meses, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo 3
    

    En este ejemplo se usa el parámetro /mo para especificar un intervalo de 3 meses.

  • Para programar la aplicación MyApp para que se ejecute cada dos meses el día 21 del mes a medianoche durante un año, desde el 2 de julio de 2002 hasta el 30 de junio de 2003, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo 2 /d 21 /st 00:00 /sd 2002/07/01 /ed 2003/06/30
    

    En este ejemplo se usa el parámetro /mo para especificar el intervalo mensual (cada dos meses), el parámetro /d para especificar la fecha, el parámetro /st para especificar la hora y los parámetros /sd y /ed para especificar la fecha de inicio y la fecha de finalización, respectivamente. También en este ejemplo, el equipo local se establece en la opción Inglés (Sudáfrica) en Configuración regional y de idioma, por lo que las fechas se especifican en el formato local, AAAA/MM/DD.

Programación de una tarea para que se ejecute en un día específico de la semana

El día de la programación de la semana es una variación de la programación semanal. En una programación semanal, se requiere el parámetro /sc weekly. El parámetro /mo (modificador) es opcional y especifica el número de semanas entre cada ejecución de la tarea. El valor predeterminado para /mo es 1 (cada semana). El parámetro /d, que es opcional, programa la tarea para que se ejecute en días especificados de la semana o todos los días (*). El valor predeterminado es MON (lunes). La opción diaria (/d *) es equivalente a programar una tarea diariamente.

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute cada semana el miércoles, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /d WED
    

    En este ejemplo se usa el parámetro /d para especificar el día de la semana. Dado que el comando deja fuera el parámetro /mo, la tarea se ejecuta cada semana.

  • Para programar una tarea para que se ejecute el lunes y el viernes de cada octava semana, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 8 /d MON,FRI
    

    En este ejemplo se usa el parámetro /d para especificar los días y el parámetro /mo para especificar el intervalo de ocho semanas.

Programación de una tarea para que se ejecute en una semana específica del mes

En este tipo de programación, se requieren los parámetros /sc mensual, /mo (modificador) y /d (día). El parámetro /mo (modificador) especifica la semana en la que se ejecuta la tarea. El parámetro /d especifica el día de la semana. Solo puede especificar un día de la semana para este tipo de programación. Esta programación también tiene un parámetro /m (mes) opcional que le permite programar la tarea para meses concretos o para cada mes (*). El valor predeterminado para el parámetro /m es cada mes (*).

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute el segundo domingo de cada mes, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo SECOND /d SUN
    

    En este ejemplo se usa el parámetro /mo para especificar la segunda semana del mes y el parámetro /d para especificar el día.

  • Para programar la aplciación MyApp para que se ejecute el primer lunes de marzo y septiembre, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo FIRST /d MON /m MAR,SEP
    

    En este ejemplo se usa el parámetro /mo para especificar la primera semana del mes y el parámetro /d para especificar el día. Usa el parámetro /m para especificar el mes, separando los argumentos de los meses con una coma.

Programación de una tarea para que se ejecute en un día específico cada mes

En este tipo de programación, se requieren los parámetros /sc monthly y /d (día). El parámetro /d especifica una fecha del mes (1 a 31), no un día de la semana y solo se puede especificar un día en la programación. El parámetro /m (mes) es opcional, siendo el valor predeterminado cada mes (), mientras que el parámetro /mo (modificador) no es válido con este tipo de programación.

Schtasks.exe no le permitirá programar una tarea para una fecha que no esté en un mes especificado por el parámetro /m. Por ejemplo, intentando programar el día 31 de febrero. Sin embargo, si no usa el parámetro /m y programa una tarea para una fecha que no aparece en cada mes, la tarea no se ejecutará en los meses más cortos. Para programar una tarea para el último día del mes, use el tipo de programación del último día.

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute el primer día de cada mes, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly
    

    Dado que el modificador predeterminado es none (ningún modificador), este comando usa el día predeterminado de 1 y el mes predeterminado de cada mes, sin necesidad de parámetros adicionales.

  • Para programar la aplicación MyApp para que se ejecute el 15 de mayo y el 15 de junio a las 3:00 p. m. (15:00), escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /m MAY,JUN /st 15:00
    

    En este ejemplo se usa el parámetro /d para especificar la fecha y el parámetro /m para especificar los meses. También se usa el parámetro /st para especificar la hora de inicio.

Programación de una tarea para que se ejecute el último día de un mes

En el tipo de programación de último día, se requieren los parámetros /sc monthly, /mo LASTDAY (modificador) y /m (mes). El parámetro /d (día) no es válido.

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute el último día de cada mes, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo lastday /m *
    

    En este ejemplo se usa el parámetro /mo para especificar el último día y el parámetro /m con el carácter comodín (*) para indicar que el programa se ejecute cada mes.

  • Para programar la aplicación MyApp para que se ejecute el último día de febrero y el último día de marzo a las 6:00 p. m., escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo lastday /m FEB,MAR /st 18:00
    

    En este ejemplo se usa el parámetro /mo para especificar el último día, el parámetro /m para especificar los meses y el parámetro /st para especificar la hora de inicio.

Programación para una sola ejecución

En el tipo de programación de una sola ejecución, se requiere el parámetro /sc once. El parámetro /st, que especifica la hora en que se ejecuta la tarea, es necesario. El parámetro /sd, que especifica la fecha en la que se ejecuta la tarea, es opcional, mientras que los parámetros /mo (modificador) y /ed (fecha de finalización) no son válidos.

Schtasks no le permitirá programar una tarea para que se ejecute una vez si la fecha y hora especificadas son pasadas, para lo cual se utiliza la hora del equipo local como referencia. Para programar una tarea para que se ejecute una vez en un equipo remoto en una zona horaria diferente, debe programarla antes de que se produzca esa fecha y hora en dicho equipo.

Ejemplo

  • Para programar la aplicación MyApp para que se ejecute a medianoche el 1 de enero de 2003, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /sd 01/01/2003 /st 00:00
    

    En este ejemplo se usa el parámetro /sc para especificar el tipo de programación y los parámetros /sd y /st para especificar la fecha y hora. También en este ejemplo, el equipo local usa la opción Inglés (Estados Unidos) en Configuración regional y de idioma, por lo que el formato de la fecha de inicio es MM/DD/AAAA.

Programación de una tarea que se ejecute cada vez que se inicie el sistema

En el tipo de programación para el inicio, se requiere el parámetro /sc onstart. El parámetro /sd (fecha de inicio) es opcional y el valor predeterminado es la fecha actual.

Ejemplo

  • Para programar la aplicación MyApp para que se ejecute cada vez que se inicie el sistema, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart
    

    En este ejemplo, el equipo local usa la opción Inglés (Estados Unidos) en Configuración regional y de idioma, por lo que el formato de la fecha de inicio es MM/DD/AAAA.

Programación de una tarea para que se ejecute cuando un usuario inicia sesión

El tipo de programación para el inicio de sesión programa una tarea que se ejecuta cada vez que cualquier usuario inicia sesión en el equipo. En el tipo de programación para el inicio de sesión, se requiere el parámetro /sc onlogon. El parámetro /sd (fecha de inicio) es opcional y el valor predeterminado es la fecha actual.

Ejemplo

  • Para programar una tarea para que se ejecute cuando un usuario inicia sesión en un equipo remoto, escriba:

    schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23
    

    En este ejemplo se programa un archivo por lotes para que se ejecute cada vez que un usuario (cualquier usuario) inicia sesión en el equipo remoto. Usa el parámetro /s para identificar el equipo remoto. Dado que el comando es remoto, todas sus rutas de acceso, incluida la ruta de acceso al archivo por lotes, hacen referencia a una ruta de acceso en el equipo remoto.

Programación de una tarea para que se ejecute cuando el sistema está inactivo

El tipo de programación para cuando hay inactividad programa una tarea que se ejecuta siempre que no haya ninguna actividad de usuario durante el tiempo especificado por el parámetro /i. En el tipo de programación de inactividad, se requieren los parámetros /sc onidle y /i. /sd (fecha de inicio) es opcional y el valor predeterminado es la fecha actual.

Ejemplo

  • Para programar la aplicación MyApp para que se ejecute siempre que el equipo esté inactivo, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onidle /i 10
    

    En este ejemplo se usa el parámetro /i necesario para especificar que el equipo debe permanecer inactivo durante diez minutos antes de que se inicie la tarea.

Programación de una tarea para que se ejecute ahora

Schtasks no tiene una opción Ejecutar ahora, pero puede simular esa opción mediante la creación de una tarea que se ejecuta una vez y se inicia en unos minutos.

Ejemplo

  • Para programar una tarea que se ejecute una vez, el 13 de noviembre de 2020 a las 2:18 p. m., hora local, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /st 14:18 /sd 11/13/2002
    

    En este ejemplo, el equipo local usa la opción Inglés (Estados Unidos) en Configuración regional y de idioma, por lo que el formato de la fecha de inicio es MM/DD/AAAA.

Programación de una tarea para que se ejecute con permisos diferentes

Puede programar tareas de todos los tipos para que se ejecuten con permisos de una cuenta alternativa tanto en el equipo local como en el remoto. Además de los parámetros necesarios para el tipo de programación determinado, se requiere el parámetro /ru y el parámetro /rp es opcional.

Ejemplos

  • Para ejecutar la aplciación MyApp en el equipo local, escriba:

    schtasks /create /tn MyApp /tr myapp.exe /sc weekly /d TUE /ru Admin06
    

    En este ejemplo se usa el parámetro /ru para especificar que la tarea se debe ejecutar con los permisos de la cuenta de administrador del usuario (Admin06). También en este ejemplo la tarea se programa para ejecutarse todos los martes, pero se puede usar cualquier tipo de programación para una ejecución de la tarea con permisos alternativos.

    En respuesta, SchTasks.exe solicita la contraseña para ejecutar como para la cuenta Admin06 y, a continuación, muestra un mensaje de operación correcta:

    Please enter the run as password for Admin06: ********
    SUCCESS: The scheduled task MyApp has successfully been created.
    
  • Para ejecutar la aplicación MyApp en el equipo Marketing cada cuatro días, escriba:

    schtasks /create /tn MyApp /tr myapp.exe /sc daily /mo 4 /s Marketing /u Marketing\Admin01 /ru Reskits\User01
    

    En este ejemplo se usa el parámetro /sc para especificar una programación diaria y el parámetro /mo para especificar un intervalo de cuatro días. Además, en este ejemplo se usa el parámetro /s para proporcionar el nombre del equipo remoto y el parámetro /u para especificar una cuenta con permiso para programar una tarea en dicho equipo (Admin01 en el equipo Marketing). Por último, en este ejemplo se usa el parámetro /ru para especificar que la tarea se debe ejecutar con los permisos de la cuenta de no administrador del usuario (User01 en el dominio Reskits). Sin el parámetro /ru, la tarea se ejecutaría con los permisos de la cuenta especificada por /u.

    Al ejecutar este ejemplo, Schtasks solicita primero la contraseña del usuario denominado por el parámetro /u (para ejecutar el comando) y, a continuación, solicita la contraseña del usuario denominado por el parámetro /ru (para ejecutar la tarea). Después de autenticar las contraseñas, schtasks muestra un mensaje que indica que la tarea está programada:

    Type the password for Marketing\Admin01:********
    Please enter the run as password for Reskits\User01: ********
    SUCCESS: The scheduled task MyApp has successfully been created.
    
  • Para ejecutar el programa AdminCheck.exe para que se ejecute en el equipo Public todos los viernes a las 4:00 a. m., pero solo si el administrador del equipo ha iniciado sesión, escriba:

    schtasks /create /tn "Check Admin" /tr AdminCheck.exe /sc weekly /d FRI /st 04:00 /s Public /u Domain3\Admin06 /ru Public\Admin01 /it
    

    En este ejemplo se usa el parámetro /sc para especificar una programación semanal, el parámetro /d para especificar el día y el parámetro /st para especificar la hora de inicio. También usa el parámetro /s para proporcionar el nombre del equipo remoto, el parámetro /u para especificar una cuenta con permiso para programar una tarea en dicho equipo, el parámetro /ru para configurar la tarea para que se ejecute con los permisos del administrador del equipo Public (Public\Admin01) y el parámetro /it para indicar que la tarea se ejecute solamente cuando se inicia sesión en la cuenta Public\Admin01.

    Nota:

    Para identificar las tareas con la propiedad /it interactive-only, use una consulta detallada (/query /v). En una visualización de consulta detallada de una tarea con /it, el campo Modo de inicio de sesión tiene un valor de Solo interactivo.

Programación de una tarea para que se ejecute con permisos del sistema

Las tareas de todos los tipos se pueden ejecutar con permisos de la cuenta System tanto en el equipo local como en el equipo remoto. Además de los parámetros necesarios para el tipo de programación determinado, se requiere el parámetro /ru system (o /ru), mientras que el parámetro /rp no es válido.

Importante

La cuenta System no tiene derechos de inicio de sesión interactivo. Los usuarios no pueden ver programas o tareas que se ejecutan con permisos del sistema ni interactuar con dichos programas o tareas. El parámetro /ru determina los permisos con los que se ejecuta la tarea, no los permisos usados para programarla. Solo los administradores pueden programar tareas, independientemente del valor del parámetro /ru.

Para identificar las tareas que se ejecutan con permisos del sistema, use una consulta detallada (/query /v). En una visualización de consulta detallada de una tarea de ejecución del sistema, el campo Ejecutar como usuario tiene un valor de NT AUTHORITY\SYSTEM y el campo Modo de inicio de sesión tiene un valor de Solo en segundo plano.

Ejemplos

  • Para programar la aplicación MyApp para que se ejecute en el equipo local con permisos de la cuenta System, escriba:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /ru System
    

    En este ejemplo, la tarea está programada para ejecutarse en el decimoquinto día de cada mes, pero puede usar cualquier tipo de programación para una ejecución de tareas con permisos del sistema. Además, en este ejemplo se usa el parámetro /ru System para especificar el contexto de seguridad del sistema. Dado que las tareas del sistema no usan una contraseña, el parámetro /rp se deja fuera.

    En respuesta, SchTasks.exe muestra un mensaje informativo y un mensaje de operación correcta, sin solicitar una contraseña:

    INFO: The task will be created under user name (NT AUTHORITY\SYSTEM).
    SUCCESS: The Scheduled task MyApp has successfully been created.
    
  • Para programar la aplicación MyApp para que se ejecute en el equipo Finance01 cada mañana a las 4:00 a. m., con permisos del sistema, escriba:

    schtasks /create /tn MyApp /tr myapp.exe /sc daily /st 04:00 /s Finance01 /u Admin01 /ru System
    

    En este ejemplo se usa el parámetro /tn para asignar un nombre a la tarea y el parámetro /tr para especificar la copia remota del programa MyApp, el parámetro /sc para especificar una programación diaria, pero deja fuera el parámetro /mo porque 1 (todos los días) es el valor predeterminado. En este ejemplo también se usa el parámetro /st para especificar la hora de inicio, que también es la hora a la que se ejecutará la tarea cada día, el parámetro /s para proporcionar el nombre del equipo remoto, el parámetro /u para especificar una cuenta con permiso para programar una tarea en el equipo remoto y el parámetro /ru para especificar que la tarea debe ejecutarse en la cuenta System. Sin el parámetro /ru, la tarea se ejecutaría con los permisos de la cuenta especificada por el parámetro /u.

    Schtasks.exe solicita la contraseña del usuario denominado por el parámetro /u y, después de autenticar dicha contraseña, muestra un mensaje que indica que se crea la tarea y que se ejecutará con permisos de la cuenta System:

    Type the password for Admin01:**********
    
    INFO: The Schedule Task MyApp will be created under user name (NT AUTHORITY\
    SYSTEM).
    SUCCESS: The scheduled task MyApp has successfully been created.
    

Programación de una tarea para que ejecute más de un programa

Cada tarea ejecuta solo un programa. Sin embargo, puede crear un archivo por lotes que ejecute varios programas y, a continuación, programar una tarea para ejecutar dicho archivo.

  1. Con un editor de texto, como Bloc de notas, cree un archivo por lotes que incluya el nombre y la ruta de acceso completa al archivo .exe necesario para iniciar los programas Visor de eventos (Eventvwr.exe) y Monitor de sistema (Perfmon.exe).

    C:\Windows\System32\Eventvwr.exe
    C:\Windows\System32\Perfmon.exe
    
  2. Guarde el archivo como MyApps.bat, abra schtasks.exe y, a continuación, cree una tarea para ejecutar MyApps.bat; para ello, escriba:

    schtasks /create /tn Monitor /tr C:\MyApps.bat /sc onlogon /ru Reskit\Administrator
    

    Este comando crea la tarea Monitor, que se ejecuta cada vez que alguien inicia sesión. Usa el parámetro /tn para asignar un nombre a la tarea, el parámetro /tr para ejecutar MyApps.bat, el parámetro /sc para indicar el tipo de programación OnLogon y el parámetro /ru para ejecutar la tarea con los permisos de la cuenta de administrador del usuario.

    El resultado de este comando es que, cada vez que un usuario inicia sesión en el equipo, la tarea se inicia tanto en Visor de eventos como en Monitor de sistema.

Programación de una tarea para que se ejecute en un equipo remoto

Para programar una tarea para que se ejecute en un equipo remoto, debe agregarla a la programación de dicho equipo. Las tareas de todos los tipos se pueden programar en un equipo remoto, pero se deben cumplir las condiciones siguientes:

  • Debe tener permiso para programar la tarea. Como tal, debe iniciar sesión en el equipo local con una cuenta que sea miembro del grupo Administradores en el equipo remoto, o bien debe usar el parámetro /u para proporcionar las credenciales de un administrador de este último equipo.

  • Puede usar el parámetro /u solamente cuando los equipos local y remoto están en el mismo dominio, o si el equipo local está en un dominio en el que el dominio del equipo remoto confía. De lo contrario, el equipo remoto no puede autenticar la cuenta de usuario especificada y no puede comprobar que la cuenta sea miembro del grupo Administradores.

  • La tarea debe tener permisos suficientes para ejecutarse en el equipo remoto. Los permisos necesarios varían con la tarea. De forma predeterminada, la tarea se ejecuta con el permiso del usuario actual del equipo local o, si se usa el parámetro /u, dicha tarea se ejecuta con el permiso de la cuenta especificada por el parámetro /u. Sin embargo, puede usar el parámetro /ru para ejecutar la tarea con permisos de una cuenta de usuario diferente o con permisos del sistema.

Ejemplos

  • Para programar la aplicación MyApp (como administrador) para que se ejecute en el equipo remoto SRV01 cada diez días y que empiece inmediatamente, escriba:

    schtasks /create /s SRV01 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc daily /mo 10
    

    En este ejemplo se usa el parámetro /s para proporcionar el nombre del equipo remoto. Dado que el usuario actual local es un administrador del equipo remoto, el parámetro /u, que proporciona permisos alternativos para programar la tarea, no es necesario.

    Nota:

    Al programar tareas en un equipo remoto, todos los parámetros hacen referencia a él. Por lo tanto, el archivo especificado por el parámetro /tr hace referencia a la copia de MyApp.exe en el equipo remoto.

  • Para programar la aplicación MyApp (como usuario) para que se ejecute en el equipo remoto SRV06 cada tres horas, escriba:

    schtasks /create /s SRV06 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc hourly /mo 3 /u reskits\admin01 /p R43253@4$ /ru SRV06\user03 /rp MyFav!!Pswd
    

    Dado que los permisos de administrador son necesarios para programar una tarea, el comando usa los parámetros /u y /p para proporcionar las credenciales de la cuenta de administrador del usuario (Admin01 en el dominio Reskits). De forma predeterminada, estos permisos también se usan para ejecutar la tarea. Sin embargo, dado que la tarea no necesita permisos de administrador para ejecutarse, el comando incluye los parámetros /u y /rp para invalidar el valor predeterminado y ejecutar la tarea con permiso de la cuenta que no es administrador del usuario en el equipo remoto.

  • Para programar la aplicación MyApp (como usuario) para que se ejecute en el equipo remoto SRV02 el último día de cada mes.

    schtasks /create /s SRV02 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc monthly /mo LASTDAY /m * /u reskits\admin01
    

    Dado que el usuario actual local (user03) no es un administrador del equipo remoto, el comando usa el parámetro /u para proporcionar las credenciales de la cuenta de administrador del usuario (Admin01 en el dominio Reskits). Los permisos de la cuenta de administrador se usarán para programar y ejecutar la tarea.

    Dado que el comando no incluía el parámetro /p (contraseña), schtasks solicita la contraseña. A continuación, muestra un mensaje de operación correcta y, en este caso, una advertencia:

    Type the password for reskits\admin01:********
    
    SUCCESS: The scheduled task MyApp has successfully been created.
    WARNING: The scheduled task MyApp has been created, but may not run because the account information could not be set.
    

    Esta advertencia indica que el dominio remoto no pudo autenticar la cuenta especificada por el parámetro /u. En este caso, el dominio remoto no pudo autenticar la cuenta de usuario porque el equipo local no es miembro de un dominio en el que el dominio del equipo remoto confía. Cuando esto ocurre, el trabajo de tarea aparece en la lista de tareas programadas, pero la tarea está realmente vacía y no se ejecutará.

    La siguiente visualización de una consulta detallada expone el problema con la tarea. En la visualización, tenga en cuenta que el valor de Hora próxima ejecución es Nunca y que el valor de Ejecutar como usuario es No se pudo obtener de la base de datos del programador de tareas.

    Si este equipo hubiera sido miembro del mismo dominio o de un dominio de confianza, la tarea se habría programado correctamente y se habría ejecutado según lo especificado.

    HostName: SRV44
    TaskName: MyApp
    Next Run Time: Never
    Status:
    Logon mode: Interactive/Background
    Last Run Time: Never
    Last Result: 0
    Creator: user03
    Schedule: At 3:52 PM on day 31 of every month, start
    starting 12/14/2001
    Task To Run: c:\program files\corpapps\myapp.exe
    Start In: myapp.exe
    Comment: N/A
    Scheduled Task State: Disabled
    Scheduled Type: Monthly
    Start Time: 3:52:00 PM
    Start Date: 12/14/2001
    End Date: N/A
    Days: 31
    Months: JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NO
    V,DEC
    Run As User: Could not be retrieved from the task sched
    uler database
    Delete Task If Not Rescheduled: Enabled
    Stop Task If Runs X Hours and X Mins: 72:0
    Repeat: Every: Disabled
    Repeat: Until: Time: Disabled
    Repeat: Until: Duration: Disabled
    Repeat: Stop If Still Running: Disabled
    Idle Time: Disabled
    Power Management: Disabled
    

Comentarios

  • Para ejecutar el comando /create con los permisos de un usuario diferente, use el parámetro /u. El parámetro /u solo es válido para programar tareas en equipos remotos.

  • Para ver más ejemplos de schtasks /create, escriba schtasks /create /? en un símbolo del sistema.

  • Para programar una tarea para que se ejecute con permisos de otro usuario, use el parámetro /ru. El parámetro /ru es válido para las tareas en equipos locales y remotos.

  • Para usar el parámetro /u, el equipo local debe estar en el mismo dominio que el equipo remoto o debe estar en un dominio en el que el dominio del equipo remoto confía. De lo contrario, la tarea no se crea o el trabajo de la tarea está vacío y la tarea no se ejecuta.

  • Schtasks siempre solicita una contraseña a menos que proporcione una, incluso cuando programe una tarea en el equipo local mediante la cuenta de usuario actual. Se trata de un comportamiento normal para schtasks.

  • Schtasks no comprueba las ubicaciones de los archivos de programa ni las contraseñas de las cuentas de usuario. Si no escribe la ubicación de archivo correcta o la contraseña correcta para la cuenta de usuario, la tarea se crea, pero no se ejecutará. Además, si la contraseña de una cuenta cambia o expira y no se cambia la contraseña guardada en la tarea, la tarea no se ejecutará.

  • La cuenta System no tiene derechos de inicio de sesión interactivo. Los usuarios no ven los programas que se ejecutan con permisos del sistema y no pueden interactuar con ellos.

  • Cada tarea ejecuta solo un programa. Sin embargo, puede crear un archivo por lotes que inicie varias tareas y, a continuación, programar una tarea para ejecutar dicho archivo.

  • Puede probar una tarea tan pronto como la cree. Use la operación de ejecución para probar la tarea y, a continuación, compruebe el archivo SchedLgU.txt (SystemRoot\SchedLgU.txt) para ver si hay errores.