Como é que executo um programa PowerShell automaticamente usando o escalonador de tarefas do Windows?
actualmente criei uma tarefa e forneci o caminho do meu guião. Mas esse programador Abre o meu guião, em vez de executar.
9 answers
Crie a tarefa agendada e defina a acção para:
Programa/Programa: Powershell.exe
-File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"
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
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.
No meu caso, o meu guião tem parâmetros, por isso, defini:
Argumentos: -Command "& C:\scripts\myscript.ps1 myParam1 myParam2"
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 "".
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
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"
-
Abra o escalonador de Tarefas criado
-
Mude para a página "acção" e seleccione a sua "acção" criada
-
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
-
De seguida, no parâmetro' adicionar argumentos ' - ficheiro, cole a localização do seu ficheiro de programa no seu sistema.
Example – c:\GetMFAStatus.ps1
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/