Я не могу понять, как создать новую запланированную задачу, которая запускается ежедневно и повторяется каждые 30 минут. Я собираюсь по кругу.
Все об этом ниже работает для установки задачи, которую я хочу, но только запускается один раз.
#Credentials to run task as
$username = "$env:USERDOMAIN\$env:USERNAME" #current user
$password = "notmypass"
#Location of Scripts:
$psscript = "C:\test\test.ps1"
$Sourcedir ="C:\testsource\"
$destdir = "C:\testdest\"
$archivepassword = "notmypass"
####### Create New Scheduled Task
$action = New-ScheduledTaskAction -Execute "Powershell" -Argument "-WindowStyle Hidden '"$psscript ''$sourcedir'' ''$destdir'' ''$archivepassword'''""
$trigger = New-ScheduledTaskTrigger -Once -At 7am -RepetitionDuration (New-TimeSpan -Days 1) -RepetitionInterval (New-TimeSpan -Minutes 30)
$settings = New-ScheduledTaskSettingsSet -Hidden -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -RunOnlyIfNetworkAvailable
$ST = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask EncryptSyncTEST -InputObject $ST -User $username -Password $password
Если я изменил -Once
на -Daily
я потеряю флаги -RepetitionInterval
. И если я вернусь, чтобы обновить задачу до ежедневной регистрации, она вытирает повторяющийся триггер.
Это не необычный метод планирования и легко применяется через пользовательский интерфейс планировщика задач. Я чувствую, что это, вероятно, просто, но я этого не хватает.
Любая помощь приветствуется.
EDIT: обращение к дублирующему вопросу. Вопрос в публикации " Powershell v3 New-JobTrigger ежедневно с повторением " задает то же самое. Но, как я уже отмечал ранее, ни один из ответов не решает проблему. Отмеченный ответ делает именно то, что у меня уже есть, он задает задачу с помощью триггера -Once, а затем обновляет его, чтобы повторять каждые 5 минут в течение 1 дня. После первого дня эта задача никогда не будет запущена снова. Он не решает проблему запуска задачи каждый день с повторением и продолжительностью до следующего триггера.
Остальные три ответа на эту должность также не решают вопрос. Я не знаю, почему это было отмечено, потому что это неверно. Я полностью изучил эти ответы, прежде чем я разместил этот вопрос. Когда этот пост, постаревший и отмеченный как ответ, я создал этот вопрос.
Примечание. Я нашел обходной путь, но не отличный. В настоящее время кажется, что самый простой способ определить пользовательские триггеры с помощью powershell - манипулировать XML-расписанием заданий и импортировать его напрямую, используя Register-ScheduledTask