IBitsTokenOptions::SetHelperToken 方法 (bits4_0.h)

設定協助程式令牌以模擬 COM 用戶端的令牌。 由於應用程式會透過 COM 模擬來設定令牌,因此令牌不是持續性的,而且只有在會話的存留期內才有效。 當 BITS 服務收到註銷通知時,BITS 服務會捨棄與傳輸作業相關聯的任何協助程式令牌。

Syntax

HRESULT SetHelperToken();

傳回值

可能會傳回下列值:

傳回碼/值 Description
CO_E_FAILEDTOIMPERSONATE
0x80010123
用戶端上的 COM 設定不允許對用戶端令牌進行模擬層級存取。
E_ACCESSDENIED
0x80070005
  • 在 Windows 10 1607 版之前的版本中,作業不是由系統管理員所擁有。 在這些版本的 Windows 中,只有系統管理員擁有的作業可以設定協助程式令牌。
  • 在 Windows 10 版本 1607 和更新版本中,此錯誤表示協助程式令牌具有系統管理員許可權,但呼叫端沒有系統管理員許可權。

備註

協助程式令牌不需要代表系統管理員。

Proxy 主體的模擬層級必須設定為 RPC_C_IMP_LEVEL_IMPERSONATERPC_C_IMP_LEVEL_DELEGATE。 如需詳細資訊,請參閱 安全性交涉

遮罩旗標應該設定為 EOAC_DYNAMIC_CLOAKING,讓 COM 伺服器能夠使用線程令牌作為用戶端的身分識別。 如需詳細資訊,請參閱 CloakingEOLE_AUTHENTICATION_CAPABILITIES 列舉

舊版實作實際上需要 BITS 使用者具有系統管理員許可權,才能設定協助程式令牌。 從 Windows 10 版本 1607 開始,非系統管理員 BITS 使用者可以使用 IBitsTokenOptions::SetHelperToken,在他們擁有的 BITS 作業上設定非系統管理員協助程式令牌。 這項變更可讓非系統管理員 BITS 使用者 (,例如在 NetworkService 帳戶 下執行的背景下載程式服務) 來設定協助程式令牌。

具體來說,只要呼叫端線程令牌的 SID 與作業擁有者的用戶帳戶在 IBackgroundCopyJob::QueryInterface 呼叫期間所設定的協助程式令牌,且所設定的協助程式令牌與啟用的 IBackgroundCopyJob::QueryInterface 呼叫期間,作業擁有者的用戶帳戶 SID 相同,且設定的協助程式令牌不會有系統管理員 SID () DOMAIN_ALIAS_RID_ADMINS 啟用。

規格需求

需求
最低支援的用戶端 Windows 7
最低支援的伺服器 Windows Server 2008 R2
目標平台 Windows
標頭 bits4_0.h
可轉散發套件 在 Windows Vista 上使用 SP1、Windows Vista sp2 和 Windows Server 2008 SP2 上的 Windows Management Framework

另請參閱

IBitsTokenOptions