New-JobTrigger

Crea un desencadenador de trabajo para un trabajo programado.

Syntax

New-JobTrigger
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [<CommonParameters>]
New-JobTrigger
   [-DaysInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Daily]
   [<CommonParameters>]
New-JobTrigger
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   -DaysOfWeek <DayOfWeek[]>
   [-Weekly]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-AtStartup]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-User <String>]
   [-AtLogOn]
   [<CommonParameters>]

Description

El cmdlet New-JobTrigger crea un desencadenador de trabajo que inicia un trabajo programado en una programación periódica o única, o cuando se produce un evento.

Puede usar el objeto ScheduledJobTrigger que New-JobTrigger devuelve para establecer un desencadenador de trabajo para un trabajo programado nuevo o existente. También puede crear un desencadenador de trabajo mediante el cmdlet Get-JobTrigger para obtener el desencadenador de trabajo de un trabajo programado existente o mediante un valor de tabla hash para representar un desencadenador de trabajo.

Al crear un desencadenador de trabajo, revise los valores predeterminados de las opciones especificadas por el cmdlet New-ScheduledJobOption. Estas opciones, que tienen los mismos valores válidos y predeterminados que las opciones correspondientes de Task Scheduler, afectan a la programación y la sincronización de los trabajos programados.

New-JobTrigger es una de una colección de cmdlets de programación de trabajos en el módulo PSScheduledJob que se incluye en Windows PowerShell.

Para más información sobre los trabajos programados, vea los temas Acerca de en el módulo PSScheduledJob. Importe el módulo PSScheduledJob y escriba: Get-Help about_Scheduled* o vea about_Scheduled_Jobs.

Este cmdlet se introdujo en Windows PowerShell 3.0.

Ejemplos

Ejemplo 1: Una vez programada

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

Este comando usa el cmdlet New-JobTrigger para crear un desencadenador de trabajo que inicia un trabajo programado solo una vez. El valor del parámetro At es una cadena que Windows PowerShell convierte en un objeto DateTime. El valor del parámetro At incluye una fecha explícita, no solo una vez. Si se omite la fecha, se crearía el desencadenador con la fecha actual y la hora 3:00 AM, que es probable que represente una hora del pasado.

Ejemplo 2: Programación diaria

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

Este comando crea un desencadenador de trabajo que inicia un trabajo programado cada 3 días a las 4:15 AM.

Debido a que el valor del parámetro At no incluye una fecha, la fecha actual se usa como el valor de fecha en el objeto DateTime. Si la fecha y hora están en el pasado, se inicia el trabajo programado en la siguiente repetición, que es 3 días más tarde desde el valor del parámetro At.

Ejemplo 3: Programación semanal

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

Este comando crea un desencadenador de trabajo que inicia un trabajo programado cada 4 semanas, el lunes, el miércoles y el viernes a las 2300 horas (11:00 PM).

También puede escribir el valor del parámetro DaysOfWeek en enteros, como -DaysOfWeek 1, 5.

Ejemplo 4: Programación de inicio de sesión

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

Este comando crea un desencadenador de trabajo que inicia un trabajo programado, siempre que el administrador de dominio inicie sesión en el equipo.

Ejemplo 5: Usar un retraso aleatorio

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Este comando crea un desencadenador de trabajo que inicia un trabajo programado cada día a la 1:00 de la mañana. El comando usa el parámetro RandomDelay para establecer el retraso máximo en 20 minutos. Como resultado, el trabajo se ejecuta todos los días entre la 1:00 y la 1:20 AM, con el intervalo que varía pseudo aleatoriamente.

Puede usar un retraso aleatorio para el muestreo, el equilibrio de carga y otras tareas administrativas. Al establecer el valor de retraso, revise los valores efectivos y predeterminados del cmdlet New-ScheduledJobOption y coordine el retraso con la configuración de la opción.

Ejemplo 6: Crear un desencadenador de trabajo para un nuevo trabajo programado

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

Estos comandos usan un desencadenador de trabajo para crear un nuevo trabajo programado.

Ejemplo 7: Agregar un desencadenador de trabajo a un trabajo programado

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

