Скрипт PowerShell с использованием Bits-Transfer не работает как запланированная задача
Я пытался использовать другие вопросы и ответы, такие как сценарий PowerShell для Windows Server 2008 R2, запускаемый вручную, но не как запланированная задача, но безрезультатно.
По сути, у меня есть скрипт PoSh (по-видимому, сейчас это горячая аббревиатура), который копирует множество больших файлов, по одному, с одного сервера (путь UNC) на локальный диск. Он делает это в цикле и использует биты передачи. Грубо говоря:
Start-BitsTransfer
источник / назначение / асинхронный / низкий приоритетwhile
что состояние битов задания все еще "соединяется" или "переносится",Sleep
2 секунды (т. Е. Дождаться окончания)- Как только мы выйдем из этого цикла,
Complete-BitsTransfer
Write-Host
msgstr "завершенный файл X"- получить следующий файл, повторить... (так что да, есть внешний цикл над списком файлов, полученным из
Get-ChildItem
)
Скрипт работает при запуске из PoSh ISE и обычной консоли PoSh.
Я пытался использовать Sleep
, Start-Sleep
, и даже [Threading.Thread]::Sleep
думая, что это была проблема. Затем я завернул .ps1
в .bat
и при запуске из CMD это тоже работает. Но во всех случаях Задача расписания, будь то вызов .ps1
прямо или обертка .bat
Сбой.
Он говорит, что это успешно, но на самом деле происходит запуск всех заданий на перенос, они переходят в состояние "приостановлено" (показано Get-BitsTransfer
в окне PoSh), и задача думает, что все в порядке и заканчивается, оставляя эти осиротевшие задания BITS, которые я даже не могу Complete-BitsTransfer
на б / к тоже выкидывают ошибку от этого.
Другие виды поведения:
- Вышесказанное - это то, что происходит, когда я запускаю его как свою учетную запись администратора домена и позволяю ему сохранить pwd с заданием.
- Если я изменю его на учетную запись службы (которая является администратором на коробке), он фактически никогда не запускает задания BITS вообще. Он также выдает ошибку "пользователь должен иметь права" войти в систему как пакетное задание "".
- Если я попытаюсь запустить его как локальную / встроенную учетную запись, он также не сможет запустить задания BITS.
Вырвать мои волосы здесь... помогите!
1 ответ
Согласно MS, запланированное задание должно выполняться под интерактивным входом в систему.
https://msdn.microsoft.com/en-us/library/windows/desktop/ee663885(v=vs.85).aspx