Use o PowerShell para gerenciar tarefas agendadas no Windows

Verifico regularmente vários locais nos sistemas Windows executados, incluindo o Gerenciador de Tarefas do Windows, para listar os processos em execução, as entradas de inicialização automática e também as tarefas agendadas do sistema.

Faço isso por alguns motivos, incluindo segurança, para garantir que nada ocorra e esteja sendo executado no sistema que considero malicioso, spyware ou indesejado de outras maneiras, mas também para desestimular o sistema, desativando, bloqueando ou removendo os programas. o sistema ou dentro do cronograma.

Embora seja possível abrir o Agendador de tarefas usando a pesquisa, ele não fornece uma interface limpa para percorrer a lista de tarefas rapidamente.

Um programa que eu gosto de usar para a tarefa é a excelente Visão do Agendador de tarefas da Nirsoft, que, como sempre, é portátil e altamente eficiente.

O PowerShell do Windows oferece outra opção rápida no Windows 8 e posterior. O comando Get-ScheduledTask retorna todas ou seleciona tarefas agendadas do computador local.

  1. Abra uma janela do prompt de comando. Você pode fazer isso com um toque na tecla Windows, digitando Powershell.exe, clicando com o botão direito do mouse no resultado, selecionando "executar como administrador" e pressionando Enter. Observe que o comando get-scheduletask não requer elevação, enquanto todos os comandos de gerenciamento exigem.
  2. Tipo Get-ScheduledTask

O comando básico lista todas as tarefas do computador local classificadas por caminho. Inclui apenas o caminho da tarefa, o nome da tarefa e o estado da tarefa, que pode ser suficiente às vezes.

O nome ajuda na identificação da tarefa, enquanto o estado destaca se está ativado ou desativado.

O que torna isso mais poderoso, porém, são os parâmetros que você pode adicionar ao comando para exibir detalhes adicionais ou tarefas de filtro.

Aqui estão alguns exemplos de comando que você pode achar úteis:

  • Get-ScheduledTask -TaskName Google * retorna todas as tarefas que começam com o Google.
  • Get-ScheduledTask -TaskPath \ retorna todas as tarefas colocadas na raiz do TaskPath.

Embora seja útil exibir tarefas agendadas dessa maneira, você também pode gerenciar tarefas usando o PowerShell. Observe que você precisa de direitos elevados para executar desabilitar ou habilitar tarefas em um sistema. Isso significa que você precisa executar o PowerShell a partir de um prompt de comando elevado.

Os comandos Disable-ScheduledTask e Enable-Scheduled-Task foram projetados para isso. Como os nomes sugerem, o primeiro desativa as tarefas que você seleciona enquanto o segundo as habilita.

Se você executar os comandos diretamente, precisará especificar nomes ou caminhos de tarefas explicitamente. Há uma solução alternativa para isso, porém, que você pode usar para ativar ou desativar várias tarefas ao mesmo tempo.

Os comandos que você pode achar úteis são:

  • Desativar-ScheduledTask -taskname "Adobe Flash Player Updater" desativa a tarefa Adobe Flash Player Updater.
  • Enable-ScheduledTask - taskname "Adobe Flash Player Updater" ativa a tarefa Adobe Flash Player Updater.
  • Get-ScheduledTask -taskname Google * | Disable-ScheduledTask desativa todas as tarefas que o comando get retorna (começando com o Google),

Outros comandos de interesse relacionados à tarefa são start-scheduletask, stop-scheduletask e unregister-scheduletask.