Set-ScheduledJob
Altera trabalhos agendados.
Sintaxe
Set-ScheduledJob
[-Name <String>]
[-ScriptBlock <ScriptBlock>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-Name <String>]
[-FilePath <String>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-ClearExecutionHistory]
[-PassThru]
[<CommonParameters>]
Description
O Set-ScheduledJob
cmdlet altera as propriedades dos trabalhos agendados, como os comandos que os trabalhos executam ou as credenciais necessárias para executar o trabalho. Você também pode usar isso para limpar o histórico de execução do trabalho agendado.
Para usar esse cmdlet, comece usando o Get-ScheduledJob
cmdlet para obter o trabalho agendado. Em seguida, canalize o trabalho agendado ou Set-ScheduledJob
salve-o em uma variável e use o parâmetro InputObject para identificar o trabalho. Use os parâmetros restantes de para alterar as propriedades do trabalho ou limpar o histórico de Set-ScheduledJob
execução.
Embora você possa usar Set-ScheduledJob
para alterar os gatilhos e as opções de um trabalho agendado, os Add-JobTrigger
cmdlets , Set-JobTrigger
e Set-ScheduledJobOption
fornecem maneiras muito mais fáceis de realizar essas tarefas. Para criar um novo trabalho agendado, use o Register-ScheduledJob
cmdlet.
O parâmetro Trigger de adiciona um ou mais gatilhos de Set-ScheduledJob
trabalho que iniciam o trabalho.
O parâmetro Trigger é opcional, portanto, você pode adicionar gatilhos ao criar o trabalho agendado, adicionar gatilhos de trabalho posteriormente, adicionar o parâmetro RunNow para iniciar o trabalho imediatamente, usar o Start-Job
cmdlet para iniciar o trabalho imediatamente a qualquer momento ou salvar o trabalho agendado não disparado como um modelo para outros trabalhos.
Set-ScheduledJob
é 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 o 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 o script que um trabalho executa
Este exemplo mostra como alterar o script que é executado em um trabalho agendado.
Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -PassThru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-FullInventory.ps1 True
O primeiro comando usa o Get-ScheduledJob
cmdlet para obter o trabalho agendado de Inventário. A saída mostra que o trabalho executa o script Get-Inventory.ps1.
O segundo comando usa o Get-ScheduledJob
cmdlet para obter o trabalho agendado Inventário. Um operador de pipeline (|
) envia o trabalho agendado para o Set-ScheduledJob
cmdlet. O Set-ScheduledJob
cmdlet usa o parâmetro Script para especificar um novo script, Get-FullInventory.ps1
. O comando usa o parâmetro PassThru para retornar o trabalho agendado após a alteração.
Este comando não é obrigatório. Ele está incluído apenas para mostrar o efeito da alteração do script.
Exemplo 2: Excluir o histórico de execução de um trabalho agendado
Este exemplo exclui o histórico de execução atual e os resultados de trabalho salvos para um trabalho agendado.
Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
O comando usa o Get-ScheduledJob
cmdlet para obter o trabalho agendado BackupArchive. Um operador de pipeline (|
) envia o trabalho para o Set-ScheduledJob
cmdlet para alterá-lo. O Set-ScheduledJob
cmdlet usa o parâmetro ClearExecutionHistory para excluir o histórico de execução e os resultados salvos.
Para obter mais informações sobre o histórico de execução e os resultados de trabalho salvos de trabalhos agendados, consulte about_Scheduled_Jobs.
Exemplo 3: Alterar trabalhos agendados em um computador remoto
Esse comando altera o script de inicialização em todos os trabalhos agendados em computadores remotos.
Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
O comando usa o Invoke-Command
cmdlet para executar um comando nos computadores Server01 e Server02.
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 Set-ScheduledJob
cmdlet, que altera o script de inicialização para SetForRun.ps1
.
Parâmetros
-ArgumentList
Especifica valores para os parâmetros do script especificado pelo parâmetro FilePath ou para o comando especificado pelo parâmetro ScriptBlock .
Tipo: | Object[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Authentication
Especifica o mecanismo usado para autenticar as credenciais do usuário. Os valores aceitáveis para esse parâmetro são:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
O valor padrão é Default
. Para obter mais informações sobre os valores desse parâmetro, consulte Enumeração AuthenticationMechanism no SDK do PowerShell.
Cuidado
A autenticação do Provedor de Suporte à Segurança de Credenciais (CredSSP), na qual as credenciais do usuário são passadas para um computador remoto para serem autenticadas, foi projetada para comandos que exigem autenticação em mais de um recurso, como acessar um compartilhamento de rede remoto. Esse mecanismo aumenta o risco de segurança da operação remota. Se o computador remoto estiver comprometido, as credenciais que são passadas a ele podem ser usadas para controlar a sessão de rede.
Tipo: | AuthenticationMechanism |
Valores aceitos: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ClearExecutionHistory
Exclui o histórico de execução atual e os resultados salvos do trabalho agendado.
O histórico de execução do trabalho e os resultados do trabalho são salvos com o trabalho agendado $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
no diretório do computador em que o trabalho é criado. Para ver o histórico de execução, use o Get-Job
cmdlet. Para obter os resultados do trabalho, use o Receive-Job
cmdlet.
Esse parâmetro não afeta os eventos que o Agendador de tarefas grava nos logs de eventos do Windows e não impede que o Windows PowerShell salve os resultados do trabalho. Para gerenciar o número de resultados de trabalho salvos, use o parâmetro MaxResultCount .
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Especifica uma conta de usuário que tenha permissão para executar o trabalho agendado. O padrão é o usuário atual.
Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential , como um do Get-Credential
cmdlet. Se você inserir apenas um nome de usuário, uma senha será solicitada.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-FilePath
Especifica um script que o trabalho agendado executa. Insira o caminho para um arquivo .ps1 no computador local. Para especificar valores padrão para os parâmetros de script, use o parâmetro ArgumentList . Cada trabalho agendado deve ter um valor ScriptBlock ou FilePath .
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InitializationScript
Especifica o caminho totalmente qualificado para um script do Windows PowerShell (.ps1
). O script de inicialização é executado na sessão criada para o trabalho em segundo plano antes dos comandos especificados pelo parâmetro ScriptBlock ou pelo script especificado pelo parâmetro FilePath . Você pode usar o script de inicialização para configurar a sessão, adicionando arquivos, funções ou aliases, criando diretórios ou verificando pré-requisitos.
Para especificar um script que executa os comandos de trabalho primários, use o parâmetro FilePath .
Se o script de inicialização gerar um erro, incluindo um erro de não encerramento, a instância atual do trabalho agendado não será executada e seu status será Failed.
Tipo: | ScriptBlock |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica o trabalho agendado a ser alterado. Insira uma variável que contenha objetos ScheduledJobDefinition ou digite um comando ou expressão que obtenha objetos ScheduledJobDefinition , como um Get-ScheduledJob
comando. Você também pode canalizar um objeto ScheduledJobDefinition para Set-ScheduledJob
.
Se você especificar vários trabalhos agendados, Set-ScheduledJob
o fará as mesmas alterações em todos os trabalhos.
Tipo: | ScheduledJobDefinition |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-MaxResultCount
Especifica quantas entradas de resultado do trabalho são mantidas para o trabalho agendado. O valor padrão é 32.
O Windows PowerShell salva o histórico de execução e os resultados de cada instância disparada do trabalho agendado no disco. O valor desse parâmetro determina o número de resultados de instância de trabalho que são salvas para essa tarefa agendada. Quando o número de resultados de instância de trabalho excede esse valor, o Windows PowerShell exclui os resultados da instância de trabalho mais antiga para abrir espaço para os resultados da instância de trabalho mais recente.
O histórico de execução do trabalho e os resultados do trabalho são salvos no $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp>
diretórios no computador no qual o trabalho é criado. Para ver o histórico de execução, use o Get-Job
cmdlet. Para obter os resultados do trabalho, use o Receive-Job
cmdlet.
O parâmetro MaxResultCount define o valor da propriedade ExecutionHistoryLength do trabalho agendado.
Para excluir o histórico de execução atual e os resultados do trabalho, use o parâmetro ClearExecutionHistory .
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Name
Especifica um novo nome para o trabalho agendado e instâncias do trabalho agendado. O nome deve ser exclusivo no computador local.
Para identificar o trabalho agendado a ser alterado, use o parâmetro InputObject ou canalize um trabalho agendado de Get-ScheduledJob
para .Set-ScheduledJob
Esse parâmetro não altera os nomes das instâncias de trabalho em disco. Ele afeta somente instâncias de trabalho que foram iniciadas após a conclusão do comando.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-PassThru
Retorna um objeto que representa o item com que você está trabalhando. Por padrão, este cmdlet não gera saída.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RunAs32
Executa o trabalho agendado em um processo de 32 bits.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RunEvery
Usado para especificar a frequência de execução do trabalho. Por exemplo, use essa opção para executar um trabalho a cada 15 minutos.
Tipo: | TimeSpan |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-RunNow
Inicia um trabalho imediatamente, assim que o Set-ScheduledJob
cmdlet é executado. Esse parâmetro elimina a necessidade de disparar o Agendador de tarefas para executar um script do Windows PowerShell imediatamente após o registro e não exige que os usuários criem um disparador que especifica a data e a hora de início.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ScheduledJobOption
Define opções para o trabalho agendado. Insira um objeto ScheduledJobOptions , como um que você cria usando o New-ScheduledJobOption
cmdlet, ou um valor de tabela de hash.
Você pode definir opções para um trabalho agendado ao registrar o trabalho agendado ou usar os Set-ScheduledJobOption
cmdlets ou Set-ScheduledJob
para definir ou alterar opções.
Muitas das opções e seus valores padrão determinam se e quando um trabalho agendado será executado. Certifique-se de examinar essas opções antes de agendar um trabalho. Para obter uma descrição das opções de trabalho agendado, incluindo os valores padrão, consulte New-ScheduledJobOption
.
Para enviar uma tabela de hash, use as seguintes chaves. Na tabela de hash a seguir, as chaves são exibidas com seus valores padrão.
@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}
Tipo: | ScheduledJobOptions |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ScriptBlock
Especifica os comandos que o trabalho agendado executa. Coloque os comandos entre chaves ({}
) para criar um bloco de script. Para especificar valores padrão para parâmetros de comando, use o parâmetro ArgumentList .
Cada Register-ScheduledJob
comando deve usar os parâmetros ScriptBlock ou FilePath .
Tipo: | ScriptBlock |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Trigger
Especifica os gatilhos para o trabalho agendado. Insira um ou mais objetos ScheduledJobTrigger , como os objetos que o New-JobTrigger
cmdlet retorna ou uma tabela de hash de chaves e valores de gatilho de trabalho.
Um gatilho de trabalho inicia um trabalho agendado automaticamente em um agendamento único ou recorrente ou quando ocorre um evento.
Disparadores de trabalho são opcionais. Você pode adicionar um gatilho ao criar o trabalho agendado, usar os Add-JobTrigger
cmdlets ou Set-ScheduledJob
para adicionar gatilhos posteriormente ou usar o Start-Job
cmdlet para iniciar o trabalho agendado imediatamente. Você também pode criar e manter um trabalho agendado sem nenhum disparador de trabalho.
Para enviar uma tabela de hash, use as seguintes chaves.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(ou qualquer sequência de tempo válida); DaysOfWeek="Monday", "Wednesday"
(ou qualquer combinação de nomes de dias); Interval=2
(ou qualquer intervalo de frequência válido); RandomDelay="30minutes"
(ou qualquer string de intervalo de tempo válida); User="Domain1\User01"
(ou qualquer usuário válido; usado apenas com o valor de frequência AtLogon)
}
Tipo: | ScheduledJobTrigger[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar um trabalho agendado para esse cmdlet.
Saídas
None
Por padrão, esse cmdlet não retorna nenhuma saída.
Quando você usa o parâmetro PassThru , esse cmdlet retorna o trabalho agendado que ele alterou.
Links 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