Я хочу использовать этот сценарий Powershell для автоматизации некоторых резервных копий на машинах Win7. Когда выполнено вручную от терминала Powershell сценарий работает, как рекламируется и концы после нескольких секунд (это - маленькое резервное копирование).
Проблема состоит в том, когда я пытаюсь автоматизировать процесс с Планировщиком задач. Когда время настает (или когда я выполняю задачу вручную), сценарий выполняет и выполняет резервное копирование правильно. Но это не возвращается к "Готовому", даже при том, что я знаю, что это закончилось. Я должен остановить задачу вручную каждый раз.
Теперь, я не ожидал для наблюдения то, что происходит, когда время настает для задачи работать снова, но я думаю, что она не запустится во второй раз, потому что это не "Готово".
Что я могу сделать об этом?
ОБНОВЛЕНИЕ 1:
Действие, которое я выбрал, "Запускают программу". В поле "Program/script" у меня есть "powershell.exe" и как аргумент, у меня есть путь к файлу сценария "*.ps1".
ОБНОВЛЕНИЕ 1:
Я заметил, что, хотя задача не возвращается к "Готовому", если я вручную запускаю ее, она работает снова.
Последние 2 строки BackupScript.ps1:
Write-Host "Press any key to close ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Закомментируйте их (или удалите), и запланированные задания должны завершиться и выйти без ошибок. Если вам действительно нужна пауза в конце, замените последнюю строку чем-то вроде this , чтобы обернуть вокруг нее тайм-аут (каждый спящий режим составляет 1 секунду):
$counter = 0
while(!$Host.UI.RawUI.KeyAvailable -and ($counter++ -lt 600))
{
[Threading.Thread]::Sleep( 1000 )
}