Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Como Executar um Script do PowerShell a partir do Agendador de Tarefas

Como Executar um Script do PowerShell a partir do Agendador de Tarefas

Sep 16, 2024

O Agendador de Tarefas do Windows permite que os administradores executem scripts do PowerShell automaticamente conforme uma programação definida ou em resposta a eventos do sistema. Isso melhora a consistência, economiza tempo e reduz o erro humano para tarefas como backups, atualizações, monitoramento e limpezas. Os scripts podem ser agendados através da GUI ou dos cmdlets do PowerShell (Register-ScheduledTask, New-ScheduledTaskTrigger, etc.). As melhores práticas incluem o uso de contas com o mínimo de privilégios, registro e tratamento de erros, assinatura de scripts e revisões regulares para prevenir o uso indevido.

Introdução

O Agendador de Tarefas do Windows permite que os usuários programem tarefas para serem executadas em uma data e hora específicas, em um cronograma definido ou quando acionadas por determinados eventos. Esta ferramenta integrada dos sistemas operacionais Windows ajuda a melhorar a eficiência e garantir a execução confiável de tarefas repetitivas. Neste blog, mostraremos como executar um script do PowerShell a partir do Agendador de Tarefas e como criar tarefas agendadas usando o PowerShell.


Configurando scripts do PowerShell para automação

Compreendendo o Agendador de Tarefas

A biblioteca do Agendador de Tarefas é uma coleção de todas as tarefas definidas, organizadas em pastas. Para cada tarefa, a interface gráfica oferece as seguintes abas:

  • Geral — O nome e a descrição das tarefas, a conta sob a qual devem ser executadas e outras opções de segurança.
  • Gatilhos — As condições que iniciam uma tarefa, que podem ser baseadas em tempo (por exemplo, diariamente, semanalmente), baseadas em eventos (por exemplo, na inicialização do sistema ou no login do usuário) ou personalizadas
  • Ações — As operações executadas quando uma tarefa é acionada, como iniciar um programa.
  • Condições — Critérios que controlam a execução de uma tarefa com base no estado do computador, como executar apenas quando o computador estiver ocioso por um período específico
  • Configurações — Configurações adicionais que determinam como e quando uma tarefa é executada, como reiniciar uma tarefa se ela falhar ou interrompê-la se durar mais do que o esperado
  • Histórico — Um histórico das execuções de tarefas, incluindo horários de início, término e quaisquer erros ou avisos encontrados
Image

Benefícios de usar o Task Scheduler para Automatizar Scripts PowerShell

