Compartir a través de


Set-JobTrigger

Cambia el desencadenador de trabajo de un trabajo programado.

Syntax

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

Description

El Set-JobTrigger cmdlet cambia las propiedades de los desencadenadores de trabajo de los trabajos programados. Puede usarlo para cambiar la hora o la frecuencia con la que se inician los trabajos o para cambiar de programaciones basadas en tiempo a programaciones que se activen mediante un inicio de sesión o inicio.

Un desencadenador de trabajo define una programación o condiciones periódicas para iniciar un trabajo programado. Aunque los desencadenadores de trabajo no se guardan en disco, puede cambiar los desencadenadores de trabajo de los trabajos programados, que se guardan en el disco.

Para cambiar un desencadenador de trabajo de un trabajo programado, empiece por usar el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo de un trabajo programado. A continuación, canalice el desencadenador a Set-JobTrigger o guarde el desencadenador en una variable y use el parámetro InputObject del Set-JobTrigger cmdlet para identificar el desencadenador. Use los parámetros restantes de Set-JobTrigger para cambiar el desencadenador de trabajo.

Al cambiar el tipo de desencadenador de trabajo, como cambiar un desencadenador de trabajo de un desencadenador diario o semanal a un desencadenador atLogon , se eliminan las propiedades del desencadenador original. No obstante, si cambia los valores del desencadenador, pero no su tipo, como por ejemplo, los días en un desencadenador semanal, solo se cambiarán las propiedades que especifique. Se conservan todas las demás propiedades del desencadenador de trabajo original.

Set-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: Cambiar los días de un desencadenador de trabajo

Este ejemplo muestra cómo cambiar los días en un desencadenador de trabajo semanal.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -Passthru

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

El primer comando usa el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo del DeployPackage trabajo programado. El resultado muestra que el desencadenador inicia el trabajo a medianoche los miércoles y los sábados.

El segundo comando usa el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo del DeployPackage trabajo programado. Un operador de canalización (|) envía el desencadenador al Set-JobTrigger cmdlet , que cambia el desencadenador de trabajo para que inicie el DeployPackage trabajo los miércoles y domingos. El comando usa el parámetro Passthru para devolver el desencadenador después del cambio.

Este comando no es necesario; se incluye solo para mostrar el efecto del cambio de desencadenador.

Ejemplo 2: Cambiar el tipo de desencadenador de trabajo

Este ejemplo muestra cómo cambiar el tipo de desencadenador de trabajo que inicia un trabajo. Los comandos de este ejemplo reemplazan un AtStartup desencadenador de trabajo por un desencadenador semanal.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

El primer comando usa el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo del Inventory trabajo programado. La salida muestra que el trabajo tiene dos desencadenadores un desencadenador diario y un desencadenador AtStartup .

El segundo comando usa el Get-JobTrigger cmdlet para obtener el desencadenador de trabajo AtStartup del Inventory trabajo. El comando usa el parámetro TriggerID para identificar el desencadenador de trabajo. Un operador de canalización (|) envía el desencadenador de trabajo al Set-JobTrigger cmdlet , que lo cambia a un desencadenador de trabajo semanal que se ejecuta cada cuatro semanas el lunes a medianoche. El comando usa el parámetro Passthru para devolver el desencadenador después del cambio.

Este comando no es necesario; se incluye solo para mostrar el efecto del cambio de desencadenador.

Ejemplo 3: Cambio del usuario en un desencadenador de trabajo remoto

Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

Este comando cambia el usuario en todos los desencadenadores de trabajo de AtLogon de trabajos programados en el equipo Server01.

El comando usa el Invoke-Command cmdlet para ejecutar un comando en el equipo Server01.

El comando remoto comienza con un Get-ScheduledJob comando que obtiene todos los trabajos programados en el equipo. Los trabajos programados se canalizan al Get-JobTrigger cmdlet , que obtiene los desencadenadores de trabajo de los trabajos programados. Cada desencadenador de trabajo contiene una propiedad JobDefinition que contiene el trabajo programado, por lo que el desencadenador permanece asociado al trabajo programado incluso cuando se cambia.

Los desencadenadores de trabajo se canalizan al Where-Object cmdlet , que obtiene desencadenadores de trabajo que tienen la propiedad User . Los desencadenadores de trabajo seleccionados se canalizan al Set-JobTrigger cmdlet , que cambia el usuario a Domain01\Admin02.

Ejemplo 4: Cambiar uno de los muchos desencadenadores de trabajo

