Задания выполняются в другой области, поэтому переменные из блока скриптов недоступны. Вы можете использовать модификаторы области или передавать переменные в качестве параметров.
Здесь блок сценария задания определяется отдельно, а не в соответствии с начальным заданием - это помогает с удобочитаемостью:
$RobocopyScriptBlock= {
param($src,$dest)
#your code
}
Затем запустите его:
Start-Job -ScriptBlock $RobocopyScriptBlock -ArgumentList $source_folder,$destination -Name 'jobname'
Вы не сделалине публиковать часть, когда вы проверяете свои работы после их запуска. Если вы этого не сделаете, задания не будут возвращать результаты и ошибки сами по себе, и вы даже не увидите, что не так. Подробнее о командлетах Receive-Job
, Get-Job
и Remove-Job
.