Set-JobTrigger
Cambia el desencadenador de trabajo de un trabajo programado.
Sintaxis
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 cmdlet Set-JobTrigger cambia las propiedades de los desencadenadores de trabajo de los trabajos programados. Puede usarlo para cambiar la hora o frecuencia en la que se inician o cambian los trabajos de una programación basada en tiempo a programaciones desencadenadas por 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 el 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 cmdlet Get-JobTrigger 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 de cmdlet Set-JobTrigger 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 de atLogon, se eliminan las propiedades del desencadenador original. Sin embargo, si cambia los valores del desencadenador, pero no su tipo, como cambiar los días de un desencadenador semanal, solo se cambian las propiedades que especifique. Se conservan todas las demás propiedades del desencadenador de trabajo original.
Set-JobTrigger es una de las colecciones de cmdlets de programación de trabajos del módulo PSScheduledJob que se incluye en Windows PowerShell.
Para obtener 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
PS C:\> Get-JobTrigger -Name "DeployPackage"
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Weekly 9/29/2011 12:00:00 AM {Wednesday, Saturday} True
The second command uses the Get-JobTrigger cmdlet to get the job trigger of the DeployPackage scheduled job. A pipeline operator (|) sends the trigger to the **Set-JobTrigger** cmdlet, which changes the job trigger so that it starts the DeployPackage job on Wednesdays and Sundays. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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
En este ejemplo se muestra cómo cambiar los días de un desencadenador de trabajo semanal.
El primer comando usa el cmdlet Get-JobTrigger para obtener el desencadenador de trabajo del trabajo programado DeployPackage. La salida muestra que el desencadenador inicia el trabajo a medianoche los miércoles y sábados.
Este comando no es necesario; solo se incluye para mostrar el efecto del cambio del desencadenador.
Ejemplo 2: Cambiar el tipo de desencadenador de trabajo
PS C:\> Get-JobTrigger -Name "Inventory"
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Daily 9/27/2011 11:00:00 PM True
2 AtStartup True
The second command uses the **Get-JobTrigger** cmdlet to get the *AtStartup* job trigger of the Inventory job. The command uses the *TriggerID* parameter to identify the job trigger. A pipeline operator (|) sends the job trigger to the **Set-JobTrigger** cmdlet, which changes it to a weekly job trigger that runs every four weeks on Monday at midnight. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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
En este ejemplo se muestra cómo cambiar el tipo de desencadenador de trabajo que inicia un trabajo. Los comandos de este ejemplo reemplazan un desencadenador de trabajo AtStartup por un desencadenador semanal.
El primer comando usa el cmdlet Get-JobTrigger para obtener el desencadenador de trabajo del trabajo programado inventario. La salida muestra que el trabajo tiene dos desencadenadores un desencadenador diario y un desencadenador AtStartup.
Este comando no es necesario; solo se incluye para mostrar el efecto del cambio del desencadenador.
Ejemplo 3: Cambio del usuario en un desencadenador de trabajo remoto
PS C:\> Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}
Este comando cambia al usuario en todas las AtLogon desencadenadores de trabajos programados en el equipo Server01.
El comando usa el cmdlet Invoke-Command para ejecutar un comando en el equipo Server01.
El comando remoto comienza con un comando Get-ScheduledJob que obtiene todos los trabajos programados en el equipo. Los trabajos programados se canalizan al cmdlet Get-JobTrigger, 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 cmdlet Where-Object, que obtiene desencadenadores de trabajo que tienen la propiedad User.
Los desencadenadores de trabajo seleccionados se canalizan al cmdlet set-JobTrigger
Ejemplo 4: Cambiar uno de los muchos desencadenadores de trabajo
PS C:\> 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
The second command uses the **TriggerID** parameter of the **Get-JobTrigger** cmdlet to get the *Once* trigger of the SecurityCheck scheduled job. The command pipes the trigger to the Format-List cmdlet, which displays all of the properties of the *Once* job trigger.The output shows that the trigger starts the job once every hour (RepetitionInterval = 1 hour) for one day (RepetitionDuration = 1 day).
PS C:\> 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
The third command changes the repetition interval of the job trigger from one hour to 90 minutes. The command does not return any output.
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
The fourth command displays the effect of the change.The output shows that the trigger starts the job once every 90 minutes (RepetitionInterval = 1 hour, 30 minutes) for one day (RepetitionDuration = 1 day).
PS C:\> 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 de la Una vez desencadenador de trabajo de SecurityCheck programado de cada 60 minutos a cada 90 minutos. El trabajo programado SecurityCheck tiene tres desencadenadores de trabajo, por lo que los comandos usan el parámetro TriggerId del cmdlet Get-JobTrigger para identificar el desencadenador de trabajo que se está cambiando.
El primer comando usa el cmdlet Get-JobTrigger para obtener todos los desencadenadores de trabajo del trabajo programado SecurityCheck. La salida, que muestra los identificadores de los desencadenadores de trabajo, revela que la una vez desencadenador de trabajo tiene un identificador de 3.
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 a una hora, como "19 de abril de 2012 15:00", "12/31/2013 9:00 PM" o "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
Al usar el parámetro Once, establezca el valor del parámetro At en una fecha y hora determinada. Dado que la fecha predeterminada de un dateTime objeto 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.
objetos DateTime y 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 el Panel de control.
Tipo: | DateTime |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AtLogOn
Inicia el trabajo programado cuando los usuarios especificados inician sesión en el equipo. Para especificar un usuario, use el parámetro User.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AtStartup
Inicia el trabajo programado cuando se inicia Windows.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Daily
Especifica una programación de trabajo diaria periódica. Use los demás parámetros del parámetro Daily establecido para especificar los detalles de la programación.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DaysInterval
Especifica el número de días entre repeticiones según una programación diaria. Por ejemplo, un valor de 3 inicia el trabajo programado en días 1, 4, 7, etc. El valor predeterminado es 1.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 1 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DaysOfWeek
Especifica los días de la semana en los que se ejecuta un trabajo programado semanalmente. Escriba nombres de día, como lunes, jueves, enteros 0-6, donde 0 representa el domingo o un asterisco (*) para representar todos los días. Este parámetro es necesario en el conjunto de parámetros Weekly.
Los nombres de día 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 "Lunes", "Martes". Si incluye varios nombres de día en un único par de comillas, se sumarán los valores enteros correspondientes. Por ejemplo, "Lunes, Martes" (1, 2) da como resultado un valor de "miércoles" (3).
Tipo: | DayOfWeek[] |
Valores aceptados: | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 comando Get-JobTrigger.
También puede canalizar un objeto de
Si especifica varios desencadenadores de trabajo, Set-JobTrigger realiza los mismos cambios en todos los desencadenadores de trabajo.
Tipo: | ScheduledJobTrigger[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Once
Especifica una programación no periódica (una vez).
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve los desencadenadores de trabajo que han cambiado. De forma predeterminada, este cmdlet no genera ninguna salida.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RandomDelay
Habilita un retraso aleatorio que comienza en la hora de inicio programada y establece el valor de retraso máximo. La longitud del retraso se establece pseudoaleatoriedad para cada inicio y varía de ningún retraso al tiempo especificado 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 <horas>:<minutos>:<segundos> formato, que se convierte automáticamente en un objeto timespan.
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | 00:00:00 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RepeatIndefinitely
Este parámetro, disponible a partir de Windows PowerShell 4.0, elimina la necesidad de especificar un valor de TimeSpan.MaxValue para el parámetro RepetitionDuration para ejecutar un trabajo programado repetidamente durante un período indefinido.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RepetitionDuration
Repite el trabajo hasta que expire el tiempo especificado. La frecuencia de repetición viene determinada por el valor del parámetro RepeticiónInterval. Por ejemplo, si el valor de De repeticiónInterval es de 5 minutos y el valor de RepeticiónDuración 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 indefinidamente, agregue el parámetro RepeatIndefinitely
Para detener un trabajo antes de que expire la duración de la repetición del desencadenador del trabajo, establezca el valor RepeticiónDuración en cero (0).
Para cambiar la duración de la repetición o el intervalo de repetición de un desencadenador de trabajo una vez, el comando debe incluir los parámetros RepetitionInterval y RepetitionDuration.
Para cambiar la duración de repetición o los intervalos de repetición de otros tipos de desencadenadores de trabajo, el comando debe incluir
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | 0 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RepetitionInterval
Repite el trabajo en 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".
Para cambiar la duración de la repetición o el intervalo de repetición de un desencadenador de trabajo una vez, el comando debe incluir los parámetros RepetitionInterval y RepetitionDuration.
Para cambiar la duración de repetición o los intervalos de repetición de otros tipos de desencadenadores de trabajo, el comando debe incluir
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | 0 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-User
Especifica los usuarios que desencadenan un AtLogon inicio de un trabajo programado. Escriba el nombre de un usuario en <nombreDeUsuario> o <formato Dominio\Nombre de usuario> o escriba un asterisco (*) para representar a todos los usuarios. El valor predeterminado es todos los usuarios.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | All users |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Weekly
Especifica una programación de trabajo semanal periódica. Use los demás parámetros del parámetro Weekly establecido para especificar los detalles de la programación.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WeeksInterval
Especifica el número de semanas entre repeticiones en una programación de trabajo semanal. Por ejemplo, un valor de 3 inicia el trabajo programado en las semanas 1, 4, 7, etc. El valor predeterminado es 1.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 1 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar varios desencadenadores de trabajo a Set-JobTrigger.
Salidas
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger
Al usar el parámetro
Notas
- Los desencadenadores de trabajo tienen una propiedad JobDefintion 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 comando Set-ScheduledJob para aplicar el desencadenador modificado al trabajo programado.
Vínculos relacionados
- about_Scheduled_Jobs
- 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