Get-JobTrigger -Name "SecurityCheck"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Los comandos de este ejemplo cambian el intervalo de repetición del desencadenador de trabajo Once de SecurityCheck trabajo programado de cada 60 minutos a cada 90 minutos. El SecurityCheck trabajo programado tiene tres desencadenadores de trabajo, por lo que los comandos usan el parámetro TriggerId del Get-JobTrigger cmdlet para identificar el desencadenador de trabajo que se está cambiando.

El primer comando usa el Get-JobTrigger cmdlet para obtener todos los desencadenadores de trabajo del SecurityCheck trabajo programado. La salida, que muestra los identificadores de los desencadenadores de trabajo, revela que el desencadenador Once job tiene un identificador de 3.

El segundo comando usa el parámetro TriggerID del Get-JobTrigger cmdlet para obtener el desencadenador Once del SecurityCheck trabajo programado. El comando canaliza el desencadenador al Format-List cmdlet , que muestra todas las propiedades del desencadenador De trabajo Once . La salida muestra que el desencadenador inicia el trabajo una vez cada hora (RepeticiónInterval es de 1 hora) durante un día (La repeticiónDuración es de 1 día).

El tercer comando cambia el intervalo de repetición del desencadenador de trabajo de una hora a 90 minutos. El comando no devuelve ninguna salida.

El cuarto comando muestra el efecto del cambio. La salida muestra que el desencadenador inicia el trabajo una vez cada 90 minutos (RepeticiónInterval es de 1 hora, 30 minutos) durante un día (La repetición es de 1 día).

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 hora, como April 19, 2012 15:00, 12/31/2013 9:00 PMo 3am.

Si no especifica un elemento del objeto DateTime , como segundos, no se cambia ese elemento del desencadenador de trabajo. Si el desencadenador de trabajo original no incluía un objeto DateTime y omite un elemento, el desencadenador de trabajo se crea con el elemento correspondiente a partir de la fecha y hora actuales.

Cuando se usa el parámetro Once , establezca el valor del parámetro At en una fecha y hora determinada. Dado que la fecha predeterminada de un objeto DateTime es la fecha actual, establecer una hora antes de la hora actual sin una fecha explícita da como resultado un desencadenador de trabajo 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:False
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:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Inicia el trabajo programado cuando se inicia Windows.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
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:Named
Default value:None
Required:False
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, Thursday, enteros 06-, donde 0 representa domingo o un asterisco (*) que se va a representar todos los días. 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:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica los desencadenadores de trabajo. Escriba una variable que contenga objetos ScheduledJobTrigger o escriba un comando o expresión que obtenga objetos ScheduledJobTrigger , como un Get-JobTrigger comando. También puede canalizar un objeto ScheduledJobTrigger a Set-JobTrigger.

Si especifica varios desencadenadores de trabajo, Set-JobTrigger realiza los mismos cambios en todos los desencadenadores de trabajo.

Type:ScheduledJobTrigger[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Once

Especifica una programación que no es de repetición (una vez).

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

-PassThru

Devuelve los desencadenadores de trabajo que cambiaron. De forma predeterminada, este cmdlet no genera ningún resultado.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
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 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 repetición del desencadenador del trabajo, establezca el valor De repeticiónduración en cero (0).

Para cambiar la duración de repetición o el intervalo de repetición de un desencadenador de trabajo Once , el comando debe incluir los parámetros RepetitionInterval y RepetitionDuration . Para cambiar la duración de la repetición o los intervalos de repetición de otros tipos de desencadenadores de trabajo, el comando debe incluir los parámetros Once, At, RepetitionInterval y RepetitionDuration.

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.

Para cambiar la duración de repetición o el intervalo de repetición de un desencadenador de trabajo Once , el comando debe incluir los parámetros RepetitionInterval y RepetitionDuration . Para cambiar la duración de la repetición o los intervalos de repetición de otros tipos de desencadenadores de trabajo, el comando debe incluir los parámetros Once, At, RepetitionInterval y RepetitionDuration.

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:Named
Default value:None
Required:False
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

ScheduledJobTrigger

Puede canalizar un desencadenador de trabajo a este cmdlet.

Salidas

None

De forma predeterminada, este cmdlet no devuelve ninguna salida.

ScheduledJobTrigger

Cuando se usa el parámetro PassThru , este cmdlet devuelve los desencadenadores de trabajo que cambió.

Notas

  • Los desencadenadores de trabajo tienen una propiedad JobDefinition que las asocia al trabajo programado. Al cambiar el desencadenador de trabajo de un trabajo programado, se cambia el trabajo. No es necesario usar un Set-ScheduledJob comando para aplicar el desencadenador modificado al trabajo programado.