Учетные записи службы и BITS

С помощью BITS можно передавать файлы из службы. Служба должна использовать учетную запись системы LocalSystem, LocalService или NetworkService. Эти учетные записи всегда вошли в систему; поэтому задания, отправленные службой с помощью этих учетных записей, всегда выполняются.

Если служба, запущенная под системной учетной записью, олицетворяет пользователя перед вызовом BITS, BITS отвечает так же, как и для любой учетной записи пользователя (например, пользователю необходимо войти на компьютер для передачи). Служба также должна использовать динамическую маскировку с указателями интерфейса BITS при олицетворении пользователя. Cloaking не наследуется, поэтому необходимо вызвать функцию CoSetProxyBlanket для каждого указателя интерфейса, полученного из BITS (например, указатель задания, возвращенный методом IBackgroundCopyManager::CreateJob), недостаточно, чтобы задать маскировку на указателе интерфейса диспетчера. Вы также можете вызвать функцию CoInitializeSecurity для процесса вместо вызова функции CoSetProxyBlanket на каждом указателе интерфейса.

Однако если служба не олицетворяет пользователя, применяются следующие действия:

  • Задания, созданные учетной записью службы, принадлежат этой учетной записи. Так как системные учетные записи всегда вошли в систему, BITS передает файлы до тех пор, пока компьютер запущен и есть сетевое подключение.
  • Системные учетные записи не должны использовать сопоставленные буквы сетевого диска, так как буквы дисков относятся к сеансу, а сопоставление может быть потеряно после перезагрузки компьютера.
  • При отсутствии вспомогательного маркера проверка подлинности сети использует учетные данные компьютера для учетных записей LocalSystem и NetworkService и анонимных учетных данных для учетной записи LocalService. BITS возвращает значение "отказано в доступе", если список управления доступом (ACL) для исходного файла ограничивает доступ к учетной записи пользователя.
  • Дополнительные сведения о том, как работает проверка подлинности в присутствии вспомогательного маркера, см. в разделе "Проверка подлинности".
  • Параметры прокси-сервера Microsoft Internet Обозреватель хранятся на пользователя и не задаются для системных учетных записей. Попробуйте настроить вспомогательный маркер в заданиях BITS или явно задать правильные параметры прокси-сервера, вызвав IBackgroundCopyJob::SetProxy Параметры с BG_JOB_PROXY_USAGE_OVERRIDE. Кроме того, можно использовать переключатели /Util /SetIEProxy bits Администратор.exe чтобы задать параметры прокси-сервера в Интернете Обозреватель для учетной записи системы LocalSystem, LocalService или NetworkService. Дополнительные сведения см. в разделе Bits Администратор Tool.

Обратите внимание, что BITS не распознает параметры прокси-сервера, заданные с помощью файла Proxycfg.exe.