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 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 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 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.
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 inicien sesión en el equipo. Para especificar un usuario, use el parámetro User .
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
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: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
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 con programación semanal. Escriba nombres de día, como Monday
, Thursday
, enteros 0
6
-, 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
).
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 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.
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 que no es de repetición (una vez).
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve los desencadenadores de trabajo que cambiaron. De forma predeterminada, este cmdlet no genera ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | None |
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 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 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.
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | TimeSpan |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un desencadenador de trabajo a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
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.
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