Set-JobTrigger

Altera o gatilho de trabalho de um trabalho agendado.

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

O Set-JobTrigger cmdlet altera as propriedades dos gatilhos de trabalho de trabalhos agendados. Você pode usá-lo para alterar a hora ou a frequência em que os trabalhos são iniciados ou para alterar de agendas baseadas em tempo para agendas acionadas por um logon ou inicialização.

Um gatilho de trabalho define uma agenda recorrente ou condições para iniciar um trabalho agendado. Embora os gatilhos de trabalho não sejam salvos no disco, você pode alterar os gatilhos de trabalho de trabalhos agendados, que são salvos no disco.

Para alterar um gatilho de trabalho de um trabalho agendado, comece usando o Get-JobTrigger cmdlet para obter o gatilho de trabalho de um trabalho agendado. Em seguida, canalize o gatilho ou Set-JobTrigger salve-o em uma variável e use o parâmetro InputObject do Set-JobTrigger cmdlet para identificar o gatilho. Use os parâmetros restantes de para alterar o gatilho de Set-JobTrigger trabalho.

Quando você altera o tipo de um gatilho de trabalho, como alterar um gatilho de trabalho de um gatilho diário ou semanal para um gatilho AtLogon , as propriedades originais do gatilho são excluídas. No entanto, se você alterar os valores do gatilho, mas não seu tipo, como alterar os dias em um gatilho semanal, somente as propriedades especificadas serão alteradas. Todas as outras propriedades do gatilho de trabalho original são mantidas.

Set-JobTrigger é um de uma coleção de cmdlets de agendamento de trabalho no módulo PSScheduledJob incluído no Windows PowerShell.

Para obter mais informações sobre trabalhos agendados, consulte os tópicos Sobre no módulo PSScheduledJob. Importe o módulo PSScheduledJob e digite: Get-Help about_Scheduled* ou consulte about_Scheduled_Jobs.

Este cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1: Alterar os dias em um gatilho de trabalho

Este exemplo mostra como alterar os dias em um gatilho de trabalho 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

O primeiro comando usa o Get-JobTrigger cmdlet para obter o gatilho de trabalho do DeployPackage trabalho agendado. A saída mostra que o gatilho inicia o trabalho à meia-noite às quartas-feiras e sábados.

O segundo comando usa o Get-JobTrigger cmdlet para obter o gatilho de trabalho do DeployPackage trabalho agendado. Um operador de pipeline (|) envia o gatilho para o cmdlet, que altera o gatilho Set-JobTrigger do trabalho para que ele inicie o DeployPackage trabalho às quartas-feiras e domingos. O comando usa o parâmetro Passthru para retornar o gatilho após a alteração.

Este comando não é necessário; é incluído apenas para mostrar o efeito da mudança de gatilho.

Exemplo 2: Alterar o tipo de gatilho de trabalho

Este exemplo mostra como alterar o tipo de gatilho de trabalho que inicia um trabalho. Os comandos neste exemplo substituem um gatilho de AtStartup trabalho por um gatilho 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

O primeiro comando usa o Get-JobTrigger cmdlet para obter o gatilho de trabalho do Inventory trabalho agendado. A saída mostra que o trabalho tem dois gatilhos, um gatilho diário e um gatilho AtStartup .

O segundo comando usa o Get-JobTrigger cmdlet para obter o gatilho de trabalho AtStartup do Inventory trabalho. O comando usa o parâmetro TriggerID para identificar o gatilho de trabalho. Um operador de pipeline (|) envia o gatilho de trabalho para o cmdlet, que o altera para um gatilho Set-JobTrigger de trabalho semanal que é executado a cada quatro semanas na segunda-feira à meia-noite. O comando usa o parâmetro Passthru para retornar o gatilho após a alteração.

Este comando não é necessário; é incluído apenas para mostrar o efeito da mudança de gatilho.

Exemplo 3: Alterar o usuário em um gatilho de trabalho remoto

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

Este comando altera o usuário em todos os gatilhos de trabalho AtLogon de trabalhos agendados no computador Server01.

O comando usa o Invoke-Command cmdlet para executar um comando no computador Server01.

O comando remoto começa com um Get-ScheduledJob comando que obtém todos os trabalhos agendados no computador. Os trabalhos agendados são canalizados para o Get-JobTrigger cmdlet, que obtém os gatilhos de trabalho dos trabalhos agendados. Cada gatilho de trabalho contém uma propriedade JobDefinition que contém o trabalho agendado, portanto, o gatilho permanece associado ao trabalho agendado mesmo quando ele é alterado.