Automatizar scripts do PowerShell através do Agendador de Tarefas do PowerShell oferece muitos benefícios, incluindo os seguintes:

  • Economia de tempo — Quando você executa scripts do PowerShell a partir do Agendador de Tarefas, pode economizar uma quantidade considerável de tempo que seria gasta em execução manual. Isso é particularmente benéfico para scripts que precisam ser executados fora do horário comercial.
  • Consistência — A automação reduz o risco de erros humanos. Um script PowerShell agendado executará exatamente as mesmas operações na mesma ordem todas as vezes.
  • Confiabilidade — Com o Agendador de Tarefas, você pode garantir que tarefas críticas de manutenção, como rotinas de backup e limpeza, sejam executadas regularmente. Isso aumenta a confiabilidade do sistema e reduz o risco de perda de dados ou falhas do sistema.
  • Eficiência de recursos — Ao programar scripts para serem executados em períodos de baixa utilização do sistema, você pode garantir que tarefas intensivas não degradem o desempenho do sistema durante os horários de pico.
  • Flexibilidade — O Task Scheduler oferece uma variedade de opções de agendamento, incluindo a capacidade de executar tarefas na inicialização do sistema, no logon, quando ocioso ou em resposta a eventos específicos. Esse nível de controle permite que você adapte a execução de scripts às suas necessidades específicas.
  • Tratamento de erros — Você pode configurar tarefas agendadas para tentar uma nova execução se um script falhar, enviar e-mails após a conclusão ou falha da tarefa e escrever logs de eventos. Isso permite a resolução de problemas em tempo hábil e mantém você informado sobre a saúde dos processos automatizados.
  • Segurança — Com o Agendador de Tarefas, scripts do PowerShell podem ser executados sob contas de usuário específicas, incluindo aquelas com privilégios elevados, sem a necessidade do usuário estar logado. Isso ajuda a garantir que tarefas sensíveis sejam executadas de forma segura e permite a automação de scripts que requerem privilégios mais altos. No entanto, uma vez que adversários podem explorar tarefas agendadas e disparadas para fins maliciosos, você deve utilizar um sistema de auditoria ou rastreamento para monitorar as tarefas em busca de possíveis abusos. Netwrix Access Analyzer é um bom exemplo de ferramenta que pode mitigar atividades maliciosas.
  • Integração e extensibilidade — Agendar scripts do PowerShell permite cenários de automação sofisticados que podem reagir a eventos do sistema, orquestrar múltiplas tarefas e mais.
  • Gestão de fluxos de trabalho complexos — O Task Scheduler pode gerir fluxos de trabalho complexos, como encadear tarefas ou usar lógica condicional baseada no sucesso ou falha de uma tarefa anterior. Isso é inestimável para cenários onde múltiplas tarefas interdependentes precisam ser cuidadosamente orquestradas.
  • Facilidade de uso — Apesar de suas poderosas funcionalidades, o Task Scheduler possui uma interface gráfica intuitiva que simplifica o processo de configuração e gerenciamento de tarefas automatizadas. Para usuários mais avançados, o Task Scheduler também pode ser configurado e gerido utilizando ferramentas de linha de comando ou cmdlets do PowerShell.

Passos para Criar um Agendamento para um Script PowerShell

Antes de agendar um script PowerShell com o Agendador de Tarefas, certifique-se de que o script está salvo com a extensão .ps1 e que foi testado para garantir que funciona corretamente.

Em seguida, siga os passos a seguir:

  • Abra o Agendador de Tarefas: Pressione Win + R, digite taskschd.msc na caixa de diálogo Executar e pressione Enter.
Image
  • No painel Actions à direita, clique em Create Task.
  • Na aba General, faça o seguinte:
  • Insira um nome e descrição para a sua tarefa.
  • Configure as opções de segurança apropriadas. Por exemplo, selecionar Run whether user is logged on or not garantirá que a tarefa seja executada mesmo que você não esteja logado. Se o script requer direitos administrativos, marque Run with highest privileges.

Clique em OK para salvar suas alterações.

Image
  • Vá para a aba Triggers e clique em Novo. Na seção New Trigger, escolha o seguinte:
  • Quando a tarefa deve começar
  • A frequência com que deve ser executado, como uma vez, diariamente ou semanalmente
  • Quaisquer opções adicionais de que você precise, como interromper a tarefa se ela durar mais do que o tempo especificado

Clique em OK para salvar suas alterações.

Image
  • Vá para a aba Actions.Clique em New para configurar uma nova ação para executar seu script PowerShell:
  • Do menu suspenso Action, selecione Iniciar um programa.
  • In the Program/script field, enter powershell.exe.
  • No campo Add arguments insira o seguinte, certificando-se de especificar o caminho completo para o seu script: -File C:\Scripts\scriptname.ps1
  • No campo Start in especifique o diretório onde o script, se necessário. Isso geralmente não é exigido a menos que seu script dependa de caminhos relativos.

Clique em OK para salvar suas alterações

Image
  • Clique em OK e vá para a aba Condições. Defina quaisquer condições sob as quais a tarefa deve ser executada. Por exemplo, você pode especificar que a tarefa só deve ser executada se o computador estiver conectado à energia AC ou somente se estiver conectado a uma rede específica. Clique em OK para salvar suas seleções.
Image
  • Em seguida, vá para a aba Settings e configure o seguinte:
  • Permitir que a tarefa seja executada sob demanda — Marque esta opção se desejar executar a tarefa manualmente.
  • Se a tarefa falhar — Especifique o que deve acontecer se a tarefa falhar, como reiniciar a tarefa.
  • Interrompa a tarefa se ela durar mais do que — Defina um limite de tempo se aplicável.
  • Se a tarefa já estiver em execução — Escolha o que deve acontecer se a tarefa for acionada, mas já estiver em execução.
