服務帳戶和 BITS

您可以使用 BITS 從服務傳輸檔案。 服務必須使用 LocalSystem、LocalService 或 NetworkService 系統帳戶。 這些帳戶一律會登入;因此,使用這些帳戶的服務所提交的作業一律會執行。

如果在系統帳戶下執行的服務在呼叫 BITS 之前模擬使用者,BITS 會回應任何使用者帳戶的回應方式(例如,用戶必須登入計算機,才能進行傳輸)。 當模擬使用者時,服務也應該使用動態遮蓋搭配 BITS 介面指標。 Cloaking 不是繼承的,因此您必須在從 BITS 收到的每個介面指標上呼叫 CoSetProxyBlanket 函式(例如,從呼叫 IBackgroundCopyManager::CreateJob 方法傳回的工作指標;它不足以在管理員介面指標上設定遮蓋。 您也可以針對進程呼叫 CoInitializeSecurity 函式,而不是在每個介面指標上呼叫 CoSetProxyBlanket 函式。

不過,如果服務未模擬使用者,則會套用下列行為:

  • 服務帳戶所建立的作業是由該帳戶所擁有。 因為系統帳戶一律會登入,因此只要電腦執行且有網路連線,BITS 就會傳輸檔案。
  • 系統帳戶不應該使用對應的網路驅動器號,因為驅動器號是會話特有的,而且對應可能會在計算機重新啟動後遺失。
  • 如果沒有 協助程式令牌,網路驗證會使用LocalSystem和 NetworkService 帳戶的電腦認證,以及LocalService帳戶的匿名認證。 如果來源檔案的訪問控制清單 (ACL) 限制使用者帳戶的存取權,BITS 會傳回「拒絕存取」。
  • 如需驗證在協助程式令牌存在時運作方式的詳細資訊,請參閱驗證
  • Microsoft Internet Explorer Proxy 設定會儲存每個使用者,而且不會針對系統帳戶進行設定。 請考慮在 BITS 作業上設定協助程式令牌,或使用 BG_JOB_PROXY_USAGE_OVERRIDE 呼叫 IBackgroundCopyJob::SetProxy 設定 來明確設定正確的 Proxy 設定。 或者,您可以使用 Bits 的 /Util /SetIEProxy 參數 管理員.exe 設定 LocalSystem、LocalService 或 NetworkService 系統帳戶的 Internet Explorer Proxy 設定。 如需詳細資訊,請參閱 Bits 管理員 Tool

請注意,BITS 無法辨識使用 Proxycfg.exe 檔案所設定的 Proxy 設定。