Вопрос:

PowerShell - передача файлов с использованием протокола BITS в качестве запланированной задачи - не работает при выходе из системы

powershell scheduled-tasks bits

339 просмотра

1 ответ

53 Репутация автора

Я написал сценарий PowerShell, который использует протокол передачи BITS для передачи больших файлов с исходного компьютера на конечный . Когда я запускаю сценарий PowerShell, вручную входя в мой целевой компьютер (где файлы должны быть скопированы), тогда файлы копируются без каких-либо проблем.

Но когда я создал запланированное задание, которое ежедневно запускает сценарий PowerShell в определенное время, возникает следующая ошибка

«Запрашиваемая операция не была выполнена, поскольку пользователь не вошел в сеть. Указанная служба не существует. (Исключение из HRESULT: 0x800704DD)»

Сценарий работает только тогда, когда я захожу на мой целевой компьютер, на который копируется файл. Если я вообще выйду из этой машины во время запланированного задания, то получаю ошибку . Пожалуйста, предложите, что нужно сделать, чтобы запустить запланированное задание, даже если я выйду из системы с этого компьютера.

Спасибо и С уважением

AKSrinivas (Камал)

Автор: Kamal Источник Размещён: 12.01.2018 05:26

Ответы (1)


2 плюса

736 Репутация автора

Согласно документации о BITS, найденной на https://msdn.microsoft.com/en-us/library/windows/desktop/aa362708(v=vs.85).aspx (и конкретной документации Powershell, найденной на https: // msdn.microsoft.com/en-us/library/windows/desktop/ee663885(v=vs.85).aspx ) пользователь, создавший задания, должен войти в систему.

Powershell Doc: Важно. Когда вы используете командлеты * -BitsTransfer из процесса, который выполняется в неинтерактивном контексте, например в службе Windows, вы не сможете добавлять файлы в задания BITS, что может привести к приостановленному состоянию. Чтобы продолжить выполнение задания, необходимо войти в систему с идентификатором, который использовался для создания задания передачи. Например, при создании задания BITS в сценарии PowerShell, который был выполнен как задание планировщика заданий, передача BITS никогда не завершится, если не включен параметр задания «Запущено только при входе пользователя» в планировщике заданий.

Общая документация: BITS продолжает передавать файлы после выхода из приложения, если пользователь, который инициировал передачу, остается в системе и поддерживается сетевое соединение. БИТЫ не будут вызывать соединение. BITS приостанавливает передачу, если соединение потеряно или пользователь выходит из системы. BITS сохраняет информацию о передаче, пока пользователь выходит из системы, при отключении от сети и во время перезагрузки компьютера.

Одним словом: то, что вы хотите, не возможно.

(это одна из причин, по которой вы всегда должны читать документацию при возникновении подобных проблем)

Автор: bluuf Размещён: 12.01.2018 10:02
Вопросы из категории :
32x32