Programar tarea para que comience cuando termine otra tarea

En el Programador de tareas de Windows, puede ejecutar tareas tanto en la programación como después de que el evento específico se registre en el registro. (Se ha descrito en el artículo «Activadores de eventos en Windows».) En este artículo consideraremos cómo iniciar automáticamente una tarea del Programador después de completar la tarea anterior. Echemos un vistazo al algoritmo para configurar las dependencias de las tareas del Programador en ejecución, que puede personalizar para satisfacer sus necesidades.

En mi caso, después de completar un script, tuve que iniciar otro script desde otra cuenta de usuario. Entonces estas acciones no se pudieron unir en una sola tarea.

Supongamos que tenemos que iniciar el Apestar Tarea del programador después del Silbido la tarea está completada. Cuando se inicia o se completa una tarea, la información sobre este evento se registra en el registro del sistema. Nos centraremos en el evento de finalización de la tarea Ping.

Abierto Tarea Programador consola (Taskschd.msc), localice y seleccione el evento Ping, y en el panel inferior vaya al Historia pestaña, que contiene la información sobre todos los eventos asociados con esta tarea. Necesitamos el evento con el ID del evento. 102 (Tarea completada) que se genera después de que se completa la tarea.

Abra la descripción detallada del evento yendo a la Detalle pestaña y habilitar la Vista XML del evento. Según los datos XML, puede obtener todos los detalles del evento necesarios para crear un filtro. En particular, necesitamos:

EventID: 102
Nombre del proveedor: Microsoft-Windows-TaskScheduler
Canal: Microsoft-Windows-TaskScheduler / Operational
Nombre de la tarea: ping

Al crear un disparador para la tarea Pong, tenemos que crear una condición de disparador para que la tarea se inicie cuando el evento con el ID 102 aparezca en el registro (Activador de tarea En un evento). Pero el problema es que EventID 102 aparece después de que se completa cualquier tarea, no solo la tarea Ping. Crear activador de tareas: en un evento

Sin embargo, es posible crear una condición más flexible para la selección de eventos (Personalizado) si un filtro estándar no ayuda a seleccionar el evento con la suficiente precisión. Hacer clic Nuevo filtro de eventos:

nuevo filtro de eventos

Cree un nuevo filtro de eventos especificando los datos de la Vista XML del evento:

Registros de eventos: Microsoft-Windows-TaskScheduler / Operational

Origen del evento: Programador de tareas

Categoría de tarea: Tarea terminada

filtro de eventos por registro

Entonces ve al XML pestaña y eche un vistazo a la siguiente vista de filtro (XPath):

<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]</Select>
</Query>
</QueryList>

filtro de eventos xpath

Cambie el código XPath al siguiente, que filtrará el registro y buscará el evento TaskCompleted para la tarea ping:

<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]</Select>
</Query>
</QueryList>

configuración xml del evento

Una vez agregado el evento, intente iniciar la tarea de ping. Cuando se completa, la tarea pong debe iniciarse inmediatamente.

La explicación de XPath se muestra a continuación:

Explicación XPath

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *