Powershell:具有每日触发和重复间隔的计划任务

标签 powershell powershell-3.0

我似乎无法弄清楚如何创建一个每天触发并每 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标志。如果我在注册后回来将任务更新为每天,它会删除​​重复触发器。

这不是一种不常见的调度方法,并且可以通过任务调度程序 UI 轻松应用。我觉得它可能很简单,但我想念它。

任何帮助表示赞赏。

编辑:解决重复的问题。帖子“Powershell v3 New-JobTrigger daily with repetition”中的问题是相同的。但正如我之前评论的那样,没有一个答案可以解决问题。标记的答案正是我在这里已经拥有的,它使用 -Once 触发器设置了一个任务,然后将其更新为每 5 分钟重复一次,持续 1 天。在第一天之后,该任务将不再被触发。它没有解决每天重复和持续时间触发任务的问题,直到下一次触发。

该帖子的其他三个答案也没有解决这个问题。我不知道为什么它被标记为已回答,因为它不正确。在发布这个问题之前,我已经充分研究了这些回复。由于该帖子已老化并被标记为已回答,因此我创建了这个问题。

备注 : 我找到了一种解决方法,但不是很好。目前,使用 powershell 定义自定义触发器的最简单方法似乎是操作计划任务 XML 并使用 Register-ScheduledTask 直接导入它。

最佳答案

虽然计划任务触发器的 PowerShell 界面是有限的,但事实证明,如果您设置 RepetitionDuration[System.TimeSpan]::MaxValue ,它会导致“无限期”的持续时间。

$trigger = New-ScheduledTaskTrigger `
    -Once `
    -At (Get-Date) `
    -RepetitionInterval (New-TimeSpan -Minutes 5) `
    -RepetitionDuration ([System.TimeSpan]::MaxValue)

在 Windows Server 2012 R2 (PowerShell 4.0) 上测试

关于Powershell:具有每日触发和重复间隔的计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108886/

相关文章:

powershell - 如何获取共享文件夹中的剩余存储空间量

powershell - 如何在 Powershell 中设置低 I/O ("background") 优先级

Powershell 3 : Remove last line of text file

sharepoint - 使用 PowerShell 从 SharePoint Online 下载文件

windows - 使用PowerShell,如何将最小化的应用程序切换到正常状态?

powershell - for循环中的多个选择字符串以分隔文件

windows - 在 PowerShell 中,如何从所有 SID 的 HKEY_Users 中提取文件?

c# - 如何从 C# 执行 PowerShell 命令 `open-device`?

powershell - 使用 VBscript 隐藏 Powershell 窗口 : whitespace in the -file filepath

Powershell:字符串变量不是有效的十六进制字符串错误