Ответ 1
Создайте запланированную задачу и установите для действия следующее:
Программа/Script: Powershell.exe
Аргументы: -File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"
У меня есть один PowerShell script, который отправляет электронные письма. Я хочу выполнить это script автоматически, каждые 1 минуту. Как я могу это сделать, используя планировщик задач?
В настоящее время я создал задачу и предоставил путь к моему script. Но этот планировщик открывает мой script вместо выполнения.
Создайте запланированную задачу и установите для действия следующее:
Программа/Script: Powershell.exe
Аргументы: -File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"
Вот пример использования PowerShell 3.0 или 4.0 для -RepeatIndefinitely
и вверх:
# 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
Вместо того, чтобы использовать только путь к вашему script в планировщике задач, вы должны запустить Powershell с помощью script в планировщике задач, например.
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1"
См. powershell /?
для объяснения этих переключателей.
Если у вас все еще возникают проблемы, вы должны прочитать этот вопрос
В моем случае у моего script есть параметры, поэтому я устанавливаю:
Аргументы: -Command "& c:\scripts\myscript.ps1 myParam1 myParam2"
После нескольких часов тестов и исследований через Интернет я наконец нашел, как запустить PS script с планировщиком задач, благодаря следующему видео: https://www.youtube.com/watch?v=oJ4nktysxnE
Программа/Script → введите полный путь через powershell.exe
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Добавить аргументы → Полный путь к script и script, без каких-либо ""
Запустить (необязательно) → Каталог, в котором находится ваш script, без каких-либо ""