Elo Bizne
Elo Bizne

Reputation: 15

Powershell = New-ScheduledTaskTrigger Unable to pass value in variable

I would like to edit scheduled task via PS but i can't pass the variable as argument to New-ScheduledTaskTrigger. I tried with "time = "02:40 AM"" and "$time = [datetime]"02:40 AM""

 $time = "02:40 AM"

Invoke-Command -ComputerName "pc01" -ScriptBlock {$Task = Get-ScheduledTask -TaskName R

$trigger = New-ScheduledTaskTrigger -Daily -At $time
Set-ScheduledTask -Trigger $trigger -TaskName R
}

I receive following error: Cannot convert null to type "System.DateTime".

Thank you for any help.

Upvotes: 0

Views: 938

Answers (1)

Theo
Theo

Reputation: 61158

Inside the scriptblock, the variable $time is unknown, so you muste either use the using: scope like this:

$time = [datetime]"02:40 AM"
Invoke-Command -ComputerName "pc01" -ScriptBlock {
    $trigger = New-ScheduledTaskTrigger -Daily -At $using:time
    Get-ScheduledTask -TaskName 'R' | Set-ScheduledTask -Trigger $trigger
}

Or add a param() block inside the scriptblock and give the time via the -ArgumentList parameter

Invoke-Command -ComputerName "pc01" -ScriptBlock {
    param($time)
    $trigger = New-ScheduledTaskTrigger -Daily -At $time
    Get-ScheduledTask -TaskName 'R' | Set-ScheduledTask -Trigger $trigger
} -ArgumentList "02:40 AM"

Upvotes: 1

Related Questions