Como visualizar, criar e excluir tarefas agendadas com PowerShell

Em geral, existem tarefas que realizamos manualmente em nosso computador, como iniciar programas, excluir arquivos antigos ou limpar alguns dados. Windows 10 também nos oferece a capacidade de ajudar a automatizar essas tarefas para que possamos fazer mais em menos tempo. Embora o aplicativo Agendador de Tarefas seja o que oferece o ambiente mais conveniente para esta tarefa, também temos outras opções, como usar PowerShell.

Tanto o CMD quanto o PowerShell são incluídos por padrão no Windows e são responsáveis ​​por trabalhar por meio de comandos e scripts que nos permitirão ter maior controle sobre o sistema operacional. Porém, na maioria dos casos, para poder usar e tirar proveito de suas vantagens será necessário ter conhecimentos avançados de Windows.

Visualize, crie e exclua tarefas agendadas com PowerShell

E é que usando a opção PowerShell podemos agendar, modificar e excluir tarefas. Isso pode ser muito útil quando precisamos acelerar o processo de criação de tarefas em vários dispositivos ou se precisamos criar um script que precisa interagir com o console. É por isso que hoje vamos ver como podemos criar ou excluir tarefas, programas, usando o Windows PowerShell.

O que é PowerShell e para que serve

Também conhecido como Windows PowerShell, é um utilitário de linha de comando que se apresenta como uma versão melhorada e avançada do tradicional Prompt de Comando, que nos permitirá executar diferentes unidades de comando, chamadas Scripts, facilitando assim a criação, configuração e automação de múltiplas tarefas. Ele é baseado em .NET CLR, por isso é ideal para automação de processos. Portanto, estamos diante de uma ferramenta que, dada a sua flexibilidade, costuma ser utilizada tanto por engenheiros quanto por analistas de sistemas.

Ao contrário de outras interfaces de linha de comando como CMD, PowerShell pode trabalhar com objetos além de um comando simples. Graças à sua interface de script completa, podemos realizar funções específicas no sistema operacional Windows, como, por exemplo, lançar diferentes comandos para automatizar diferentes tarefas. Além disso, oferece-nos a possibilidade de adicionar à consola outros comandos criados pelos próprios utilizadores.

Embora para muitos usuários, especialmente com conhecimento básico do Microsoft sistema operacional, PowerShell é uma ferramenta completamente desconhecida, a verdade é que já era compatível com o Windows XP, exceto que era necessário baixá-lo para poder usá-lo. Desde a chegada do Windows 10, o PowerShell já vem pré-instalado, ganhando maior destaque e visibilidade para que o acesso seja mais fácil dentro do sistema operacional Microsoft.

Crie uma tarefa agendada com PowerShell

A primeira coisa que devemos fazer é abrir o PowerShell concedendo a ele privilégios de administrador. Para fazer isso, usaremos o mecanismo de busca do menu Iniciar, onde escreveremos o powershell. Assim que o aplicativo aparecer, clicaremos em Executar como administrador.

Ejectar PowerShell como administrador

A seguir, aparecerá uma janela avisando que o aplicativo fará alterações no dispositivo, então clicamos em Sim e a tela do PowerShell aparecerá de forma visível, de onde começaremos a escrever os comandos necessários para criar nossas tarefas agendadas.

Assim que a tela do PowerShell aparecer, devemos inserir o seguinte comando:

$action = New-ScheduledTaskAction -Execute 'app-path'

Caminho do aplicativo PowerShell

Posteriormente, devemos ter em mente que devemos substituir o caminho do aplicativo pelo caminho original do aplicativo que queremos executar. Por exemplo, se quisermos abrir o Mozilla Firefox devemos usar o arquivo Firefox.exe, de modo que o caminho completo seja o seguinte:

$action = New-ScheduledTaskAction -Execute 'C: / Archivos de programa / Mozilla Firefox / firefox.exe'

Área de programação do PowerShell para Firefox

Caso necessitemos criar um script PowerShell será necessário usar “-argument” e especificar o script. Desta forma, o resultado final deve ser tal que

New-ScheduledTaskAction -Execute 'powershell.exe' -argument script-path

