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 de trabalhos agendados, como os comandos que os trabalhos executam ou as credenciais necessárias para executar o trabalho. Você também pode usá-lo 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 acionado 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 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 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 de 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 é necessário; ele é incluído apenas para mostrar o efeito da alteração de 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 de 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 ao 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 trabalhos salvos de trabalhos agendados, consulte about_Scheduled_Jobs.
Exemplo 3: Alterar trabalhos agendados num computador remoto
Este 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[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Authentication
Especifica o mecanismo usado para autenticar as credenciais do usuário. Os valores aceitáveis para este parâmetro são:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
O valor predefinido é Default
. Para obter mais informações sobre os valores desse parâmetro, consulte Enumeração AuthenticationMechanism no SDK do PowerShell.
Atenção
A autenticação CredSSP (Credential Security Support Provider), na qual as credenciais do usuário são passadas para um computador remoto para ser autenticado, foi projetada para comandos que exigem autenticação em mais de um recurso, como acessar um compartilhamento de rede remoto. Este mecanismo aumenta o risco de segurança da operação remota. Se o computador remoto estiver comprometido, as credenciais que são passadas para ele podem ser usadas para controlar a sessão de rede.
Tipo: | AuthenticationMechanism |
Valores aceites: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-ClearExecutionHistory
Exclui o histórico de execução atual e os resultados salvos do trabalho agendado.
O histórico de execução e os resultados do trabalho são salvos com o trabalho agendado no $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
diretório do 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.
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 que são salvos, use o parâmetro MaxResultCount .
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Credential
Especifica uma conta de usuário que tem permissão para executar o trabalho agendado. A predefinição é o utilizador atual.
Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential , como um do Get-Credential
cmdlet. Se introduzir apenas um nome de utilizador, ser-lhe-á solicitada uma palavra-passe.
Tipo: | PSCredential |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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, como adicionar arquivos, funções ou aliases, criar diretórios ou verificar pré-requisitos.
Para especificar um script que execute 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á Falha.
Tipo: | ScriptBlock |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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
fará as mesmas alterações em todos os trabalhos.
Tipo: | ScheduledJobDefinition |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-MaxResultCount
Especifica quantas entradas de resultado de 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 acionada do trabalho agendado no disco. O valor desse parâmetro determina o número de resultados da instância de trabalho que são salvos para esse trabalho agendado. Quando o número de resultados da 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 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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
.
Este parâmetro não altera os nomes das instâncias de trabalho no disco. Ele afeta apenas instâncias de trabalho que são iniciadas após a conclusão desse comando.
Tipo: | String |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-PassThru
Retorna um objeto que representa o item com o qual você está trabalhando. Por padrão, esse cmdlet não gera nenhuma saída.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-RunAs32
Executa o trabalho agendado em um processo de 32 bits.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-RunEvery
Usado para especificar com que frequência executar o trabalho. Por exemplo, use essa opção para executar um trabalho a cada 15 minutos.
Tipo: | TimeSpan |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-RunNow
Inicia um trabalho imediatamente, assim que o Set-ScheduledJob
cmdlet é executado. Esse parâmetro elimina a necessidade de acionar 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 gatilho que especifique uma data e hora de início.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 é executado. Certifique-se de revisar 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 submeter uma tabela hash, utilize as seguintes chaves. Na tabela hash seguinte, as chaves são mostradas com os respetivos valores predefinidos.
@{# 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Trigger
Especifica os gatilhos para o trabalho agendado. Insira um ou mais objetos ScheduledJobTrigger , como os objetos retornados pelo cmdlet ou uma tabela de hash de chaves e valores de gatilho New-JobTrigger
de trabalho.
Um gatilho de trabalho inicia um trabalho agendado automaticamente em um agendamento único ou recorrente ou quando ocorre um evento.
Os gatilhos de trabalho são opcionais. Você pode adicionar um gatilho ao criar o trabalho agendado, usar os cmdlets ou Set-ScheduledJob
para adicionar gatilhos Add-JobTrigger
mais tarde ou usar o Start-Job
cmdlet para iniciar o trabalho agendado imediatamente. Você também pode criar e manter um trabalho agendado que não tenha gatilhos de trabalho.
Para submeter uma tabela hash, utilize as seguintes chaves.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(ou qualquer cadeia 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 cadeia de intervalo de tempo válida); User="Domain1\User01"
(ou qualquer usuário válido; usado apenas com o valor de freqüência AtLogon)
}
Tipo: | ScheduledJobTrigger[] |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
Você pode canalizar um trabalho agendado para este 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.
Ligações Relacionadas
- 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