PowerShell Script reduz a realização manual de tarefas repetitivas. Se você está frequentemente executando scripts em horários pré-definidos ou em intervalos de tempo especificados, você pode estar cansado de executar scripts repetidamente. Então, você pode utilizar o Task Scheduler do Windows para automatizar a execução de scripts para você. Isto irá poupar o seu tempo e esforço na execução diária/semanal de scripts. Vamos ver como agendar o script PowerShell através do Task Scheduler.
Pode ser feito de duas maneiras.
1.Agendar script PowerShell usando o GUI do Agendador de Tarefas
2.Agendar PowerShell Scheduler a partir do Task Scheduler usando PowerShell
- Método 1: Agendar PowerShell Script usando Task Scheduler
- Automate PowerShell Scheduler from Task Scheduler com parâmetros
- Método 2: Agendar PowerShell Script a partir do Agendador de Tarefas Usando PowerShell
- Definir tempo para agendador:
- Ajustar ações a serem executadas durante a execução:
- Save Scheduler:
- Use Cases:
Método 1: Agendar PowerShell Script usando Task Scheduler
Abrir Task Scheduler (pode ser encontrado nas ferramentas â??COPY9â?™ ou pressionando â??COPY8+Râ?™ para abrir a execução e depois digitando â??taskschd.mscâ?.)
Para executar um script do Agendador de Tarefas, siga estes passos.
1.Abrir Agendador de Tarefas -> Biblioteca do Agendador de Tarefas -> Criar Tarefa
2.Na guia Geral, você pode definir o nome do agendador e a descrição sobre a tarefa como para qual propósito a tarefa foi criada.
Opções de segurança disponíveis explicadas abaixo.
- Especificar o usuário em cujo nome a tarefa será executada.
- Pode especificar que uma tarefa deve ser executada . Isso pode ser feito selecionando um botão de rádio rotulado “˜Run” se o usuário está logado em não “˜Run”. Se este botão de rádio selecionado, a tarefa não será executada interativamente. Para fazer uma tarefa ser executada interativamente, selecionar o botão de rádio “™Run” somente quando o usuário estiver logado em ˜Do.
- Quando o botão de rádio “˜Run se o usuário estiver logado ou não em ™Run” estiver selecionado, o usuário pode solicitar que sejam fornecidas as credenciais da conta, independentemente de ter selecionado a caixa de seleção “™ não armazenar senha” em ˜Run ou não. Se a conta não estiver logada durante a execução da tarefa, as credenciais salvas serão usadas.
- Se a tarefa exigir privilégios elevados, então selecione a opção â??COPY1 com os privilégios mais altosâ?. â??COPY19
3.Mude para a guia Trigger e clique no botão New. Aqui, você pode definir condições que acionam uma tarefa.
- Você pode especificar quando iniciar a tarefa. Por exemplo, você pode executá-la em um horário, na inicialização, no logon ou sempre que um determinado evento ocorrer, selecionando â??COPY15 a tarefaâ?™ menu suspenso.
>
>>
- Você pode configurar se deseja executar essa tarefa uma vez ou diariamente ou semanalmente ou mensalmente de acordo com o seu cenário.
- Nas “Configurações Avançadas”, você pode escolher atrasar a tarefa, repetir a tarefa, parar a tarefa se ela for executada por mais tempo do que o período de tempo especificado e data de expiração.
- Atraso da tarefa até “Isto adiciona um atraso aleatório, de modo que a tarefa venceu “COPY5 stat” na hora exata do dia.
- Repetição da tarefa a cada “Isto mostra o número de vezes que uma tarefa deve ser executada após o disparo de um gatilho.
- Repetir tarefa a cada intervalo de tempo entre cada repetição de tarefa
- Para uma duração de… Quanto tempo uma tarefa deve continuar a repetir
- >Parar tarefa se ela for mais longa do que… Se a tarefa for mais longa do que o tempo esperado ou nunca desistir, a tarefa irá parar automaticamente se ela atingir o limite de tempo mencionado.
- Expirar â?” Após o período de tempo especificado, o cronograma será acionado.
>
4.Depois abra a próxima aba â??COPY9™â? e clique no botão â??COPY14™â?.
>
- No menu suspenso Ação, â??Iniciar um programaâ? é definido por padrão. Você pode alterá-lo se necessário.
- Using Browse, selecione o campo programa/script. Para agendar um script, precisamos selecionar powershell.exe.
Você pode encontrar powershell.exe no seu sistema32\PindowsPowerShell\v1.0 pasta.
- Em “argumentos˜Add”, -O parâmetro de arquivo é o padrão, então simplesmente especifique o caminho do script. Por exemplo, eu vou agendar um script que exporta o relatório de status do MFA dos usuários do Office 365.
PowerShell
1
|
>
c:\GetMFAStatus.ps1
|
Se o caminho contém algum espaço em branco, deve ser fechado com aspas.
5.Uma vez configurado, você pode especificar condições para determinar se a tarefa deve ser executada. A tarefa não será executada se qualquer condição aqui especificada não for verdadeira.
6.Na aba Configurações, você pode definir configurações avançadas adicionais para controlar a execução da tarefa.
Finalmente, clique em Ok para criar um script agendado.
Scheched script será executado como esperado de acordo com sua agenda sem nenhum problema. Se você quiser verificar a execução do script, você pode clicar em Executar clicando com o botão direito do mouse no nome da tarefa.
Automate PowerShell Scheduler from Task Scheduler com parâmetros
Se você quiser agendar o script PowerShell com parâmetros, use o formato abaixo.
PowerShell
1
|
Script path -Parâmetro 1 Valor1 -Param2 “Valor 2” -1123
|
Por exemplo, Eu vou automatizar um dos nossos guiões PowerShell: Export Office 365 Users MFA status report
Durante a programação, você pode passar explicitamente a credencial como parâmetros como mostrado abaixo:
PowerShell
1
|
>
C:\GetMFAStatus.ps1 -UserName “XXX XX” -Senha ****
|
Se o valor do parâmetro tiver espaço em branco, os valores devem ser colocados entre aspas.
Se você quiser passar um parâmetro de comutação, você pode usar a sintaxe abaixo.
PowerShell
1
|
 C:\GetMFAStatus.ps1 -EnabledOnly