Os gatilhos de trabalho são canalizados para o Where-Object cmdlet, que obtém gatilhos de trabalho que têm a propriedade User . Os gatilhos de trabalho selecionados são canalizados para o Set-JobTrigger cmdlet, que altera o usuário para Domain01\Admin02.

Exemplo 4: Alterar um dos muitos gatilhos de trabalho

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

Os comandos neste exemplo alteram o intervalo de repetição do gatilho de trabalho Once do trabalho agendado SecurityCheck de cada 60 minutos para cada 90 minutos. O SecurityCheck trabalho agendado tem três gatilhos de trabalho, portanto, os comandos usam o parâmetro TriggerId do cmdlet para identificar o gatilho Get-JobTrigger de trabalho que está sendo alterado.

O primeiro comando usa o Get-JobTrigger cmdlet para obter todos os gatilhos de trabalho do SecurityCheck trabalho agendado. A saída, que exibe as IDs dos gatilhos de trabalho, revela que o gatilho de trabalho Once tem uma ID de 3.

O segundo comando usa o parâmetro TriggerID do Get-JobTrigger cmdlet para obter o gatilho Once do SecurityCheck trabalho agendado. O comando canaliza o gatilho para o Format-List cmdlet, que exibe todas as propriedades do gatilho de trabalho Once . A saída mostra que o gatilho inicia o trabalho uma vez a cada hora (RepetitionInterval é 1 hora) por um dia (RepetitionDuration é 1 dia).

O terceiro comando altera o intervalo de repetição do gatilho de trabalho de uma hora para 90 minutos. O comando não retorna nenhuma saída.

O quarto comando exibe o efeito da alteração. A saída mostra que o gatilho inicia o trabalho uma vez a cada 90 minutos (RepetitionInterval é 1 hora, 30 minutos) por um dia (RepetitionDuration é 1 dia).

Parâmetros

-At

Inicia o trabalho na data e hora especificadas. Insira um objeto DateTime , como um que o cmdlet retorna, Get-Date ou uma cadeia de caracteres que possa ser convertida em uma hora, como April 19, 2012 15:00, 12/31/2013 9:00 PMou 3am.

Se você não especificar um elemento do objeto DateTime , como segundos, esse elemento do gatilho de trabalho não será alterado. Se o gatilho de trabalho original não incluir um objeto DateTime e você omitir um elemento, o gatilho de trabalho será criado com o elemento correspondente da data e hora atuais.

Ao usar o parâmetro Once , defina o valor do parâmetro At para uma data e hora específicas. Como a data padrão em um objeto DateTime é a data atual, definir uma hora antes da hora atual sem uma data explícita resulta em um gatilho de trabalho para uma hora no passado.

Os objetos DateTime e as cadeias de caracteres convertidas em objetos DateTime são ajustados automaticamente para serem compatíveis com os formatos de data e hora selecionados para o computador local em Região e Idioma no Painel de Controle.

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

-AtLogOn

Inicia o trabalho agendado quando os usuários especificados fazem logon no computador. Para especificar um usuário, use o parâmetro User .

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

-AtStartup

Inicia o trabalho agendado quando o Windows é iniciado.

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

-Daily

Especifica uma agenda de trabalho diária recorrente. Use os outros parâmetros no conjunto de parâmetros Daily para especificar os detalhes da programação.

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

-DaysInterval

Especifica o número de dias entre ocorrências em uma programação diária. Por exemplo, um valor de inicia o trabalho agendado 3 em dias 1, 74e assim por diante. O valor predefinido é 1.

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

-DaysOfWeek

Especifica os dias da semana em que um trabalho agendado semanal é executado. Insira nomes de dias, como Monday, Thursday, inteiros 06-, onde 0 representa domingo ou um asterisco (*) para representar todos os dias. Este parâmetro é necessário no conjunto de parâmetros Weekly .

Os nomes de dia são convertidos em seus valores inteiros no gatilho de trabalho. Quando você colocar nomes de dias entre aspas em um comando, coloque o nome de cada dia entre aspas separadas, como "Monday", "Tuesday". Se você incluir vários nomes de dias em um único par de aspas, os valores inteiros correspondentes serão somados. Por exemplo, "Monday, Tuesday" (1 + 2) resulta em um 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 os gatilhos de trabalho. Insira uma variável que contenha objetos ScheduledJobTrigger ou digite um comando ou expressão que obtenha objetos ScheduledJobTrigger , como um Get-JobTrigger comando. Você também pode canalizar um objeto ScheduledJobTrigger para Set-JobTrigger.

