Aprenda como criar uma tarefa agendada com PowerShell

Nearly todo administrador de sistemas tem que lidar com tarefas agendadas. Eles são incrivelmente úteis para fazer algo baseado em vários gatilhos, mas requerem muito esforço manual para configurar corretamente.

O benefício das tarefas agendadas é que você pode construir uma com um profundo nível de sofisticação com opções de gatilhos e vários contextos de segurança. Mas onde reina a complexidade, podem surgir erros de configuração. Quando está a desenvolver estes scripts de automação, pode criar uma tarefa agendada com o PowerShell para facilitar o processo. Usando o PowerShell ajuda a padronizar o trabalho de gestão e configuração envolvido com tarefas agendadas intrincadas, o que tem o benefício adicional de evitar os erros habituais que derivam da entrada manual.

Aumentar uma acção de tarefa agendada

No mínimo, uma tarefa agendada tem uma acção, um gatilho e um grupo de definições associadas. Uma vez criada a tarefa, você também precisa registrá-la no sistema. Você precisa executar cada ação separadamente para criar uma única tarefa agendada.

Para criar a ação, use o cmdlet New-ScheduledTaskAction que especifica o comando a ser executado. Vamos criar uma acção que recebe uma pequena meta e invoca um script PowerShell.

O comando abaixo dá um exemplo de invocar o motor PowerShell e passar um script para ele usando todas as opções de linha de comando apropriadas para fazer o script correr não-interactivamente. O ficheiro do script reside na máquina em que a tarefa agendada será executada em.

$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'

Criar um trigger

Next, você precisa de um trigger. Você tem vários valores disponíveis, mas esta tarefa usará um tempo específico — 3 da manhã — para executar este script uma vez. Para uma lista completa de opções, veja a página de ajuda do New-ScheduledTaskTrigger cmdlet.

$Trigger = New-ScheduledTaskTrigger -Once -At 3am

Criar configurações

Next, crie a tarefa agendada usando o comando New-ScheduledTask. Este comando requer um valor para o parâmetro Settings, mesmo que você não esteja usando nenhum especial. É por isso que você executa New-ScheduledTaskSettingsSet para criar um objeto para passar aqui.

$Settings = New-ScheduledTaskSettingsSet

Criar a tarefa agendada

Depois de atribuir todos os objetos como variáveis, passe cada uma destas variáveis para o comando New-ScheduledTask para criar um objeto de tarefa agendada.

$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings

Registar a tarefa agendada

Neste ponto, você criou um objeto de tarefa agendada na memória. Para adicionar a tarefa agendada no computador, você deve registrar a tarefa agendada usando o comando Register-ScheduledTask cmdlet.

O exemplo abaixo registra uma tarefa agendada para ser executada sob um determinado nome de usuário. Para executar a tarefa sob o contexto de um determinado usuário, você tem que fornecer a senha. É útil olhar a documentação do comando Register-ScheduledTask para ver todas as opções para usar com este cmdlet.

Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'

Se você seguiu todos os passos corretamente, você deve ver sua tarefa agendada recém-criada no Agendador de Tarefas.

Configurações da tarefa agendada
Após criar uma tarefa agendada com o PowerShell, você pode abrir o Agendador de Tarefas para ver o nome da tarefa, seus gatilhos e outros detalhes.

Após a tarefa agendada ser registrada e aparecer no Agendador de Tarefas, você pode agora rodar o cmdlet Get-ScheduledTask para ver a tarefa.

Deixe uma resposta

O seu endereço de email não será publicado.