Visão geral
Este artigo descreve como gerenciar o Agendador de Tarefas do Windows utilizando a ferramenta de linha de comando schtasks.exe, disponível por padrão em ambientes Windows Server e Windows Client.
Todos os exemplos assumem execução via PowerShell, utilizando sempre o acento grave (`) como caractere de continuação de linha.
Convenção de variáveis
| Nome da variável |
Exemplo de valor |
Descrição |
<<SERVER_NAME>> |
WSRV2025 |
Nome do servidor de destino |
<<ADMIN_USER>> |
Administrator |
Conta que executa a tarefa |
<<TASK_NAME>> |
DailyTempCleanup |
Nome da tarefa |
<<SCRIPT_PATH>> |
C:\Maintenance\cleanup_temp.ps1 |
Script a ser executado |
<<LOG_PATH>> |
C:\Maintenance\Logs |
Pasta de logs |
<<BACKUP_PATH>> |
C:\Maintenance\Backups |
Pasta de destino para backup de logs de eventos |
Sobre continuação de linha em PowerShell e CMD
Todos os comandos deste artigo são pensados para execução em PowerShell.
- PowerShell: acento grave (`)
- CMD: circunflexo (^)
Exemplo (PowerShell):
schtasks.exe /Create `
/TN "Example" `
/SC DAILY `
/ST 02:00 `
/TR "powershell.exe -File example.ps1"
Step 1: Visão geral dos subcomandos de schtasks.exe
| Subcomando |
Finalidade |
/Create |
Criar uma nova tarefa |
/Delete |
Excluir uma tarefa |
/Query |
Listar tarefas, exibir detalhes e exportar em XML |
/Change |
Alterar configuração de uma tarefa |
/Run |
Executar a tarefa imediatamente |
/End |
Encerrar uma tarefa em execução |
/ShowSid |
Exibir o SID da conta de execução |
Step 2: /Create – sintaxe básica e principais opções
Step 2.1 Sintaxe geral
schtasks.exe /Create `
/TN "<<TASK_NAME>>" `
/TR "<<COMANDO_A_EXECUTAR>>" `
/SC AGENDAMENTO `
[outras_opcoes...]
Step 2.2 Opções mais utilizadas
| Opção |
Conteúdo |
/SC |
Tipo de agendamento (DAILY / WEEKLY / MONTHLY / ONLOGON / ONEVENT) |
/MO |
Modificador |
/ST HH:mm |
Horário de início |
/D |
Dia de execução (1–31 ou MON/TUE…) |
/RU |
Conta de execução |
/RP |
Senha (* para entrada interativa) |
/RL HIGHEST |
Executar com privilégios máximos |
/F |
Forçar sobrescrita de tarefa existente |
Sobre /MO (modificador)
Parâmetro que ajusta a frequência ou posição do agendamento.
Exemplos:
- A cada 3 horas →
/SC HOURLY /MO 3
- A cada 2 semanas →
/SC WEEKLY /MO 2
- Segunda quarta-feira do mês →
/SC MONTHLY /MO SECOND /D WED
- Gatilho por evento →
/SC ONEVENT /MO [XPath]
Step 2.3 Lista de valores para /SC
/SC |
Descrição |
| DAILY |
Diariamente |
| WEEKLY |
Semanalmente |
| MONTHLY |
Mensalmente |
| ONCE |
Uma única vez |
| ONSTART |
Na inicialização do sistema |
| ONLOGON |
No logon do usuário |
| ONIDLE |
Quando o sistema estiver ocioso |
| ONEVENT |
Ao ocorrer um evento no log de eventos |
Step 2.4 Tarefa diária
schtasks.exe /Create `
/TN "DailyTempCleanup" `
/TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Maintenance\cleanup_temp.ps1 -DaysToKeep 7 -LogPath <<LOG_PATH>>" `
/SC DAILY `
/ST 02:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.5 Execução no logon (ONLOGON)
schtasks.exe /Create `
/TN "OnLogonAudit" `
/SC ONLOGON `
/TR "powershell.exe -File C:\Scripts\logon_audit.ps1" `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.6 Execução na inicialização (ONSTART)
schtasks.exe /Create `
/TN "OnStartInit" `
/SC ONSTART `
/TR "powershell.exe -File C:\Scripts\startup_init.ps1" `
/RU "SYSTEM" `
/RL HIGHEST `
/F
Step 2.7 Gatilho baseado em log de eventos (ONEVENT)
schtasks.exe /Create `
/TN "Event101Handler" `
/SC ONEVENT `
/EC System `
/MO "*[System/EventID=101]" `
/TR "powershell.exe -File C:\Scripts\event_handler.ps1" `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.8 Execução a cada 3 horas
schtasks.exe /Create `
/TN "Every3Hours" `
/TR "powershell.exe -File script.ps1" `
/SC HOURLY `
/MO 3 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.9 Segunda quarta-feira de cada mês
schtasks.exe /Create `
/TN "SecondWednesdayTask" `
/TR "powershell.exe -File task.ps1" `
/SC MONTHLY `
/MO SECOND `
/D WED `
/ST 03:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.10 Último dia do mês (LASTDAY)
schtasks.exe /Create `
/TN "LastDayMonthly" `
/TR "powershell.exe -File script.ps1" `
/SC MONTHLY `
/MO LASTDAY `
/M * `
/ST 01:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.11 A cada 2 semanas
schtasks.exe /Create `
/TN "Every2Weeks" `
/TR "powershell.exe -File script.ps1" `
/SC WEEKLY `
/MO 2 `
/D MON `
/ST 05:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 3: /Query – listagem e detalhes
| Opção |
Descrição |
/FO TABLE |
Saída em formato tabular |
/FO LIST |
Saída em formato de lista, por campos |
/V |
Exibe informações detalhadas (gatilhos, ações etc.) |
/TN "<<TASK_NAME>>" |
Exibe apenas a tarefa especificada |
schtasks.exe /Query /FO TABLE
schtasks.exe /Query /FO LIST /V
schtasks.exe /Query /TN "<<TASK_NAME>>" /FO LIST /V
Step 4: /Change – alteração de configuração
| Opção |
Descrição |
/TN |
Nome da tarefa |
/RU |
Altera a conta de execução |
/RP * |
Solicita nova senha interativamente |
/TR |
Substitui o comando de execução |
/ENABLE /DISABLE |
Habilita ou desabilita a tarefa |
Atenção: /Change não permite alterar a definição do gatilho (/SC, /MO, /D, /M).
Se for necessário alterar o agendamento, é mais seguro remover a tarefa com /Delete e recriá-la com /Create.
Alterar conta de execução
schtasks.exe /Change `
/TN "<<TASK_NAME>>" `
/RU "<<ADMIN_USER>>" `
/RP *
Alterar comando de execução
schtasks.exe /Change `
/TN "<<TASK_NAME>>" `
/TR "powershell.exe -File <<SCRIPT_PATH>> -LogPath <<LOG_PATH>>"
Habilitar/Desabilitar tarefa
schtasks.exe /Change /TN "<<TASK_NAME>>" /ENABLE
schtasks.exe /Change /TN "<<TASK_NAME>>" /DISABLE
Step 5: /Run (execução imediata) e /End (encerramento)
| Opção |
Descrição |
/Run |
Executa a tarefa imediatamente |
/I |
Ignora restrições de agendamento (data de início/fim etc.) |
/End |
Encerra a tarefa em execução |
/TN |
Nome da tarefa alvo |
schtasks.exe /Run /TN "<<TASK_NAME>>"
schtasks.exe /Run /TN "<<TASK_NAME>>" /I
schtasks.exe /End /TN "<<TASK_NAME>>"
Step 6: Importar tarefas a partir de XML
Importação de XML
| Opção |
Descrição |
/XML arquivo |
Cria a tarefa a partir de um arquivo XML |
/RU |
Sobrescreve a conta de execução |
/RP * |
Solicita a senha interativamente |
schtasks.exe /Create `
/TN "<<TASK_NAME>>" `
/XML "C:\TaskTemplates\<<TASK_NAME>>.xml" `
/RU "<<ADMIN_USER>>" `
/RP *
Exportar para XML (via Query)
| Opção |
Descrição |
/XML ONE |
Exporta a definição da tarefa em um único XML |
> arquivo |
Redireciona a saída para um arquivo |
schtasks.exe /Query `
/TN "<<TASK_NAME>>" `
/XML ONE `
> C:\TaskTemplates\<<TASK_NAME>>.xml
Step 8: /Delete – remoção de tarefas
| Opção |
Descrição |
/Delete |
Modo de exclusão |
/TN |
Nome da tarefa |
/F |
Exclui sem solicitar confirmação |
schtasks.exe /Delete /TN "<<TASK_NAME>>" /F
Step 9: /ShowSid – exibir SID da conta de execução
| Opção |
Descrição |
/ShowSid |
Exibe o SID associado à conta de execução da tarefa |
/TN |
Nome da tarefa |
schtasks.exe /ShowSid /TN "<<TASK_NAME>>"
Step 10: Gerenciamento de tarefas em servidor remoto
| Opção |
Descrição |
/S "<<SERVER_NAME>>" |
Servidor de destino (remoto) |
/U |
Usuário para conexão remota |
/P * |
Senha para o usuário remoto (* para entrada interativa) |
| Demais parâmetros |
Definição da tarefa, igual ao cenário local |
schtasks.exe /Create `
/S "<<SERVER_NAME>>" `
/U "<<ADMIN_USER>>" `
/P * `
/TN "<<TASK_NAME>>" `
/TR "powershell.exe -File <<SCRIPT_PATH>>" `
/SC DAILY `
/ST 02:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Conclusão
O uso de schtasks.exe facilita a integração do Agendador de Tarefas em cenários de construção de servidores e automação operacional.
- A combinação de
/SC e /MO permite agendamentos flexíveis (diário, semanal, mensal, enésima ocorrência, último dia do mês).
- Gatilhos ONLOGON, ONSTART e ONEVENT permitem automação orientada por eventos.
- Com
/Query /XML e /Create /XML, é possível exportar e importar definições como modelos reutilizáveis.
- Os comandos
/Change, /Run, /End, /Delete e /ShowSid cobrem o ciclo completo de administração das tarefas.
- Com
/S /U /P, as mesmas definições podem ser replicadas facilmente em múltiplos servidores remotos.