Image
  • Clique em OK para finalizar sua tarefa. Será solicitado que você insira as credenciais para a conta de usuário sob a qual a tarefa será executada.

Configuração Avançada e Melhores Práticas

Controlando a Execução e Visibilidade de Scripts

Para controlar a execução de scripts e a visibilidade ao usar o Task Scheduler, você pode usar os seguintes parâmetros no campo Add arguments da aba Action:

  • NoExit — Adicione este parâmetro para impedir que a janela do PowerShell ou prompt de comando feche automaticamente após a execução do script. Esta opção é útil para depuração ou quando você deseja que a janela do console permaneça aberta para verificar o resultado diretamente.
  • Comando — Utilize este parâmetro para especificar o caminho completo de um script a ser executado e quaisquer argumentos necessários.

Por exemplo, você pode especificar o seguinte no campo Add arguments:

      -NoExit -Command -File C:\Scripts\InstallOfSoftware.ps1
      

Redirecionando a Saída para um Arquivo de Texto ou Outros Destinos para Registrar a Atividade do Script

Solução de Problemas Comuns do Agendador de Tarefas do Windows

Aqui estão alguns problemas comuns que podem impedir que suas tarefas agendadas sejam executadas conforme o esperado e como resolvê-los.

A tarefa não iniciará ou executará.

  • Certifique-se de que a conta de usuário que executa a tarefa tenha as permissões necessárias para executar a tarefa e acessar quaisquer arquivos ou diretórios referenciados pela tarefa.
  • Verifique novamente as configurações da tarefa, como as configurações de gatilho, parâmetros de ação e condições.
  • Certifique-se de que a tarefa está habilitada.
  • Se a tarefa utiliza uma conta de usuário específica para executar, verifique se a senha foi alterada e atualize-a para a tarefa se necessário.

A tarefa é executada manualmente, mas não automaticamente.

  • Verifique se as configurações do gatilho estão corretas; problemas comuns incluem horários de início incorretos, agendas mal configuradas.
  • Verifique se há condições que possam impedir a execução da tarefa, como a exigência de que o computador esteja ocioso por um tempo específico. Se a tarefa estiver programada para ser executada em momentos de inatividade ou quando o computador não estiver em uso, configurações de energia como modo de suspensão ou hibernação podem impedir a execução. Ajuste as configurações de energia para garantir que o sistema permaneça ativo para a execução da tarefa.

A tarefa para inesperadamente ou comporta-se incorretamente.

  • Verifique se há memória, CPU ou espaço em disco suficientes disponíveis para que a tarefa seja executada sem problemas.
  • Se a tarefa envolver a execução de um script, certifique-se de que o script funcione corretamente fora do Agendador de Tarefas. Considere como as variáveis de ambiente, caminhos ou permissões podem diferir nas duas situações.

A tarefa falha com códigos de erro específicos.

Consulte o código de erro fornecido no histórico da tarefa ou no registro de eventos para obter informações atuais sobre o problema e como resolvê-lo.

A tarefa é executada, mas não realiza nenhuma ação.

  • Verifique se a ação definida para a tarefa, por exemplo, iniciar um programa, está configurada corretamente.
  • Se o script não estiver sendo executado devido a restrições de política, considere adicionar o argumento -ExecutionPolicy Bypass para substituir a política de execução do sistema e permitir que o script seja executado.
  • Certifique-se de que os caminhos para os arquivos executáveis ou scripts estão corretos e que quaisquer argumentos de linha de comando estão devidamente especificados.
  • Se a tarefa deve gerar um arquivo ou outro destino, certifique-se de que os caminhos estão corretos e a conta em execução possui as permissões de escrita necessárias.

Solicite uma avaliação gratuita do Monitor and Secure Scheduled Tasks

Exemplos Práticos para Casos de Uso Comuns

Scripts de Exemplo para Tarefas Administrativas Comuns

