Olá Pessoal,
Hoje iremos ver como criar Tarefas Agendadas usando o Powershell. Jobs agendados são trabalhos em lotes que executam como tarefas de segundo plano criados e gerenciados usando o PowerShell.
Para isso deveremos primeiro vamos criar o Trigger, ou gatinho, da tarefa iremos utilizar o comando New-JobTrigger para execução em 5 minutos após o momento da execução:
$JobTrigger = New-JobTrigger -Once -At $(Get-Date -Date ([datetime]::Now.AddMinutes(5)))
Em seguida, vamos definir as opções da tarefa para que exija execução em contexto elevado(como administrador) e que exija rede(caso o script necessite de conexão com a internet ou algum sistema remoto):
$ScheduledJobOption = New-ScheduledJobOption -RequireNetwork -RunElevated
Utilizaremos o comando Get-Credential para definir as credenciais de execução da tarefa:
$Credential = Get-Credential
Agora para registrar a tarefa utilizaremos o comando Register-ScheduledJob para registrar a tarefa, definindo um Nome e o script que será executado, lembrando apenas que para executar esse comando, voce deverá estar executando o terminal em modo elevado(como administrador):
Register-ScheduledJob -Name 'Update Help' -ScriptBlock { Update-Help } -Credential $Credential -Trigger $jobTrigger -ScheduledJobOption $ScheduledJobOption
Por fim podemos resumir com o seguinte bloco de código para criar tarefa para atualizar a Ajuda do Powershell em plano de fundo:
$JobTrigger = New-JobTrigger -Once -At $(Get-Date -Date ([datetime]::Now.AddMinutes(5)))
$ScheduledJobOption = New-ScheduledJobOption -RequireNetwork -RunEle
$Credential = Get-Credential
Register-ScheduledJob -Name 'Update Help' -ScriptBlock { Update-Help } -Credential $Credential -Trigger $jobTrigger -ScheduledJobOption $ScheduledJobOption
Se tudo estiver correto você deverá visualizar um resultado como este:
Para visualizar na console grafica abra o Task Scheduler no seguinte caminho: Task Scheduler Library > Microsoft > Windows > Powershell > ScheduledJobs
Dúvidas? Sugestões? Comente!
4 Comments
enquanto executar powershell e fica tela em frente, como ela pode minimizar? tem jeito fazer!
Na tarefa agendada, quando colocar o comando para chamar o powershell.exe, adiciona nos argumentos “-WindowStyle Hidden” ai ele abre o processo mas a janela fica escondida.
Voce pode descobrir mais opcoes da sessao executando powershell.exe /?
up
Amigo, estou tentando rodar isso em rede, temos 200 computadores no dominio, e minha ideia por GPO rodar esse Script quando logarem, assim cria uma tarefa agendada pra ser executada em hora a hora.
Porem ele pede a credencial de administrador, teria alguma forma de rodar isso sem ter que colocar as credenciais ?