Назад | Перейти на главную страницу

Запланированная задача сценария Powershell не завершится

Я хочу использовать этот Скрипт Powershell для автоматизации некоторых резервных копий на машинах Win7. При запуске вручную с терминала Powershell сценарий запускается, как указано, и завершается через несколько секунд (это небольшая резервная копия).

Проблема в том, что я пытаюсь автоматизировать процесс с помощью планировщика заданий. Когда приходит время (или когда я запускаю задачу вручную) скрипт запускается и выполняет резервное копирование правильно. Но он не возвращается в «Готово», хотя я знаю, что он закончился. Мне каждый раз приходится останавливать задачу вручную.

Я не стал ждать, чтобы увидеть, что произойдет, когда придет время для повторного запуска задачи, но я думаю, что она не запустится во второй раз, потому что она не «Готова».

Что я могу с этим поделать?

ОБНОВЛЕНИЕ 1:

Я выбрал действие «Запустить программу». В поле «Программа / сценарий» у меня есть «powershell.exe», а в качестве аргумента - путь к файлу сценария «* .ps1».

ОБНОВЛЕНИЕ 1:

Я заметил, что хотя задача не возвращается в состояние «Готово», если я запускаю ее вручную, она запускается снова.

Последние 2 строки BackupScript.ps1:

Write-Host "Press any key to close ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

Закомментируйте их (или удалите), и запланированные задания должны завершиться и выйти без ошибок. Если вам действительно нужна пауза в конце, замените последнюю строку на что-то вроде этот чтобы обернуть вокруг него тайм-аут (каждый сон составляет 1 секунду):

$counter = 0
while(!$Host.UI.RawUI.KeyAvailable -and ($counter++ -lt 600))
{
      [Threading.Thread]::Sleep( 1000 )
}