Abaixo estão alguns casos de uso práticos para tarefas administrativas comuns que você pode querer automatizar usando o Windows Task Scheduler, juntamente com scripts de exemplo.

Faça backup de uma Pasta

O seguinte script pode ser usado para fazer backup de uma pasta no drive C para uma pasta no drive D local:

      Copy-Item -Path "C:\Source\*" -Destination "D:\Backup" -Recurse -Force
      

Instale Atualizações de Software

Para atualizar software ou componentes do sistema automaticamente, use este script:

      Install-WindowsUpdate -AcceptAll -AutoReboot
      

Enviar Notificações aos Usuários

Para enviar lembretes sobre eventos futuros para uma lista de distribuição de e-mail, use este script:

      Send-MailMessage -To "AbbeyCrawford@milkyway.com" -From "AbbeyTucker@milkyway.com" -Subject "Daily Meeting Reminder" -Body "This is a reminder about the meeting scheduled for 10:00 AM." -SmtpServer "smtp.milkyway.com"
      

Realize Varreduras de Segurança

Para executar automaticamente varreduras de segurança para detectar malware ou vulnerabilidades, use este script:

      Start-MpScan -ScanType QuickScan
      

Limpar Arquivos Temporários

Este script remove arquivos temporários dos diretórios especificados:

      Get-ChildItem -Path C:\Windows\Temp\*, $env:TEMP\* -Recurse | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
      

Reiniciar um Serviço

Para reiniciar um serviço, como um servidor web ou serviço do Microsoft SQL server, você pode usar comandos como os seguintes:

      Restart-Service -Name W3SVC
      
      Restart-Service -Name MSSQLSERVER
      

Agendamento de Scripts PowerShell Complexos

Você também pode agendar scripts PowerShell mais complexos. Como ilustrado nos exemplos abaixo, é uma boa prática incluir comentários que descrevam o propósito das várias seções de um script.

Relatório de Uso de Espaço em Disco

Este script oferece uma visão geral rápida do uso do espaço em disco:

      # Script to report disk space usage

Get-PSDrive -PSProvider FileSystem |

Select-Object Name, @{Name="UsedGB";Expression={"{0:N2}" -f (($_.Used - $_.Free)/1GB)}}, @{Name="FreeGB";Expression={"{0:N2}" -f ($_.Free/1GB)}}, @{Name="TotalGB";Expression={"{0:N2}" -f ($_.Used/1GB)}} |

Format-Table -AutoSize
      

Monitorar a Saúde do Sistema

Para acompanhar o desempenho do sistema ao longo do tempo, você pode usar este script PowerShell para registrar o uso da CPU, uso de memória e espaço em disco em um arquivo:

      # Define the log file path

$logFile = "C:\SystemHealthLog.txt"

# Function to get system health metrics

function Get-SystemHealth {

    # Get CPU usage

    $cpuUsage = Get-Counter '\Processor(_Total)\% Processor Time'

    # Get memory usage

    $memoryUsage = Get-Counter '\Memory\Available MBytes'

    # Get disk space usage for C: drive

    $diskSpace = Get-PSDrive -Name C

    $usedSpace = $diskSpace.Used / 1MB

    $freeSpace = $diskSpace.Free / 1MB

    $totalSpace = $diskSpace.Used + $diskSpace.Free / 1MB

    # Format output

    $cpuUsageFormatted = "{0:N2}%" -f $cpuUsage.CounterSamples[0].CookedValue

    $memoryUsageFormatted = "{0:N2} MB" -f $memoryUsage.CounterSamples[0].CookedValue

    $diskSpaceFormatted = "Used: {0:N2} MB, Free: {1:N2} MB, Total: {2:N2} MB" -f $usedSpace, $freeSpace, $totalSpace

    # Write to log file

    $logEntry = "Date and Time: $(Get-Date) - CPU Usage: $cpuUsageFormatted, Memory Available: $memoryUsageFormatted, Disk Space: $diskSpaceFormatted"

    Add-Content -Path $logFile -Value $logEntry

}

# Run the health check

Get-SystemHealth
      

Modificar ou Excluir Tarefas Agendadas

