Como é que executo um programa PowerShell automaticamente usando o escalonador de tarefas do Windows?

Tenho um script que envia e-mails. Quero executar esse script automaticamente, a cada 1 minuto. Como posso fazê-lo, usando o escalonador de Tarefas?

actualmente criei uma tarefa e forneci o caminho do meu guião. Mas esse programador Abre o meu guião, em vez de executar.

Author: Peter Mortensen, 2014-05-30

9 answers

Crie a tarefa agendada e defina a acção para:

Programa/Programa: Powershell.exe

Argumentos: -File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"
 107
Author: Kevin_, 2019-08-09 11:15:52

Aqui está um exemplo usando PowerShell 3.0 ou 4.0 para -RepeatIndefinitely e para cima:

# Trigger
$middayTrigger = New-JobTrigger -Daily -At "12:40 AM"
$midNightTrigger = New-JobTrigger -Daily -At "12:00 PM"
$atStartupeveryFiveMinutesTrigger = New-JobTrigger -once -At $(get-date) -RepetitionInterval $([timespan]::FromMinutes("1")) -RepeatIndefinitely

# Options
$option1 = New-ScheduledJobOption –StartIfIdle

$scriptPath1 = 'C:\Path and file name 1.PS1'
$scriptPath2 = "C:\Path and file name 2.PS1"

Register-ScheduledJob -Name ResetProdCache -FilePath $scriptPath1 -Trigger  $middayTrigger,$midNightTrigger -ScheduledJobOption $option1
Register-ScheduledJob -Name TestProdPing -FilePath $scriptPath2 -Trigger $atStartupeveryFiveMinutesTrigger
 14
Author: JPBlanc, 2018-11-11 05:32:18

Em Vez de usar apenas o caminho para o script no agendador de tarefas, você deve iniciar o PowerShell com o seu script no agendador de tarefas, por exemplo,

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1"

Ver powershell /? para uma explicação desses interruptores.

Se ainda tiver problemas deve ler esta pergunta.

 8
Author: Ocaso Protal, 2018-11-11 05:41:59

No meu caso, o meu guião tem parâmetros, por isso, defini:

Argumentos: -Command "& C:\scripts\myscript.ps1 myParam1 myParam2"

 7
Author: Carlos Coelho, 2018-11-11 05:45:09
Depois de várias horas de testes e pesquisas na Internet, finalmente descobri como começar o meu script PowerShell com o programador de Tarefas, graças ao vídeo agendar um programa PowerShell usando o escalonamento de Tarefas do Windows por Jack Fruh @sharepointjack.

Programa / script -> colocar o caminho completo através de powershell.exe

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Adicionar argumentos -> caminho completo para o script, e o script, sem qualquer"".

Iniciar em (Opcional) - > a pasta onde o seu script reside, sem qualquer "".

 4
Author: Mickael, 2018-11-11 05:44:07

Pode usar o cmdlet Desbloqueado para desbloquear a execução deste programa específico. Isso impede que você faça quaisquer mudanças de política permanentes que você pode não querer devido a preocupações de segurança.

Unblock-File path_to_your_script

Fonte: Desbloquear O Ficheiro

 4
Author: AlexeyGy, 2018-11-11 05:46:23
Nenhuma das soluções postadas funcionou comigo. Conjunto de trabalho, que funcionou:

Criar um {[[0] } e colocar dentro powershell.exe -file "C:\...\script.ps1"

Em seguida, definir a acção para o programa/Programa: "C:\...\run.bat"

 0
Author: bucky, 2020-02-14 15:00:44
  1. Abra o escalonador de Tarefas criado

  2. Mude para a página "acção" e seleccione a sua "acção" criada

  3. Na secção Editar, se usar o navegador, poderá seleccionar o powershell.exe na sua pasta system32\WindowsPowerShell\v1.0.

       Example -C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    
  4. De seguida, no parâmetro' adicionar argumentos ' - ficheiro, cole a localização do seu ficheiro de programa no seu sistema.

        Example – c:\GetMFAStatus.ps1
    
Este blog pode ajudá-lo a automatizar os seus programas Powershell com escalonamento de tarefas do windows
 -1
Author: sofiamber, 2020-08-05 15:09:31

Eu também não podia lançar scripts, depois de uma pesquisa pesada nada ajudou. No-ExecutionPolicy, no commands, no files and no difference between "" and ".

Eu simplesmente coloquei o comando que executei em powershell na página de argumentos: {[[0]} e assim por diante. Agora o escalonador funciona. Programa: Powershell.exe Iniciar em: C:/location/of/script/

 -2
Author: Eduards Jesikens, 2020-10-19 09:40:41