Este ejemplo muestra cómo agregar un desencadenador de trabajo a una tarea programada existente. Puede agregar varios desencadenadores de trabajo a cualquier trabajo programado.

El comando usa el cmdlet Add-JobTrigger para agregar el desencadenador de trabajo al trabajo programado SynchronizeApps. El valor del parámetro Trigger es un comando New-JobTrigger que ejecuta el trabajo cada día a las 3:10 AM.

Cuando finalice el comando, SynchronizeApps es un trabajo programado que se ejecuta a las horas especificadas por el desencadenador de trabajo.

Ejemplo 8: Creación de un desencadenador de trabajo repetido

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

Este comando crea un desencadenador de trabajo que ejecuta un trabajo cada 60 minutos durante 48 horas a partir del 12 de septiembre de 2013 a las 1:00 a. m.

Ejemplo 9: Detener un desencadenador de trabajo repetido

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

Este comando detiene forzosamente el trabajo SecurityCheck, que se desencadena para ejecutarse cada 60 minutos hasta que expire su desencadenador de trabajo.

Para evitar que el trabajo se repita, el comando usa el Get-JobTrigger para obtener el desencadenador de trabajo del trabajo SecurityCheck y el cmdlet Set-JobTrigger para cambiar el intervalo de repetición y la duración de repetición del desencadenador de trabajo a cero (0).

Ejemplo 10: Creación de un desencadenador de trabajo por hora

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

El comando siguiente crea un desencadenador de trabajo que ejecuta un trabajo programado una vez cada 12 horas durante un período de tiempo indefinido. La programación empieza mañana (21/9/2012) a medianoche (0:00 AM).

Parámetros

-At

Inicia el trabajo en la fecha y hora especificadas. Escriba un objeto DateTime , como el que devuelve el cmdlet Get-Date, o una cadena que se pueda convertir en una fecha y hora, como "19 de abril de 2012 15:00", "12/31" o "3am". Si no especifica un elemento de la fecha, como el año, la fecha en el desencadenador tiene el elemento correspondiente de la fecha actual.

Cuando use el parámetro Once, establezca el valor del parámetro At en una hora y fecha futuras. Debido a que la fecha predeterminada en un objeto DateTime es la fecha actual, si especifica una hora anterior a la hora actual sin una fecha explícita, se crea el desencadenador de trabajo para un momento del pasado.

Los objetos DateTime y las cadenas que se convierten en objetos DateTime se ajustan automáticamente para que sean compatibles con los formatos de fecha y hora seleccionados para el equipo local en Región e Idioma en Panel de control.

Type:DateTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

Inicia el trabajo programado cuando los usuarios especificados inicien sesión en el equipo. Para especificar un usuario, use el parámetro User.

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Inicia el trabajo programado cuando se inicia Windows.

Type:SwitchParameter
Position:0
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Daily

Especifica una programación del trabajo de repetición diaria. Use los demás parámetros del conjunto de parámetros Daily para especificar los detalles de la programación.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Especifica el número de días entre las repeticiones de una programación diaria. Por ejemplo, un valor 3 inicia el trabajo programado en los días 1, 4, 7 y así sucesivamente. El valor predeterminado es 1.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

Especifica los días de la semana en los que se ejecuta un trabajo con programación semanal. Escriba los nombres de los días, por ejemplo, "Lunes" o enteros del 0 al 6, donde 0 representa el domingo. Este parámetro es obligatorio en el conjunto de parámetros Weekly.

los nombres de los días se convierten en sus valores enteros en el desencadenador de trabajo. Cuando incluya los nombres de días entre comillas en un comando, escriba cada nombre de día entre comillas independientes, por ejemplo, "Lunes", "Martes". Si incluye varios nombres de día en un par de comillas simples, se suman los valores enteros correspondientes. Por ejemplo, "Lunes, Martes" (1, 2) produce un valor "Miércoles" (3).

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Once

