Compartir a través de


Ejemplo de desencadenador de arranque (scripting)

En este ejemplo de scripting se muestra cómo crear una tarea programada para ejecutar el Bloc de notas cuando se arranca el sistema. La tarea contiene un desencadenador de arranque que especifica un límite de inicio y un tiempo de retraso para que la tarea se inicie después de arrancar el sistema. La tarea también contiene una acción que especifica la tarea que se va a ejecutar el Bloc de notas. La tarea se registra mediante la cuenta de servicio local como contexto de seguridad para ejecutar la tarea.

En el procedimiento siguiente se describe cómo programar un archivo ejecutable como el Bloc de notas para iniciarse cuando se arranca el sistema.

Para programar que el Bloc de notas se inicie cuando se arranque el sistema

  1. Cree un objeto TaskService . Este objeto permite crear la tarea en una carpeta especificada.
  2. Obtenga una carpeta de tareas y cree una tarea. Use el método TaskService.GetFolder para obtener la carpeta donde se almacena la tarea y el método TaskService.NewTask para crear el objeto TaskDefinition que representa la tarea.
  3. Defina información sobre la tarea mediante el objeto TaskDefinition . Utilice la propiedad TaskDefinition.Settings para definir la configuración que determina cómo el servicio Programador de tareas realiza la tarea y la propiedad TaskDefinition.RegistrationInfo para definir la información que describe la tarea.
  4. Cree un desencadenador de inicio de sesión mediante la propiedad TaskDefinition.Triggers . Esta propiedad proporciona acceso al objeto TriggerCollection . Use el método TriggerCollection.Create (especificando el tipo de desencadenador que desea crear) para crear un desencadenador de arranque. Al crear el desencadenador, establezca las propiedades StartBoundary y EndBoundary del desencadenador para activar y desactivar el desencadenador. También puede especificar un valor para la propiedad Delay del desencadenador de arranque.
  5. Cree una acción para que la tarea se ejecute mediante la propiedad TaskDefinition.Actions . Esta propiedad proporciona acceso al objeto ActionCollection . Use el método ActionCollection.Create para especificar el tipo de acción que desea crear. En este ejemplo se usa un objeto ExecAction , que representa una acción que inicia un archivo ejecutable.
  6. Registre la tarea mediante el método TaskFolder.RegisterTaskDefinition . La tarea se registra mediante la cuenta de servicio local como contexto de seguridad para ejecutar la tarea.

En el siguiente ejemplo de VBScript se muestra cómo programar una tarea para ejecutar el Bloc de notas 30 segundos después de arrancar el sistema.

'---------------------------------------------------------
' This sample schedules a task to start notepad.exe 30 seconds after
' the system is booted.
'---------------------------------------------------------

' A constant that specifies a boot trigger.
const TriggerTypeBoot = 8
' A constant that specifies an executable action.
const ActionTypeExecutable = 0   

'********************************************************
' Create the TaskService object.
Set service = CreateObject("Schedule.Service")
call service.Connect()

'********************************************************
' Get a folder to create a task definition in. 
Dim rootFolder
Set rootFolder = service.GetFolder("\")

' The taskDefinition variable is the TaskDefinition object.
Dim taskDefinition
' The flags parameter is 0 because it is not supported.
Set taskDefinition = service.NewTask(0) 

'********************************************************
' Define information about the task.

' Set the registration info for the task by 
' creating the RegistrationInfo object.
Dim regInfo
Set regInfo = taskDefinition.RegistrationInfo
regInfo.Description = "Task will execute Notepad when " & _
    "the computer is booted."
regInfo.Author = "Author Name"

' Set the task setting info for the Task Scheduler by
' creating a TaskSettings object.
Dim settings
Set settings = taskDefinition.Settings
settings.StartWhenAvailable = True

'********************************************************
' Create a boot trigger.
Dim triggers
Set triggers = taskDefinition.Triggers

Dim trigger
Set trigger = triggers.Create(TriggerTypeBoot)

' Trigger variables that define when the trigger is active.
Dim startTime, endTime
startTime = "2006-05-02T10:49:02"
endTime = "2006-05-02T10:52:02"

WScript.Echo "startTime :" & startTime
WScript.Echo "endTime :" & endTime

trigger.StartBoundary = startTime
trigger.EndBoundary = endTime
trigger.ExecutionTimeLimit = "PT5M"    ' Five minutes
trigger.Id = "BootTriggerId"
trigger.Delay = "PT30S"                ' 30 Seconds   

'***********************************************************
' Create the action for the task to execute.

' Add an action to the task. The action executes notepad.
Dim Action
Set Action = taskDefinition.Actions.Create( ActionTypeExecutable )
Action.Path = "C:\Windows\System32\notepad.exe"

WScript.Echo "Task definition created. About to submit the task..."

'***********************************************************
' Register (create) the task.
const createOrUpdateTask = 6
call rootFolder.RegisterTaskDefinition( _
    "Test Boot Trigger", taskDefinition, createOrUpdateTask, _
    "Local Service", , 5)

WScript.Echo "Task submitted."

Uso del programador de tareas