Для работы Try / Catch PowerShell требуется завершающее исключение. При запуске командлета в блоке Try это можно сделать с помощью -erroraction Stop (или псевдонима -ea). Как вы уже поняли, SCHTASKS.EXE не может этого сделать. Без завершающего исключения код в блоке Catch никогда не запустится.
Что вам нужно сделать, так это выйти из коробки, так сказать, и самостоятельно проверить, не удалось ли Schtasks. Если да, то вы можете использовать Write-Error в вашем блоке Try.
Одна вещь, которую вы можете попробовать, это использовать Start-Process и посмотреть код выхода. Все, кроме 0, должно быть ошибкой.
Try {
get-date
$p=Start-Process schtasks.exe -ArgumentList "/Create foo" -wait -passthru
if ($p.exitcode -ne 0) {
write-error "I failed with error $($p.exitcode)"
}
}
Catch {
"oops"
$_.Exception
}