以下循环构成Powershell脚本的一部分,该脚本循环遍历Windows Tasks Schedules,然后发送包含状态和持续时间等的电子邮件。但是,当它执行以下循环时,我会收到erorr:
New-TimeSpan : Cannot bind parameter 'Start' to the target. Exception setting "Start": "Object reference not set to an instance of an object."
这是循环:
foreach ($Task in $Tasks){
switch -Regex ($Task){
{$DailyTasks -contains $Task}{
$TaskRunTime = (Get-ScheduledTaskInfo "$Task").LastRunTime
$Difference = (New-TimeSpan -Start $TaskRunTime).TotalHours
$IntervalCheck = 12
switch -Regex ($Difference){
{($Difference -gt "$IntervalCheck")}{
$Status = "BAD"
$EmailTemp = @"
<tr>
<td class="colorm">$Task</td>
<td class="colorr">$Status</td>
</tr>
"@
}
{$Difference -lt "$IntervalCheck"}{
$Status = "OK"
$EmailTemp = @"
<tr>
<td class="colorm">$Task</td>
<td>$Status</td>
</tr>
我想念什么?
答案 0 :(得分:0)
您的任务可能从未执行过,所以$ TaskRunTime是$ null吗?在这种情况下,您需要处理一个可能为null的值。
我不确定您的$ Task是任务对象还是只是字符串...。如果只是字符串,则必须运行以获得上次运行时间:
toD