【发布时间】:2015-05-14 15:34:12
【问题描述】:
(像Set-ScheduledTask 这样的命令仅适用于内置“ScheduledTasks”模块的Powershell v4.0)
我正在运行以下代码,但收到错误消息。有人可以帮我理解问题出在哪里。
SetScheduledTask : Cannot process argument transformation on parameter 'TriggerTime'. Cannot convert the "System.Object[]" value
of type "System.Object[]" to type "System.DateTime".
At C:\Users\skadithi\Desktop\Script.ps1:33 char:17
+ SetScheduledTask([datetime]$startFriday10PM,"QLAT_WinPatching_Friday_10PM")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [SetScheduledTask], ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,SetScheduledTask
接收用户输入并为之后的工作日初始化日期的代码
$startDate=Read-Host "Enter the StartDate in MM/DD/YYYY format"
$startDate=[datetime]$startDate
$startFriday=$startDate.AddDays(1)
$startFriday10PM=$startFriday.AddHours(22)
要更新的代码
Function UpdateScheduledTask
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[datetime]$TriggerTime,
[Parameter(Mandatory=$True)]
[string]$ScheduleName
)
if($TriggerTime -is [DateTime])
{
Write-Host "Running on $TriggerTime" -ForegroundColor Green
}
else
{
Write-Host "Event date must be a DateTime object" -ForegroundColor Yellow
}
$Time = New-ScheduledTaskTrigger -At $TriggerTime -Once
Set-ScheduledTask -TaskName $ScheduleName -Trigger $Time
}
调用函数
UpdateScheduledTask($startFriday10PM,"QLAT_WinPatching_Friday_10PM")
【问题讨论】:
-
在错误信息之后,显示为标题的文本是来自powershell脚本的cmets。从第一个标题开始的所有文本都是实际代码。
-
函数调用格式不正确。应该只是
UpdateScheduledTask $startFriday10PM "QLAT_WinPatching_Friday_10PM" -
此外,由于您指定了
$TriggerTime的数据类型,因此无需检查它的类型。否则该函数将失败。 -
嗨,马特,正如您指出的那样,我所做的函数调用是错误的。我使用 stackoverflow.com/questions/4988226/… 进行了更正
标签: powershell