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

Сценарий PowerShell, использующий Bits-Transfer, не работает как запланированная задача

Я пробовал использовать другие вопросы / ответы, такие как Сценарий Windows Server 2008 R2 PowerShell запускается вручную, но не по расписанию но безрезультатно.

В основном у меня есть скрипт PoSh (видимо, это популярное сокращение для него в настоящее время), который копирует множество больших файлов, один за раз, с одного сервера (UNC-путь) на локальный диск. Он делает это в цикле и использует Передача BITS. Примерно:

  1. Start-BitsTransfer источник / назначение / асинхронный / с низким приоритетом
  2. while состояние этого задания Bits все еще "подключается" или "передается", Sleep 2 секунды (т. Е. Дождаться завершения)
  3. Как только мы выйдем из этого цикла, Complete-BitsTransfer
  4. Write-Host сообщение "завершенный файл X"
  5. получить следующий файл, повторить ... (так что да, есть внешний цикл над списком файлов, полученным из Get-ChildItem)

Сценарий работает при запуске из PoSh ISE и обычной консоли PoSh.

Я пробовал использовать Sleep, Start-Sleep, и даже [Threading.Thread]::Sleep, думая, что это была проблема. Затем я завернул .ps1 в .bat и при запуске из CMD это тоже работает. Но во всех случаях задача расписания, независимо от того, вызывает ли .ps1 напрямую или обертка .bat, не удается.

Это говорит это успешно, но что действительно происходит, так это то, что запускаются все задания передачи, они переходят в состояние «Приостановлено» (показано Get-BitsTransfer в окне PoSh), и задача считает, что все в порядке, и завершается, оставляя эти осиротевшие задания BITS, которые я даже не могу Complete-BitsTransfer на b / c они тоже выдают ошибку.

Другое поведение:

Выдираю здесь волосы ... Помогите!

Согласно MS, запланированная задача должна запускаться при интерактивном входе в систему.

https://msdn.microsoft.com/en-us/library/windows/desktop/ee663885(v=vs.85).aspx