Set-JobTrigger
Altera o gatilho de trabalho de um trabalho agendado.
Sintaxe
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 cmdlet Set-JobTrigger 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 iniciam ou mudam de agendamentos baseados em tempo para agendamentos que são disparados por um logon ou inicialização.
Um gatilho de trabalho define uma agenda ou condições recorrentes para iniciar um trabalho agendado. Embora os gatilhos de trabalho não sejam salvos em disco, você pode alterar os gatilhos de trabalho de trabalhos agendados, que são salvos em disco.
Para alterar um gatilho de trabalho de um trabalho agendado, comece usando o cmdlet Get-JobTrigger para obter o gatilho de trabalho de um trabalho agendado. Em seguida, redirecione o gatilho para Set-JobTrigger ou salve o gatilho em uma variável e use o parâmetro InputObject do cmdlet Set-JobTrigger para identificar o gatilho. Use os parâmetros restantes de Set-JobTrigger para alterar o gatilho de trabalho.
Quando você altera o tipo de 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 retidas.
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 veja about_Scheduled_Jobs.
Esse cmdlet foi introduzido no Windows PowerShell 3.0.
Exemplos
Exemplo 1: alterar os dias em um gatilho de trabalho
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
Este exemplo mostra como alterar os dias em um gatilho de trabalho semanal.
O primeiro comando usa o cmdlet Get-JobTrigger para obter o gatilho de trabalho do trabalho agendado DeployPackage. A saída mostra que o gatilho inicia o trabalho à meia-noite às quartas-feiras e sábados.
Esse comando não é necessário; ele é incluído apenas para mostrar o efeito da alteração do gatilho.
Exemplo 2: alterar o tipo de gatilho de trabalho
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
Este exemplo mostra como alterar o tipo de gatilho de trabalho que inicia um trabalho. Os comandos neste exemplo substituem um gatilho de trabalho AtStartup por um gatilho semanal.
O primeiro comando usa o cmdlet Get-JobTrigger para obter o gatilho de trabalho do trabalho agendado de Inventário. A saída mostra que o trabalho tem dois gatilhos diários e um gatilho AtStartup.
Esse comando não é necessário; ele é incluído apenas para mostrar o efeito da alteração do gatilho.
Exemplo 3: alterar o usuário em um gatilho de trabalho remoto
PS C:\> Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}
Esse comando altera o usuário em todos os AtLogon gatilhos de trabalho de trabalhos agendados no computador Server01.
O comando usa o cmdlet Invoke-Command para executar um comando no computador Server01.
O comando remoto começa com um comando Get-ScheduledJob que obtém todos os trabalhos agendados no computador. Os trabalhos agendados são canalizados para o cmdlet Get-JobTrigger, 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 cmdlet Where-Object, que obtém gatilhos de trabalho que têm a propriedade User. Os gatilhos de trabalho selecionados são canalizados para o cmdlet Set-JobTrigger, que altera o usuário para Domain01\Admin02.
Exemplo 4: alterar um dos muitos gatilhos de trabalho
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
Os comandos neste exemplo alteram o intervalo de repetição do Uma vez gatilho de trabalho do trabalho agendado securitycheck de cada 60 minutos para cada 90 minutos. O trabalho agendado SecurityCheck tem três gatilhos de trabalho, portanto, os comandos usam o parâmetro TriggerId do cmdlet Get-JobTrigger para identificar o gatilho de trabalho que está sendo alterado.
O primeiro comando usa o cmdlet Get-JobTrigger para obter todos os gatilhos de trabalho do trabalho agendado securitycheck. A saída, que exibe as IDs dos gatilhos de trabalho, revela que o gatilho de trabalho Once tem uma ID de 3.
Parâmetros
-At
Inicia o trabalho na data e hora especificadas. Insira um objeto DateTime, como aquele que o cmdlet Get-Date retorna ou uma cadeia de caracteres que pode ser convertida em um horário, como "19 de abril de 2012 15:00", "31/12/2013 21:00 pm" ou "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 por uma hora no passado.
objetos datetime e cadeias de caracteres que são convertidas em objetos DateTime, são ajustadas 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.
Tipo: | DateTime |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AtStartup
Inicia o trabalho agendado quando o Windows é iniciado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Daily
Especifica um agendamento de trabalho diário recorrente. Use os outros parâmetros no parâmetro Daily definido para especificar os detalhes do agendamento.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-DaysInterval
Especifica o número de dias entre ocorrências em um agendamento diário. Por exemplo, um valor de 3 inicia o trabalho agendado nos dias 1, 4, 7 e assim por diante. O valor padrão é 1.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 1 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-DaysOfWeek
Especifica os dias da semana em que um trabalho agendado semanal é executado. Insira nomes de dia, como segunda- feira, quinta-feira, inteiros 0-6, onde 0 representa domingo, ou um asterisco (*) para representar todos os dias. Esse parâmetro é necessário no conjunto de parâmetros Semanal.
Os nomes de dia são convertidos em seus valores inteiros no gatilho de trabalho. Quando você coloca nomes de dia entre aspas em um comando, coloque o nome de cada dia entre aspas separadas, como "Segunda- feira", "Terça-feira". Se você colocar vários nomes de dia em um único par de aspas, os valores inteiros correspondentes serão resumidos. Por exemplo, "Segunda, Terça" (1, 2) resulta em um valor de "quarta-feira" (3).
Tipo: | DayOfWeek[] |
Valores aceitos: | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica os gatilhos de trabalho. Insira uma variável que contenha objetos ScheduledJobTrigger ou digite um comando ou expressão que obtém objetos scheduledJobTrigger, como um comando Get-JobTrigger. 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.
Tipo: | ScheduledJobTrigger[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Once
Especifica um agendamento não recorrente (uma vez).
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-PassThru
Retorna os gatilhos de trabalho que foram alterados. Por padrão, esse cmdlet não gera nenhuma saída.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RandomDelay
Habilita um atraso aleatório que começa na hora de início agendada e define o valor máximo de atraso. O comprimento do atraso é definido pseudo aleatoriamente para cada início e varia de nenhum atraso até o tempo especificado pelo valor desse parâmetro. O valor padrão, zero (00:00:00), desabilita o atraso aleatório.
Insira um objeto de intervalo de tempo, como um retornado pelo cmdlet New-TimeSpan ou insira um valor em <horas>:<minutos>:<segundos> formato, que é convertido automaticamente em um objeto de tempo limite.
Tipo: | TimeSpan |
Cargo: | Named |
Valor padrão: | 00:00:00 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 executar um trabalho agendado repetidamente, por um período indefinido.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RepetitionDuration
Repete o trabalho até que a hora especificada 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 de 2 horas, o trabalho será disparado a cada cinco minutos por duas horas.
Insira um objeto de intervalo de tempo, como um que o cmdlet New-TimeSpan retorna ou uma cadeia de caracteres que pode ser convertida em um objeto de intervalo de tempo, como "1:05:30".
Para executar um trabalho indefinidamente, adicione o parâmetro RepeatIndefinitely.
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.
Tipo: | TimeSpan |
Cargo: | Named |
Valor padrão: | 0 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RepetitionInterval
Repete o trabalho no intervalo de tempo especificado. Por exemplo, se o valor desse parâmetro for de 2 horas, o trabalho será disparado a cada duas horas. O valor padrão, 0, não repete o trabalho.
Insira um objeto de intervalo de tempo, como um que o cmdlet New-TimeSpan retorna ou uma cadeia de caracteres que pode ser convertida em um objeto de intervalo de tempo, 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.
Tipo: | TimeSpan |
Cargo: | Named |
Valor padrão: | 0 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-User
Especifica os usuários que disparam um AtLogon início de um trabalho agendado. Insira o nome de um usuário no formato <UserName> ou <Domain\Username> ou insira um asterisco (*) para representar todos os usuários. O valor padrão é todos os usuários.
Tipo: | String |
Cargo: | Named |
Valor padrão: | All users |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Weekly
Especifica um agendamento de trabalho semanal recorrente. Use os outros parâmetros no parâmetro Weekly definido para especificar os detalhes do agendamento.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WeeksInterval
Especifica o número de semanas entre ocorrências em um agendamento de trabalho semanal. Por exemplo, um valor de 3 inicia o trabalho agendado nas semanas 1, 4, 7 e assim por diante. O valor padrão é 1.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | 1 |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode redirecionar vários gatilhos de trabalho para Set-JobTrigger.
Saídas
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger
Quando você usa o parâmetro Passthru, Set-JobTrigger retorna os gatilhos de trabalho que foram alterados. Caso contrário, esse cmdlet não gerará nenhuma saída.
Observações
- Os gatilhos de trabalho têm uma propriedade JobDefintion que os associa ao trabalho agendado. Quando você altera o gatilho de trabalho de um trabalho agendado, o trabalho é alterado. Você não precisa usar um comando Set-ScheduledJob para aplicar o gatilho alterado ao trabalho agendado.
Links 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