O próximo passo consistirá em definir a hora que queremos para executar a tarefa que queremos agendar, podendo escolher a hora que necessitamos. Podemos escolher entre o formato de 12 ou 24 horas. No caso de escolhermos o formato de 12 horas, devemos acompanhá-lo com AM / PM no horário especificado no comando. Por exemplo, podemos agendar o programa para ser executado uma vez às 07h00 ou às 19h00 do mesmo dia. Também será possível configurá-lo para ativar diariamente, semanalmente, mensalmente, etc.

Para isso devemos usar o seguinte comando:

$trigger = New-ScheduledTaskTrigger -Once -At 07:00PM

Comando do PowerShell para estabelecer a hora do tarea programada

A seguir, devemos registrar a tarefa que vamos programar, devemos inserir o seguinte comando, alterando DemoName, DemoTask e DemoDescription de acordo com nossas preferências:

Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath "DemoName" -TaskName "DemoTask" -Description "DemoDescription"

PowerShell registrar a tarea programada

Feito isso, o sistema terá automatizado a tarefa que agendamos e ela sempre será executada no horário que definimos. Assim que não quisermos mais realizar a programação desta tarefa, devemos proceder à sua eliminação.

Exclua uma tarefa agendada com PowerShell

Para eliminar qualquer tarefa do programa, devemos iniciar o PowerShell novamente com privilégios de administrador. Vamos escrever o PowerShell no mecanismo de busca do menu Iniciar. Assim que o aplicativo aparecer, clique em “Executar como administrador”. Em seguida, uma janela aparecerá avisando que o aplicativo fará alterações no dispositivo, então, novamente, clicamos em Sim e a tela do PowerShell aparecerá visivelmente.

Assim que a janela do PowerShell aparecer, devemos inserir o seguinte comando, substituindo DemoTask pelo nome da tarefa original:

Unregister-ScheduledTask -TaskName "DemoTask" -Confirm: $false

Tara de borrar PowerShell programada

Feito isso, pressionamos enter e a tarefa será eliminada. Opcionalmente, podemos escrever o seguinte comando para confirmar que a tarefa foi eliminada e ter certeza de que ela não continuará a ser executada de forma programada. Para isso vamos escrever:

Get-ScheduledTask -TaskName "DemoTask"

PowerShell comprobar e la tarea programa se ha eliminado

Este comando se encarregará de confirmar que a tarefa DemoTask não está mais disponível. Depois de concluir as etapas, devemos receber uma mensagem de erro. Isso nos dirá que não há tarefa com esse nome específico. Isso significa que a tarefa que agendamos já foi eliminada corretamente anteriormente.

Gerenciar tarefas agendadas com PowerShell

O comando do Windows PowerShell também nos permitirá gerenciar tarefas. Para isso utilizamos o comando Get-ScheduledTask que se encarregará de devolver todas ou algumas das tarefas agendadas por nossa equipe.

Para realizar esta ação será necessário apenas iniciar o PowerShell como administrador e uma vez na janela escrever o seguinte comando:

Get-ScheduledTask

PowerShell usando o comando Get-ScheduledTask

Usando apenas o comando básico, todas as tarefas no computador serão listadas ordenadas por caminho. Podemos ver como o caminho da tarefa está incluído, o nome da tarefa e o estado em que se encontra. Por meio do nome podemos identificar a tarefa enquanto a seção de estado (Estado) indicará se ela está ativada ou desativada.

No PowerShell, também podemos desabilitar ou habilitar as tarefas selecionadas, usando os comandos Disable-ScheduledTask e Enable-ScheduledTask. No caso de executarmos os comandos diretamente, será necessário especificarmos o nome da tarefa ou das rotas.

Por exemplo, se quisermos desabilitar tarefas relacionadas ao Google, usaremos o comando Disable-ScheduledTask, que se encarregará de desabilitá-lo. Para isso, escrevemos o seguinte comando.

Get-ScheduledTask -taskname google* | Disable-ScheduledTask

PowerShell usar o comando Disable-ScheduledTask

Caso desejemos ativar todas as tarefas do Google, usaremos o comando usaremos a mesma linha de comando acima, exceto que neste caso usaremos Enable-ScheduledTask no final, que se encarregará de ordenar a habilitação de a tarefa.

Get-ScheduledTask -taskname google* | Enable-ScheduledTask

PowerShell Enable-ScheduledTask