Compartir a través de


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 New-JobTrigger cmdlet crea un desencadenador de trabajo que inicia un trabajo programado en una programación única o periódica, 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 con el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo de un trabajo programado existente o con 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 New-ScheduledJobOption cmdlet . Estas opciones, que tienen los mismos valores válidos y predeterminados que las opciones correspondientes en el Programador de tareas, afectan a la programación y el tiempo 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

En este ejemplo se crea un desencadenador de trabajo para iniciar un trabajo programado solo una vez.

New-JobTrigger -Once -At "1/20/2012 3:00 AM"

El New-JobTrigger cmdlet 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 hora. 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

En este ejemplo se crea un nuevo desencadenador de trabajo para iniciar un trabajo programado cada tercer día.

New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3

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

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

Ejemplo 3: Programación semanal

En este ejemplo se crea un desencadenador de trabajo que inicia un trabajo programado cada cuarta semana en los días especificados de esa semana.

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 para iniciar un trabajo programado el lunes, miércoles y viernes a las 2300 horas (11:00 p. m.) cada 4 semanas.

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

En este ejemplo se crea un desencadenador de trabajo para iniciar un trabajo programado al iniciar sesión de un usuario específico.

New-JobTrigger -AtLogOn -User Domain01\Admin01

Este comando crea un desencadenador de trabajo para iniciar un trabajo programado cada vez que el administrador de dominio inicia sesión en el equipo.

Ejemplo 5: Usar un retraso aleatorio

En este ejemplo se crea un nuevo desencadenador de trabajo con un retraso de intervalo de tiempo aleatorio.

New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Este comando crea un desencadenador de trabajo para iniciar un trabajo programado todos los días a las 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 New-ScheduledJobOption cmdlet y coordine el retraso con la configuración de la opción.

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

En este ejemplo se usa un desencadenador de trabajo para crear un nuevo trabajo programado.

$t = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM
Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $t

El primer comando usa el New-JobTrigger cmdlet para crear un desencadenador de trabajo que inicia un trabajo todos los lunes, miércoles y viernes a las 12:01 a. m. El comando guarda el desencadenador de trabajo en la $t variable .

El segundo comando usa el Register-ScheduledJob cmdlet para crear un trabajo programado que inicia un trabajo todos los lunes, miércoles y viernes a las 12:01 a. m. El valor del parámetro Trigger es el desencadenador que se almacena en la $t variable.

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

Este ejemplo muestra cómo agregar un desencadenador de trabajo a una tarea programada existente.

Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

Puede agregar varios desencadenadores de trabajo a cualquier trabajo programado.

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

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

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

En este ejemplo se crea un desencadenador de trabajo repetido para que solo se ejecute durante un período de tiempo específico.

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

En este ejemplo se detiene un desencadenador de trabajo repetido.

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 Get-JobTrigger para obtener el desencadenador de trabajo del trabajo SecurityCheck y el Set-JobTrigger cmdlet para cambiar el intervalo de repetición y la duración de la repetición del desencadenador de trabajo a cero (0).

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

En este ejemplo se crea un desencadenador de trabajo repetido que se ejecuta indefinidamente.

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 Get-Date cmdlet, o una cadena que se pueda convertir a una fecha y hora, como April 19, 2012 15:00, 12/31o 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.

Al usar el parámetro Once , establezca el valor del parámetro At en una fecha y hora futuras. Dado que la fecha predeterminada de un objeto DateTime es la fecha actual, si especifica una hora antes de la hora actual sin una fecha explícita, el desencadenador de trabajo se crea durante una hora en el 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 y 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:None
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:None
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 de 3 inicia el trabajo programado en días 1, 4, etc 7 . El valor predeterminado es 1.

Type:Int32
Position:Named
Default value:None
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 nombres de día, como Monday o enteros60-, donde 0 representa domingo. Este parámetro es necesario en el conjunto de parámetros Weekly .

los nombres de los días se convierten en sus valores enteros en el desencadenador de trabajo. Al incluir nombres de día entre comillas en un comando, escriba cada nombre de día entre comillas independientes, como "Monday", "Tuesday". Si incluye varios nombres de día en un par de comillas simples, se suman los valores enteros correspondientes. Por ejemplo, "Monday, Tuesday" (1 + 2) da como resultado un valor de Wednesday (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 RepeatDuration y RepeatInterval .

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 de intervalo de tiempo, como uno devuelto por el New-TimeSpan cmdlet, o escriba un valor en <hours>:<minutes>:<seconds> formato, que se convierte automáticamente en un objeto TimeSpan .

Type:TimeSpan
Position:Named
Default value:None
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 repetidamente 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 de 5 minutos y el valor de RepetitionDuration es de 2 horas, el trabajo se desencadena cada cinco minutos durante dos horas.

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

Para ejecutar un trabajo indefinidamente, 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 Set-JobTrigger cmdlet para establecer el valor De repeticiónduración en cero (0).

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

Type:TimeSpan
Position:Named
Default value:None
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 de intervalo de tiempo, como el que devuelve el New-TimeSpan cmdlet o una cadena que se puede convertir en un objeto de intervalo de tiempo, como 1:05:30.

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

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

-User

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

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

-Weekly

Especifica una programación del trabajo de repetición semanal. Use los demás 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 de 3 inicia el trabajo programado en semanas 1, 4, etc 7 . El valor predeterminado es 1.

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

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

ScheduledJobTrigger

Este cmdlet devuelve un objeto ScheduledJobTrigger que representa el desencadenador creado.

Notas

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

  • New-JobTrigger no impide que cree un desencadenador de trabajo que no ejecute un trabajo programado, como un desencadenador de una sola vez para una fecha en el pasado.

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

    Para enviar una tabla hash, use las claves siguientes.

    • Frecuencia: Once, Daily, Weekly, AtStartupo AtLogon
    • En: cualquier cadena de tiempo válida, como 3am
    • DaysOfWeek: cualquier combinación de nombres de día como cadenas, como "Monday", "Wednesday"
    • Intervalo: cualquier intervalo de frecuencia válido como un entero
    • RandomDelay: cualquier cadena de intervalo de tiempo válida, como 30minutes
    • Usuario: cualquier usuario válido, como Domain1\User01; solo se usa con el valor de frecuencia AtLogon .