Ссылка на объект Powershell не установлена ​​для экземпляра объекта - PullRequest
0 голосов
/ 27 февраля 2019

Приведенный ниже цикл является частью скрипта Powershell, который перебирает расписания задач Windows, а затем отправляет электронное письмо со статуей, продолжительностью и т. Д. Однако, когда он выполняет приведенный ниже цикл, я получаю 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>

Чего мне не хватает?

1 Ответ

0 голосов
/ 27 февраля 2019

возможно ваша задача никогда ранее не выполнялась, поэтому $ TaskRunTime равно $ null?В этом случае вам нужно обработать возможное нулевое значение.

Я не уверен, является ли ваша $ Task объектом задачи или просто строкой ... если это просто строка, к которой вам нужно будет обратитьсяполучить время последнего запуска:

$TaskRunTime = (Get-ScheduledTask $Task | Get-ScheduledTaskInfo).LastRunTime
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...