|
Acima de script exporta o status de AMF de usuários do Office 365 cujo status de AMF está habilitado. Aqui -EnabledOnly é um parâmetro de switch.
Para mais scripts PowerShell relacionados com o Office 365, pode consultar o blog O365Reports.com.
Método 2: Agendar PowerShell Script a partir do Agendador de Tarefas Usando PowerShell
Em vez de GUI, pode usar o PowerShell cmdlets para criar uma tarefa de agendamento que automatize o script PowerShell. Envolve os seguintes passos,
1.Definir tempo para agendador
2.Definir ações a serem executadas durante a execução
3.Salvar agendador
Definir tempo para agendador:
New-SchdeuledTaskTrigger cria um objeto de acionamento de tarefa agendada. Usando este cmdlet, você pode especificar a hora de início de uma tarefa ou iniciar uma tarefa várias vezes, diariamente ou semanalmente.
PowerShell
1
|
$Time=Novo-ScheduledTaskTrigger -Em 4.00PM -Once
|
Acima de cmd cria um gatilho de tarefa agendada que começa às 16PM e é executado uma vez.
PowerShell
1
|
   $Time=Novo-ScheduledTaskTrigger -Em 4.00PM -Daily -DaysInterval 2
|
Acima de cmd cria um gatilho de tarefas agendadas que começa a cada 2 dias às 4PM
Ajustar ações a serem executadas durante a execução:
New-SchdeuledTaskAction representam ações executadas quando o Agendador de Tarefas executa a tarefa. Uma tarefa pode ter uma única ação ou um máximo de 32 ações. Quando você especifica múltiplas ações, o Agendador de tarefas executa uma tarefa sequencialmente.   Â
Este comando abre um PowerShell e muda o diretório para C:/Scripts e então invoca o script MFAStatus.ps1.
Save Scheduler:
Register-ScheduledTask salva a tarefa agendada em um computador local.
PowerShell
1
|
> Register-ScheduledTask -TaskName “Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest
|
O cmd acima salva uma tarefa agendada com um nome “Schedule MFA Status Repor” na pasta raiz. A tarefa salva usa a ação pré-criada e os valores de acionamento que são especificados pelas variáveis $Action e $Time.
Use Cases:
Usando o Agendador de Tarefas, você pode agendar um script PowerShell para ser executado periodicamente. Para que você não precise executar manualmente um script em base diária/semanal/mensal. Há mais scripts disponíveis na internet que são amigáveis ao agendador (Credenciais podem ser passadas como parâmetro ao invés de salvar dentro do script). Eu dei alguns exemplos aqui.
- Histórico de login dos usuários do Office 365 – Mantenha o log de auditoria por mais de 90 dias
- Relatório periódico do status do MFA dos usuários do Office 365
- Relatório do último logon dos usuários do Office 365
- Relatório de permissão da caixa postal do Office 365
- Relatório de licença dos usuários do Office 365
- Escalonar Participação em Grupo de Distribuição PowerShell script
- Schedule Dynamic Distribution Group Membership PowerShell script
- Relatório periódico sobre o último relatório de atividades dos usuários do Office 365
- Histórico de login dos usuários do Office 365 PowerShell relatório
- Relatório periódico de permissões de caixas de correio compartilhadas
- Schedule nonrelatório de acesso à caixa de correio do proprietário
- Office 365 relatório de expiração da senha dos usuários
>
Neste blog, vimos como automatizar um script PowerShell usando o Task Scheduler.Qual é a sua abordagem preferida quando se trata de agendamento – GUI ou PowerShell? Deixe-nos saber na seção de comentários.