Especifica una programación que no es de repetición (una vez) o de repetición personalizada. Para crear una programación de repetición, use el parámetro Once con los parámetros RepetitionDuration y RepetitionInterval.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Permite un retraso aleatorio que empieza a la hora de inicio programada y establece el valor máximo de retraso. La duración del retraso se establece pseudo aleatoriamente para cada inicio y varía desde ningún retraso hasta la hora especificada por el valor de este parámetro. El valor predeterminado, cero (00:00:00), deshabilita el retraso aleatorio.

Escriba un objeto timespan, como uno devuelto por el cmdlet New-TimeSpan, o escriba un valor en <formato hours>:minutes>:<<seconds>, que se convierte automáticamente en un objeto TimeSpan.

Type:TimeSpan
Position:Named
Default value:00:00:00
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

Este parámetro, disponible a partir de Windows PowerShell 4.0, elimina la necesidad de especificar un valor TimeSpan.MaxValue para el parámetro RepetitionDuration para ejecutar un trabajo programado para ejecutarse varias veces, durante un período indefinido.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

Repite el trabajo hasta que expire el tiempo especificado. La frecuencia de repetición viene determinada por el valor del parámetro RepetitionInterval. Por ejemplo, si el valor de RepetitionInterval es 5 minutos y el valor de RepetitionDuration es de 2 horas, el trabajo se desencadena cada cinco minutos durante dos horas.

Escriba un objeto timespan, como el que devuelve el cmdlet New-TimeSpan o una cadena que se puede convertir en un objeto timespan, como "1:05:30".

Para ejecutar un trabajo de forma indefinida, agregue el parámetro RepeatIndefinitely en su lugar.

Para detener un trabajo antes de que expire la duración de la repetición del desencadenador de trabajo, use el cmdlet Set-JobTrigger para establecer el valor De repeticiónduración en cero (0).

Este parámetro solo es válido cuando los parámetros Once, At y RepetitionInterval se usan en el comando.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

Repite el trabajo con el intervalo de tiempo especificado. Por ejemplo, si el valor de este parámetro es de 2 horas, el trabajo se desencadena cada dos horas. El valor predeterminado, 0, no repite el trabajo.

Escriba un objeto timespan, como el que devuelve el cmdlet New-TimeSpan o una cadena que se puede convertir en un objeto timespan, como "1:05:30".

Este parámetro solo es válido cuando los parámetros Once, At y RepetitionDuration se usan en el comando.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-User

Especifica los usuarios que desencadenan un inicio AtLogon de un trabajo programado. Escriba el nombre de un usuario en <formato UserName> o <Domain\Username> o escriba un asterisco (*) para representar a todos los usuarios. El valor predeterminado es todos los usuarios.

Type:String
Position:Named
Default value:All users
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Especifica una programación del trabajo de repetición semanal. Use los otros parámetros del conjunto de parámetros Weekly para especificar los detalles de la programación.

Type:SwitchParameter
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

Especifica el número de semanas entre las repeticiones de una programación de trabajo semanal. Por ejemplo, un valor 3 inicia el trabajo programado en las semanas 1, 4, 7 y así sucesivamente. El valor predeterminado es 1.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Notas

  • Los desencadenadores de trabajo no se guardan en el disco. Sin embargo, los trabajos programados se guardan en el disco y puede usar el Get-JobTrigger para obtener el desencadenador de trabajo de cualquier trabajo programado.

  • New-JobTrigger no impide crear un desencadenador de trabajo que no ejecute un trabajo programado, como un desencadenador único para una fecha en el pasado.

  • El cmdlet Register-ScheduledJob acepta un objeto ScheduledJobTrigger, como uno devuelto por los cmdlets New-JobTrigger o Get-JobTrigger, o una tabla hash con valores de desencadenador.

    Para enviar una tabla hash, use las claves siguientes.

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (o cualquier cadena de tiempo válida); DaysOfWeek="Monday", "Wednesday" (o cualquier combinación de nombres de día); Interval=2 (o cualquier intervalo de frecuencia válido); RandomDelay="30minutes" (o cualquier cadena de intervalo de tiempo válido); User="Domain1\User01 (o cualquier usuario válido; solo se usa con el valor de frecuencia AtLogon ) }