Antes de modificar ou excluir uma ou mais tarefas agendadas, você pode querer revisar todas as tarefas existentes. Para ver a lista de tarefas, basta executar o cmdlet Get-ScheduledTask.

Modificando uma Tarefa Agendada

Para modificar uma tarefa, clique com o botão direito sobre ela e selecione Properties, conforme mostrado abaixo. Em seguida, edite as configurações necessárias e clique em OK para salvar suas alterações.

Image

Excluindo uma Tarefa Agendada

Para excluir uma tarefa agendada, clique com o botão direito sobre ela, selecione Delete e confirme a ação.

Image

Criando Tarefas Agendadas com Scripts PowerShell

Introdução ao Agendamento no PowerShell

Para criar tarefas agendadas, você tem outra opção além do Agendador de Tarefas: PowerShell. Criar e gerenciar tarefas agendadas diretamente da interface do PowerShell pode aumentar significativamente a produtividade, precisão e confiabilidade da sessão, especialmente ao gerenciar sistemas remotos através de uma CimSession.

Abaixo estão alguns dos principais comandos do PowerShell usados para criar e gerenciar tarefas agendadas:

  • New-ScheduledTask — Cria um novo objeto de tarefa agendada no PowerShell
  • Register-ScheduledTask — Registra uma nova tarefa agendada
  • New-ScheduledTaskAction — Define as ações de tarefas agendadas
  • New-ScheduledTaskPrincipal — Armazena a conta de usuário sob a qual a tarefa será executada
  • New-ScheduledTaskSettingsSet — Define as configurações de tarefas agendadas
  • New-ScheduledTaskTrigger — Define os gatilhos de tarefas agendadas

Vantagens de Usar PowerShell para Gerenciar Tarefas Agendadas

Os benefícios de usar o PowerShell para executar tarefas agendadas incluem o seguinte:

  • Facilidade de uso — É fácil especificar gatilhos, condições e ações complexas.
  • Flexibilidade — Você pode escrever e executar scripts sofisticados que podem realizar uma ampla gama de tarefas, desde simples limpezas de arquivos até diagnósticos e reparos de sistemas complexos.
  • Economia de tempo — Utilizar uma tarefa agendada do PowerShell para executar um script do PowerShell elimina a necessidade de realizar manualmente tarefas repetitivas ou complexas.
  • Resolução de problemas mais fácil — Scripts PowerShell podem registrar informações detalhadas sobre erros ou até mesmo tentar corrigi-los automaticamente.
  • Execução remota — Tarefas agendadas podem ser executadas e controladas em várias máquinas. Isso é particularmente vantajoso em ambientes de rede maiores.
  • Segurança — O PowerShell inclui muitos recursos de segurança, como a política de execuçãopolicy e scripts assinados, para ajudar a garantir que apenas scripts autorizados sejam executados no seu sistema.
  • Eficiência — Utilizar o PowerShell para agendar tarefas geralmente consome menos recursos do sistema do que ferramentas de automação de terceiros.
  • Adaptabilidade — Tarefas agendadas no PowerShell podem ser facilmente modificadas, replicadas ou estendidas para atender às necessidades em evolução.

Criando uma Tarefa Agendada com PowerShell

Um script do PowerShell para criar uma tarefa agendada inclui os seguintes elementos:

  • $action — Isso especifica o que a tarefa fará, como executar um script PowerShell, iniciar um aplicativo ou executar um comando:
      $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\InstallOfSoftware.ps1"
      
  • $trigger — Isso especifica quando a tarefa será executada, como em um horário específico, diariamente ou semanalmente, ou com base em eventos do sistema:
      $trigger = New-ScheduledTaskTrigger -Daily -At "10:00AM"
      
  • $principal — Isso especifica a conta de usuário sob a qual a tarefa será executada:

$principal = New-ScheduledTaskPrincipal -UserId “NT AUTHORITY\SYSTEM” -LogonType Password

  • $settings — Isso inclui opções como como lidar com falhas de tarefas, condições para execução e comportamento ao usar energia da bateria:
      $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
      
  • Register-ScheduledTask — Isso registra a tarefa com o Agendador de Tarefas:
      Register-ScheduledTask -TaskName “Installation of Software" -Action $action -Trigger $trigger -Principal $principal -Settings $settings
      

