Contas de serviço e BITS

Você pode usar o BITS para transferir arquivos de um serviço. O serviço deve usar a conta de sistema LocalSystem, LocalService ou NetworkService. Essas contas estão sempre conectadas; portanto, os trabalhos enviados por um serviço usando essas contas sempre são executados.

Se um serviço em execução em uma conta do sistema representar o usuário antes de chamar o BITS, o BITS responderá como faria com qualquer conta de usuário (por exemplo, o usuário precisará estar conectado ao computador para que a transferência ocorra). O serviço também deve usar o encobrimento dinâmico com os ponteiros de interface do BITS ao representar o usuário. O cloaking não é herdado, portanto, você deve chamar a função CoSetProxyBlanket em cada ponteiro de interface que você recebe do BITS (por exemplo, o ponteiro de trabalho retornado ao chamar o método IBackgroundCopyManager::CreateJob); não é suficiente definir cloaking no ponteiro da interface do gerenciador. Você também pode chamar a função CoInitializeSecurity para o processo em vez de chamar a função CoSetProxyBlanket em cada ponteiro de interface.

No entanto, se o serviço não representar o usuário, os seguintes comportamentos se aplicam:

  • Os trabalhos criados pela conta de serviço pertencem a essa conta. Como as contas do sistema estão sempre conectadas, o BITS transfere os arquivos desde que o computador esteja em execução e haja uma conexão de rede.
  • As contas do sistema não devem usar letras de unidade de rede mapeadas porque as letras de unidade são específicas de uma sessão e o mapeamento pode ser perdido após a reinicialização do computador.
  • Na ausência de um Token Auxiliar, a autenticação de rede usa credenciais de computador para contas LocalSystem e NetworkService e credenciais anônimas para a conta LocalService. O BITS retornará "acesso negado" se a lista de controle de acesso (ACL) do arquivo de origem limitar o acesso a uma conta de usuário.
  • Para obter detalhes sobre como a autenticação funciona na presença de um Token Auxiliar, consulte Autenticação.
  • As configurações de proxy do Microsoft Internet Explorer são armazenadas por usuário e não são definidas para contas do sistema. Considere configurar um token auxiliar em seus trabalhos do BITS ou definir explicitamente as configurações de proxy corretas chamando IBackgroundCopyJob::SetProxySettings com BG_JOB_PROXY_USAGE_OVERRIDE. Como alternativa, você pode usar as opções /Util /SetIEProxy do BitsAdmin.exe para definir as configurações de proxy do Internet Explorer para a conta do sistema LocalSystem, LocalService ou NetworkService. Para obter detalhes, consulte BitsAdmin Tool.

Observe que o BITS não reconhece as configurações de proxy definidas usando o arquivo Proxycfg.exe.