Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Windows PowerShell 3.0
TÓPICO
about_Scheduled_Jobs
DESCRIÇÃO BREVE
Descreve os trabalhos agendados e explica como usar e gerenciar trabalhos agendadas no Windows PowerShell® e no Agendador de Tarefas.
DESCRIÇÃO LONGA
Os trabalhos agendados do Windows PowerShell são um híbrido útil entre trabalhos em segundo plano do Windows PowerShell e as tarefas do Agendador de Tarefas.
Assim como os trabalhos em segundo plano do Windows PowerShell, os trabalhos agendados são executados de forma assíncrona em segundo plano. As instâncias dos trabalhos agendados que foram executados podem ser gerenciadas usando cmdlets de trabalho, como Start-Job, Get-Job, Stop-Job e Receive-Job.
Como no Agendador de Tarefas, os trabalhos agendados são salvos em disco. Você pode exibir e gerenciar os trabalhos no Agendador de Tarefas, habilitá-los e desabilitá-los conforme necessário, executá-los ou usá-los como modelos, estabelecer um agendamento de ocorrência única ou recorrente para iniciar os trabalhos ou definir as condições nas quais os trabalhos são iniciados.
Além disso, os resultados das instâncias dos trabalhos agendados são salvos em disco em um formato facilmente acessível, fornecendo um log em execução das saídas dos trabalhos. Os trabalhos agendados acompanham um conjunto personalizado de cmdlets para gerenciá-los. Os cmdlets permitem a criação, edição, gerenciamento, desabilitação e reabilitação dos trabalhos agendados, dos gatilhos dos trabalhos e das opções de trabalho.
Esse conjunto abrangente e flexível de ferramentas tornam os trabalhos agendados em um componente essencial de muitas soluções profissionais de TI do Windows PowerShell.
Os cmdlets de trabalhos agendados estão incluídos no módulo PSScheduledJob que é instalado com o Windows PowerShell. Este módulo foi introduzido no Windows PowerShell 3.0 e funciona no Windows PowerShell 3.0 e em versões posteriores do Windows PowerShell.
Para obter mais informações sobre os trabalhos em segundo plano do Windows PowerShell, consulte About_Jobs (https://go.microsoft.com/fwlink/?LinkID=113251).
Para obter mais informações sobre o Agendador de Tarefas, consulte "Agendador de Tarefas" na biblioteca do TechNet em https://go.microsoft.com/fwlink/?LinkId=232928.
OBSERVAÇÃO: Você pode exibir e gerenciar os trabalhos agendados do Windows PowerShell no Agendador de Tarefas, mas os cmdlets Job e ScheduledJob do Windows PowerShell funcionam somente em trabalhos agendados que são criados no Windows PowerShell.
CMDLETS DE TRABALHOS AGENDADOS
O módulo PSScheduledJob contém os seguintes cmdlets.
Register-ScheduledJob: Creates a scheduled job.
Get-ScheduledJob: Gets a scheduled job.
Set-ScheduledJob: Changes the properties of a scheduled job
Disable-ScheduledJob: Temporarily disables a scheduled job.
Enable-ScheduledJob: Re-enables a scheduled job.
Unregister-ScheduledJob Deletes a scheduled job and its saved results.
New-JobTrigger: Creates a job trigger.
Get-JobTrigger: Gets a job trigger.
Add-JobTrigger: Adds a job trigger to a scheduled job.
Set-JobTrigger: Changes a job trigger.
Disable-JobTrigger: Temporarily disables a job trigger.
Enable-JobTrigger: Re-enables a job trigger.
Remove-JobTrigger: Deletes a job trigger.
New-ScheduledJobOption: Creates a job options object.
Get-ScheduledJobOption: Gets the job options of a scheduled job.
Set-ScheduledJobOption: Changes the job options of a scheduled job.
INÍCIO RÁPIDO
Os comandos a seguir criam um trabalho agendado que começa todos os dias às 3 horas e executa o cmdlet Get-Process. O trabalho é iniciado mesmo se o computador estiver usando baterias.
$trigger = New-JobTrigger -Daily -At 3AM
$options = New-ScheduledJobOption -StartIfOnBattery
Register-ScheduledJob -Name ProcessJob -ScriptBlock {Get-Process} `
-Trigger $trigger -ScheduledJobOption $options
O comando a seguir obtém os trabalhos agendados no computador local.
PS C:\> Get-ScheduledJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
O comando a seguir obtém os gatilhos de trabalho do ProcessJob. Os parâmetros de entrada especificam o trabalho agendado, e não o gatilho, já que os gatilhos são salvos em um trabalho agendado.
PS C:\> Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Daily 11/5/2011 3:00:00 AM True
O comando a seguir usa o parâmetro ContinueIfGoingOnBattery do cmdlet Set-ScheduledJob para alterar a propriedade StopIfGoingOnBatteries do ProcessJob para False.
PS C:\> Get-ScheduledJob -Name ProcessJob | Set-ScheduledJobOption `
-ContinueIfGoingOnBattery -Passthru
StartIfOnBatteries : True
StopIfGoingOnBatteries : False
WakeToRun : True
StartIfNotIdle : True
StopIfGoingOffIdle : False
RestartOnIdleResume : False
IdleDuration : 00:10:00
IdleTimeout : 01:00:00
ShowInTaskScheduler : True
RunElevated : False
RunWithoutNetwork : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : IgnoreNew
JobDefinition : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
O comando a seguir obtém o trabalho agendado ProcessJob.
PS C:\> Get-ScheduledJob ProcessJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
O comando a seguir usa o cmdlet Get-Job para obter todas as instâncias do trabalho agendado ProcessJob que foi executado até o momento. O cmdlet Get-Job somente obtém trabalhos agendados quando o módulo PSScheduledJob é importado para a sessão atual.
DICA: observe que você usa os cmdlets ScheduledJob para gerenciar trabalhos agendados, mas usa os cmdlets Job para gerenciar as instâncias dos trabalhos agendados.
PS C:\> Get-Job -Name ProcessJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------ ----- ----------- -------- -------
45 ProcessJob PSScheduledJob Completed True localhost Get-Process
46 ProcessJob PSScheduledJob Completed True localhost Get-Process
47 ProcessJob PSScheduledJob Completed True localhost Get-Process
48 ProcessJob PSScheduledJob Completed True localhost Get-Process
49 ProcessJob PSScheduledJob Completed True localhost Get-Process
50 ProcessJob PSScheduledJob Completed True localhost Get-Process
51 ProcessJob PSScheduledJob Completed True localhost Get-Process
O comando a seguir obtém os resultados da instância mais recente do trabalho agendado ProcessJob (ID = 51).
Receive-Job -ID 51
Mesmo que o comando Receive-Job não inclua o parâmetro Keep, os resultados do trabalho são salvos em disco até que você os exclua ou até que o número máximo de resultados seja excedido.
Os resultados do trabalho não estão mais disponíveis nesta sessão, mas se você iniciar uma nova sessão ou abrir uma nova janela do Windows PowerShell, os resultados do trabalho estarão disponíveis novamente.
O comando a seguir usa o parâmetro DefinitionName do cmdlet Start-Job para iniciar o trabalho agendado ProcessJob.
Os trabalhos que são iniciados usando o cmdlet Start-Job são trabalhos padrão em segundo plano do Windows PowerShell, e não instâncias do trabalho agendado. Como todos os trabalhos em segundo plano, esses trabalhos começam imediatamente -- eles não são sujeitos às opções de trabalho nem afetados por gatilhos de trabalho -- e sua saída não é salva no diretório de saída do diretório de trabalhos agendados.
PS C:\>Start-Job -DefinitionName ProcessJob
O comando a seguir exclui o trabalho agendado ProcessJob e todos os resultados salvos de suas instâncias de trabalho.
PS C:\> Remove-ScheduledJob ProcessJob
CONCEITOS DE TRABALHOS AGENDADOS
Um "trabalho agendado" executa comandos ou um script. Um trabalho agendado pode incluir "gatilhos de trabalho" que iniciam o trabalho e "opções de trabalho" que configuram as condições para execução do trabalho.
Um "gatilho de trabalho" inicia um trabalho agendado automaticamente. Um gatilho de trabalho pode especificar um agendamento único ou recorrente, ou um evento, como quando um usuário faz logon ou o Windows é iniciado. Um trabalho agendado pode ter um ou mais gatilhos, e você pode criar, adicionar, habilitar, desabilitar e obter gatilhos de trabalho.
Disparadores de trabalho são opcionais. Você também pode iniciar trabalhos agendados imediatamente usando o cmdlet Start-Job ou adicionando o parâmetro RunNow a seu comando Register-ScheduledJob.
"As opções de trabalho" configuram as condições para execução de um trabalho agendado. Todo trabalho agendado tem um objeto de opções de trabalho. Você pode criar e editar objetos de opções de trabalho e adicioná-los a um ou mais trabalhos agendados.
Sempre que um trabalho agendado for iniciado, uma "instância de trabalho" é criada. Use os cmdlets Job do Windows PowerShell para exibir e gerenciar a instância de trabalho.
Os trabalhos agendados são salvos em disco (por isso, o verbo do cmdlet é Register em vez de New) em arquivos XML no diretório $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs do computador local.
O Windows PowerShell cria um diretório para cada trabalho agendado e salva os comandos de trabalho, gatilhos de trabalho, opções de trabalho e resultados do trabalho no diretório de trabalhos agendados. Os gatilhos e opções de trabalho não são salvos em disco de modo independente. Eles são salvos no XML de cada trabalho agendado ao qual eles estão associados.
Os trabalhos agendados, gatilhos de trabalho e opções de trabalho são exibidos no Windows PowerShell como objetos. Os objetos são interrelacionados, o que os torna fáceis de descobrir e usar em comandos e scripts.
Os trabalhos agendados são exibidos como objetos ScheduledJobDefinition. O objeto ScheduledJobDefinition tem uma propriedade JobTriggers que contém os gatilhos de trabalho do trabalho agendado e uma propriedade Options que contém as opções de trabalho. Os objetos ScheduledJobTriggers e ScheduledJobOptions que representam os gatilhos de trabalho e as opções de trabalho, respectivamente, têm uma propriedade JobDefinition que contém o trabalho agendado ao qual eles estão associados. Essa interconexão recursiva facilita a localização dos gatilhos e opções de um trabalho agendado e a localização, script e exibição do trabalho agendado ao qual qualquer gatilho ou opção de trabalho está associado.
CONSULTE TAMBÉM
about_Scheduled_Jobs_Basics
about_Scheduled_Jobs_Advanced
about_Scheduled_Jobs_Troubleshooting
about_jobs
Agendador de Tarefas (https://go.microsoft.com/fwlink/?LinkId=232928)
Add-JobTrigger
Disable-JobTrigger
Disable-ScheduledJob
Enable-JobTrigger
Enable-ScheduledJob
Get-Job
Get-JobTrigger
Get-ScheduledJob
Get-ScheduledJobOption
New-JobTrigger
New-ScheduledJobOption
Receive-Job
Register-ScheduledJob
Remove-JobTrigger
Set-JobTrigger
Set-ScheduledJob
Set-ScheduledJobOption
Start-Job
Unregister-ScheduledJob