Abaixo você pode ver a execução do script completo:

Image

Considerações de Segurança e Melhores Práticas

Implicações de Segurança das Tarefas Agendadas

Quando você agenda tarefas, seja usando o Agendador de Tarefas ou PowerShell, certifique-se de prestar atenção nas seguintes preocupações de segurança:

  • Gestão de permissões — Tarefas agendadas são executadas com as permissões da conta sob a qual estão programadas, portanto, podem ser abusadas. Esse risco é maior se a conta possuir acesso elevado. Certifique-se de executar tarefas agendadas usando contas que tenham as permissões mínimas necessárias.
  • Segurança de scripts — Os scripts ou executáveis chamados por tarefas agendadas podem ser vetores para vulnerabilidades de segurança. Por exemplo, atores maliciosos podem substituir ou modificar scripts armazenados em diretórios desprotegidos para executar comandos prejudiciais.
  • Sequestro de processo — Se uma tarefa agendada é previsível e é executada com altos privilégios, um atacante pode substituir o script que a tarefa deveria executar por um código malicioso.
  • Auditoria e responsabilização — É essencial manter registros detalhados da criação, modificação e execução de tarefas agendadas para detectar e responder a atividades maliciosas.
  • Negação de serviço — Ao agendar tarefas que consomem recursos excessivos do sistema para serem executadas em momentos críticos, um atacante poderia interromper a capacidade do sistema hospedeiro de realizar suas funções pretendidas.

Executando scripts com o Contexto de Segurança Apropriado e as Implicações do Uso de Contas Altamente Privilegiadas

Para minimizar sua superfície de ataque, sempre execute scripts sob uma conta que tenha o menor privilégio necessário para a tarefa e evite executar scripts com direitos administrativos. Para conseguir isso, entenda quais recursos, permissões e limites de controle um script requer. Por exemplo, o script precisa modificar arquivos do sistema, acessar dados específicos ou se comunicar pela rede?

Além disso, utilize políticas de execução para controlar as condições sob as quais os scripts podem ser executados. Por exemplo, você pode restringir o sistema a executar scripts somente se eles forem assinados por um editor confiável.

Para scripts que precisam ser executados como um serviço, considere usar uma conta de serviço gerenciada do Windows (MSA) ou uma conta de serviço gerenciada em grupo (gMSA), que são mais seguras porque suas senhas são gerenciadas automaticamente.

Melhores Práticas para Criar Tarefas Agendadas

Para maximizar os benefícios do uso de tarefas agendadas, siga estas melhores práticas:

  • Certifique-se de que cada tarefa tenha um propósito claro. Documente tanto o que a tarefa faz quanto o motivo de ela ser necessária para ajudar outras pessoas que possam trabalhar com a tarefa no futuro.
  • Estabeleça convenções de nomenclatura claras. Para evitar confusão e execução inadequada de tarefas, garanta que cada tarefa agendada tenha um caminho de tarefa único.
  • Revise e teste. Revise cuidadosamente os scripts antes de executá-los, especialmente se forem obtidos de fontes externas, atentando para qualquer código suspeito. Antes de implantar uma tarefa agendada em um ambiente de produção, teste-a exaustivamente em um ambiente de teste ou de desenvolvimento. Também é uma boa prática manter um repositório de scripts aprovados.
  • Implemente o tratamento de erros. Certifique-se de que cada script possa gerenciar erros comuns de forma elegante e alertar os membros da equipe relevantes quando houver um problema que necessite atenção.
  • Compreenda as dependências. Se uma tarefa depende de serviços ou dados externos, garanta que existam verificações de disponibilidade e um tratamento adequado de interrupções ou atrasos.
  • Considere o uso de recursos. Procure maneiras de tornar as tarefas menos intensivas em recursos, como modificar a lógica ou a frequência de execução. As tarefas devem ser executadas com a frequência necessária, mas não tão frequentemente que criem problemas de desempenho. Ao escolher quando as tarefas são executadas, considere fatores como outras atividades do sistema e potenciais conflitos.
  • Preste atenção à segurança. Além das diretrizes de segurança fornecidas acima, certifique-se de usar medidas apropriadas de autenticação e autorização para tarefas que requerem acesso a recursos seguros e garanta que as tarefas não exponham inadvertidamente dados sensíveis.
  • Evite depender de configurações padrão para tarefas críticas. Personalize as configurações das tarefas para atender às suas necessidades específicas.
  • Armazene scripts em um local seguro. Certifique-se de que apenas os usuários que precisam executar ou modificar os scripts tenham acesso.
  • Assine seus scripts. Sempre que possível, assine seus scripts com um certificado digital emitido por uma Autoridade Certificadora (CA) confiável. Isso não apenas verifica a autoria do script, mas também garante que o script não foi adulterado desde que foi assinado.
  • Implemente monitoramento e alertas. Os registros são inestimáveis para diagnosticar problemas e entender as ações de uma tarefa. Ferramentas que notificam os administradores sobre atividades incomuns de scripts ou degradação de desempenho permitem uma resposta mais rápida.
  • Revise e atualize regularmente as tarefas agendadas. Isso inclui atualizar quaisquer dependências, ajustar os horários com base nas novas necessidades empresariais e aposentar tarefas que não são mais necessárias.

