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/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.
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 enteros6
0
-, 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
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 losNew-JobTrigger
cmdlets oGet-JobTrigger
, o una tabla hash con valores de desencadenador.Para enviar una tabla hash, use las claves siguientes.
- Frecuencia:
Once
,Daily
,Weekly
,AtStartup
oAtLogon
- 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 .
- Frecuencia:
Vínculos relacionados
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob