我正在尝试编写一个脚本,该脚本将更新现有任务的触发时间。例如,将开始时间从上午12点更改为凌晨3点。它还需要禁用/启用任务的能力,我目前可以这样做。这是我目前所拥有的。
$servers = gc .\servers.txt
$servers | ForEach-Object {
$srv = $_
$schedule = New-Object -Com ("Schedule.Service")
$schedule.Connect("$srv")
$tasks = $schedule.GetFolder("\").GetTasks(0)
$totaltasks = $tasks | where {($_.Name -match $matching1)} #-or ($_.Name -match $matching2)}
$totaltasks | ForEach-Object {
if ($status -eq "Disable") {
$_.Trigger = $triggertime #Daily At 3am
#$_.Triggers.StartBoundary = "2011-10-01T04:00:00"
#$_.Enabled = $false
Write-Host "Disabled Task "$_.Name" for server $srv" -ForegroundColor Yellow
}
if ($status -eq "Enable") {
$_.Enabled = $true
$_.Triggers.StartBoundary = "2011-10-01T04:00:00 #<--- Does not work
Write-Host "Enabled Task "$_.Name" for server $srv" -ForegroundColor Green
}
3条答案
按热度按时间nhjlsmyf1#
至于你问题的核心......
我正在尝试编写一个脚本,该脚本将更新现有任务的触发时间。
为什么不在此用例中使用内置的cmdlet呢?
Set-ScheduledTask模块:scheduledtasks修改计划任务。
示例1:修改计划任务中的触发器
avwztpqn2#
使用以下日期格式:
jw5wzhpr3#
最好的方法是重新注册您需要的现有任务...
导入xml文件并使用PowerShell 4+计划任务命令,如下所示: