【问题标题】:Error Creating Scheduled Task [duplicate]创建计划任务时出错[重复]
【发布时间】:2018-12-01 03:14:53
【问题描述】:

我正在尝试使用 PowerShell 5 创建计划任务。但在尝试将 DeleteExpiredTaskAfter 添加到 ScheduledTaskSettingsSet 时遇到错误

-DeleteExpiredTaskAfter (New-TimeSpan -Seconds 120)

下面的 PowerShell 脚本:

$taskname = "Test01"
$taskdescription = "Testing"
$taskpath = "\Test"

$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-NoProfile -WindowStyle Hidden -command "& D:\Test.ps1 -SqlServer Sql1 -Database UAT -Date 2018-03-01 -Start 07:00:00"'

$trigger =  New-ScheduledTaskTrigger -Once -At (Get-Date -Month 06 -Year 2018 -Day 21 -Hour 9 -Minute 40 -Second 00)

$setting = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Day 3) -Hidden -StartWhenAvailable -DeleteExpiredTaskAfter (New-TimeSpan -Seconds 120) -RunOnlyIfNetworkAvailable

$principal = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType S4U

function ScheduledTask-Exists($taskname) {
    $schedule = New-Object -Com Schedule.Service
    $schedule.connect()
    $taskFolder = $schedule.GetFolder($taskpath)
    $taskExists = $taskFolder.GetTask($taskname) |
                  Select-Object Name |
                  Where-Object { $_.Name -eq $taskName }
    if (-not $taskExists) {
        return $false
    }
    return $true
}

if ((ScheduledTask-Exists($taskname))) {
    Write-Output "$taskname already exists"  
} else {
    Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath $taskpath -TaskName $taskname -Description $taskdescription -Settings $setting -Principal $principal -Force 
    Write-Output "Creating Scheduled Task - $taskName"
}

我得到的错误:

Register-ScheduledTask :任务 XML 缺少必需的元素或 属性。 (49,4):结束边界: 在 E:\ARUN\TestScript\AutomateScheduledTask.ps1:33 char:4 + Register-ScheduledTask -Action $action -Trigger $trigger -TaskPath ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-ScheduledTask], CimException +fullyQualifiedErrorId:HRESULT 0x80041319,Register-ScheduledTask

我尝试将-Compatibility V1 添加到New-ScheduledTaskSettingsSet,但没有成功。

【问题讨论】:

    标签: powershell scheduled-tasks powershell-5.0 taskscheduler


    【解决方案1】:
    if((ScheduledTask-Exists($taskname))){
       Write-Output "$taskname already exists"  
    }
    else{
       $run = (Get-Date).AddMinutes(2)
       Register-ScheduledTask -TaskPath $taskpath -TaskName $taskname -InputObject (
      (
        New-ScheduledTask -Action $action -Trigger $trigger -Settings $setting
      ) | %{ $_.Triggers[0].EndBoundary = $run.AddMinutes(30).ToString('s') ; $_} 
    )
    Write-Output "Creating Scheduled Task - $taskName"
    }
    

    从链接 stackoverflow answer(2) 获取此脚本并对其进行修改,作为解决方法

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 2014-03-23
      • 2011-11-15
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      相关资源
      最近更新 更多