Conclusão

O Agendador de Tarefas do Windows permite que usuários empresariais e administradores executem scripts do PowerShell em datas e horários específicos de forma regular, como diariamente ou semanalmente, ou quando condições específicas são atendidas. Automatizar tarefas usando o Agendador de Tarefas economiza tempo enquanto garante que as tarefas sejam realizadas de maneira precisa e confiável. Usuários mais avançados podem usar o PowerShell para criar e gerenciar tarefas agendadas.

Ao agendar scripts, certifique-se de seguir as melhores práticas, como documentar o propósito da tarefa, usar tratamento de erros e registro dentro dos scripts e usar o princípio de least privilege principle para evitar permissões excessivas, o que pode ser uma ameaça à segurança se comprometido e utilizado por adversários.

FAQ

O que é o Agendador de Tarefas do Windows?

O Agendador de Tarefas do Windows é uma ferramenta integrada ao sistema operacional Windows que permite aos usuários programar tarefas e processos para serem executados automaticamente. Com o Agendador de Tarefas, você pode configurar tarefas para serem executadas em um dia e horário especificados ou em um determinado intervalo, como diariamente ou semanalmente.

Por que devo usar o Task Scheduler para automatizar scripts do PowerShell?

Ao optar por executar scripts do PowerShell a partir do Agendador de Tarefas, você pode automatizar tarefas repetitivas, o que garante que elas sejam realizadas de maneira confiável e precisa sem mais esforços de sua parte.

Como eu abro o Agendador de Tarefas?

Pressione Win + R para abrir o diálogo Executar. Digite taskschd.msc e pressione Enter.

Como eu crio uma nova tarefa no Agendador de Tarefas?

Clique em Create Task no painel Ações no lado direito da janela do Agendador de Tarefas. Forneça um nome e descrição para a tarefa; escolha as configurações apropriadas para as abas Ação, Gatilhos, Condições e Configurações; e clique em Save.

Quais são os benefícios de nomear e descrever uma tarefa?

Fornecer um nome útil e uma descrição clara que explique o que a tarefa faz e por que ela é necessária ajuda a garantir que cada tarefa tenha um propósito claro e facilita a manutenção futura por outras pessoas que trabalham com a tarefa.

Como posso determinar o gatilho para uma tarefa agendada?

Na aba Trigger de uma tarefa, você pode especificar quando a tarefa deve ser executada, como por agendamento, na inicialização do sistema ou no logon do usuário, bem como o intervalo de repetição e outros critérios.

Como eu configuro o Agendador de Tarefas para executar um script PowerShell?

  1. Vá para a aba Actions, clique em New e selecione Start a program no menu suspenso.
  2. In the Program/script field, input powershell.exe.
  3. No campo Add arguments insira o seguinte, substituindo o argumento InstallofSoftware.ps1 pelo nome do seu script:
      -File C:\Scripts\InstallofSoftware.ps1
      

