서비스 계정 및 BITS

BITS를 사용하여 서비스에서 파일을 전송할 수 있습니다. 서비스는 LocalSystem, LocalService 또는 NetworkService 시스템 계정을 사용해야 합니다. 이러한 계정은 항상 로그온됩니다. 따라서 이러한 계정을 사용하여 서비스에서 제출한 작업은 항상 실행됩니다.

시스템 계정으로 실행 중인 서비스가 BITS를 호출하기 전에 사용자를 가장하는 경우 BITS는 모든 사용자 계정과 마찬가지로 응답합니다(예: 전송을 위해 컴퓨터에 로그온해야 함). 또한 서비스는 사용자를 가장할 때 BITS 인터페이스 포인터와 함께 동적 은폐를 사용해야 합니다. 은폐는 상속되지 않으므로 BITS에서 수신하는 각 인터페이스 포인터에서 CoSetProxyBlanket 함수를 호출해야 합니다(예: IBackgroundCopyManager::CreateJob 메서드를 호출하여 반환된 작업 포인터). 관리자 인터페이스 포인터에 은폐를 설정하는 것만으로는 충분하지 않습니다. 각 인터페이스 포인터에서 CoSetProxyBlanket 함수를 호출하는 대신 프로세스에 대한 CoInitializeSecurity 함수를 호출할 수도 있습니다.

그러나 서비스에서 사용자를 가장하지 않는 경우 다음 동작이 적용됩니다.

  • 서비스 계정에서 만든 작업은 해당 계정이 소유합니다. 시스템 계정은 항상 로그온되므로 BITS는 컴퓨터가 실행 중이고 네트워크 연결이 있는 한 파일을 전송합니다.
  • 드라이브 문자는 세션과 관련이 있으며 컴퓨터를 다시 시작한 후 매핑이 손실될 수 있으므로 시스템 계정은 매핑된 네트워크 드라이브 문자를 사용하면 안 됩니다.
  • 도우미 토큰이 없는 경우 네트워크 인증은 LocalSystem 및 NetworkService 계정에 대한 컴퓨터 자격 증명과 LocalService 계정에 대한 익명 자격 증명을 사용합니다. 원본 파일의 ACL(액세스 제어 목록)이 사용자 계정에 대한 액세스를 제한하는 경우 BITS는 "액세스 거부됨"을 반환합니다.
  • 도우미 토큰이 있는 상태에서 인증이 작동하는 방식에 대한 자세한 내용은 인증을 참조하세요.
  • Microsoft 인터넷 Explorer 프록시 설정은 사용자별로 저장되며 시스템 계정에 대해 설정되지 않습니다. BITS 작업에서 도우미 토큰을 구성하거나 BG_JOB_PROXY_USAGE_OVERRIDEIBackgroundCopyJob::SetProxySettings를 호출하여 올바른 프록시 설정을 명시적으로 설정하는 것이 좋습니다. 또는 BitsAdmin.exe /Util /SetIEProxy 스위치를 사용하여 LocalSystem, LocalService 또는 NetworkService 시스템 계정에 대한 인터넷 Explorer 프록시 설정을 지정할 수 있습니다. 자세한 내용은 BitsAdmin 도구를 참조하세요.

BITS는 Proxycfg.exe 파일을 사용하여 설정된 프록시 설정을 인식하지 못합니다.