Se você especificar vários gatilhos de trabalho, Set-JobTrigger fará as mesmas alterações em todos os gatilhos de trabalho.

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

-Once

Especifica uma agenda não recorrente (uma vez).

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

-PassThru

Retorna os gatilhos de trabalho que foram alterados. Por padrão, esse cmdlet não gera nenhuma saída.

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

-RandomDelay

Permite um atraso aleatório que começa na hora de início agendada e define o valor máximo de atraso. A duração do atraso é definida pseudo-aleatoriamente para cada início e varia de nenhum atraso ao tempo especificado pelo valor deste parâmetro. O valor padrão, zero (00:00:00), desativa o atraso aleatório.

Insira um objeto timespan, como um retornado pelo New-TimeSpan cmdlet, ou insira um valor em <hours>:<minutes>:<seconds> format, que é convertido automaticamente em um objeto timespan.

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

-RepeatIndefinitely

Esse parâmetro, disponível a partir do Windows PowerShell 4.0, elimina a necessidade de especificar um valor TimeSpan.MaxValue para o parâmetro RepetitionDuration para executar um trabalho agendado repetidamente, por um período indefinido.

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

-RepetitionDuration

Repete o trabalho até que o tempo especificado expire. A frequência de repetição é determinada pelo valor do parâmetro RepetitionInterval . Por exemplo, se o valor de RepetitionInterval for 5 minutos e o valor de RepetitionDuration for 2 horas, o trabalho será acionado a cada cinco minutos durante duas horas.

Insira um objeto timespan, como um que o New-TimeSpan cmdlet retorna ou uma cadeia de caracteres que pode ser convertida em um objeto timespan, como 1:05:30.

Para executar um trabalho indefinidamente, adicione o parâmetro RepeatIndefinidamente .

Para interromper um trabalho antes que a duração da repetição do gatilho de trabalho expire, defina o valor RepetitionDuration como zero (0).

Para alterar a duração da repetição ou o intervalo de repetição de um gatilho de trabalho Once , o comando deve incluir os parâmetros RepetitionInterval e RepetitionDuration . Para alterar a duração da repetição ou os intervalos de repetição de outros tipos de gatilhos de trabalho, o comando deve incluir os parâmetros Once, At, RepetitionInterval e RepetitionDuration .

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

-RepetitionInterval

Repete o trabalho no intervalo de tempo especificado. Por exemplo, se o valor desse parâmetro for 2 horas, o trabalho será acionado a cada duas horas. O valor padrão, 0, não repete o trabalho.

Insira um objeto timespan, como um que o New-TimeSpan cmdlet retorna ou uma cadeia de caracteres que pode ser convertida em um objeto timespan, como 1:05:30.

Para alterar a duração da repetição ou o intervalo de repetição de um gatilho de trabalho Once , o comando deve incluir os parâmetros RepetitionInterval e RepetitionDuration . Para alterar a duração da repetição ou os intervalos de repetição de outros tipos de gatilhos de trabalho, o comando deve incluir os parâmetros Once, At, RepetitionInterval e RepetitionDuration .

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

-User

Especifica os usuários que disparam um início AtLogon de um trabalho agendado. Digite o nome de um usuário em <UserName> ou formato ou <Domain>\<Username> digite um asterisco (*) para representar todos os usuários. O valor padrão é todos os usuários.

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

-Weekly

Especifica uma agenda de trabalho semanal recorrente. Use os outros parâmetros no conjunto de parâmetros Weekly para especificar os detalhes da programação.

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

-WeeksInterval

Especifica o número de semanas entre ocorrências em um cronograma de trabalho semanal. Por exemplo, um valor de inicia o trabalho agendado 3 em semanas 1, 74e assim por diante. O valor predefinido é 1.

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

Entradas

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Você pode canalizar um gatilho de trabalho para esse cmdlet.

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Quando você usa o parâmetro PassThru , esse cmdlet retorna os gatilhos de trabalho que ele alterou.

Notas

  • Os gatilhos de trabalho têm uma propriedade JobDefinition que os associa ao trabalho agendado. Quando você altera o gatilho de trabalho de um trabalho agendado, o trabalho é alterado. Não é necessário usar um Set-ScheduledJob comando para aplicar o gatilho alterado ao trabalho agendado.