Como posso configurar tarefas para serem executadas mesmo quando o usuário não está logado?

Na aba Geral da tarefa, selecione a opção Executar independentemente de haver um usuário logado ou não.

Como faço para gerenciar privilégios de tarefas e garantir que os scripts parem após uma duração especificada?

As tarefas possuem os privilégios da conta sob a qual são executadas. Você pode especificar a conta para executar a tarefa na aba Geral.

Para garantir que um script pare após uma duração determinada, na aba Configurações, selecione Stop the task if it runs longer than e escolha o número desejado de horas ou dias.

Como controlo a visibilidade da execução de scripts?

Você pode controlar a execução e a visibilidade de scripts adicionando o parâmetro -NoExit ou -Command no campo Add Argument na aba Ação.

Quais dicas podem ajudar a solucionar tarefas que não são executadas conforme o esperado?

A expiração ou alteração de senhas pode causar a falha de uma tarefa. Tarefas agendadas configuradas de forma inadequada ou projetadas maliciosamente (por exemplo, tarefas que consomem recursos excessivos do sistema) podem levar a uma negação de serviço na máquina hospedeira, prejudicando sua disponibilidade e desempenho.

Como faço para modificar uma tarefa agendada existente?

Clique com o botão direito do mouse na tarefa na biblioteca do Agendador de Tarefas do Windows, selecione Propriedades e faça as alterações desejadas nas configurações da tarefa.

Como eu deleto uma tarefa agendada?

Clique com o botão direito do mouse na tarefa na biblioteca do Agendador de Tarefas e escolha Delete.

Quais são as vantagens de usar o PowerShell para agendar tarefas?

Comparado com a interface gráfica do Agendador de Tarefas, o PowerShell oferece um controle mais granular sobre a configuração de tarefas, tratamento de erros e registro, e facilita a definição de lógica de agendamento personalizada. O PowerShell também permite que você agende e execute tarefas em vários sistemas remotos a partir de um local central.

Para que são usados os cmdlets New-ScheduledTaskTrigger e Register-ScheduledTask?

O cmdlet New-ScheduledTaskTrigger é utilizado para definir gatilhos para a tarefa, e o cmdlet Register-ScheduledTask é utilizado para registrar a tarefa no Agendador de Tarefas do Windows.

Quais são as implicações de segurança das tarefas agendadas?

Executar uma tarefa agendada com contas altamente privilegiadas aumenta os riscos de segurança se a conta for comprometida, portanto, escolha sempre a conta com o princípio do menor privilégio em mente.

Como devo executar scripts com o contexto de segurança apropriado?

O mais importante é executar scripts sob uma conta com os menores privilégios necessários para completar a tarefa e usar contas de serviço gerenciadas (MSAs) ou contas de serviço gerenciadas em grupo (gMSAs) quando apropriado. Considere usar políticas de execução para permitir restringir apenas scripts que sejam assinados por um editor confiável e, sempre que possível, assine seus scripts com um certificado digital emitido por uma Autoridade Certificadora confiável.

Quais são as melhores práticas para organizar e gerenciar tarefas agendadas?

As principais melhores práticas incluem armazenar scripts em um local seguro com permissões de acesso controladas e avaliar scripts em um ambiente de teste antes de implementá-los em produção.

FAQ

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Tyler Reese

VP de Gestão de Produto, CISSP

Com mais de duas décadas na indústria de segurança de software, Tyler Reese tem um conhecimento íntimo dos desafios de identidade e segurança que evoluem rapidamente e com os quais as empresas se deparam hoje. Atualmente, ele atua como diretor de produto para o portfólio de Netwrix Identity and Access Management, onde suas responsabilidades incluem avaliar tendências de mercado, definir a direção para a linha de produtos IAM e, em última análise, atender às necessidades dos usuários finais. Sua experiência profissional varia desde consultoria em IAM para empresas Fortune 500 até atuar como arquiteto empresarial de uma grande empresa de venda direta ao consumidor. Atualmente, ele possui a certificação CISSP.