IBitsTokenOptions::SetHelperToken 方法 (bits4_0.h)

设置帮助程序令牌以模拟 COM 客户端的令牌。 由于应用程序通过 COM 模拟设置令牌,因此令牌不是永久性的,并且仅在会话的生存期内有效。 当 BITS 服务收到注销通知时,BITS 服务将放弃与传输作业关联的任何帮助程序令牌。

语法

HRESULT SetHelperToken();

返回值

可能会返回以下值:

返回代码/值 说明
CO_E_FAILEDTOIMPERSONATE
0x80010123
客户端上的 COM 设置不允许对客户端令牌进行模拟级别访问。
E_ACCESSDENIED
0x80070005
  • 在 Windows 10 版本 1607 之前的版本中,作业不归管理员所有。 在这些版本的 Windows 中,只有管理员拥有的作业可以设置帮助程序令牌。
  • 在 Windows 10 版本 1607 和更新版本中,此错误指示帮助程序令牌具有管理员权限,但调用方没有管理员权限。

注解

帮助程序令牌不需要表示管理员。

代理毯的模拟级别必须设置为 RPC_C_IMP_LEVEL_IMPERSONATERPC_C_IMP_LEVEL_DELEGATE。 有关详细信息,请参阅 安全一揽子协商

隐藏标志应设置为 EOAC_DYNAMIC_CLOAKING,这使 COM 服务器能够使用线程令牌作为客户端的标识。 有关详细信息,请参阅 隐藏EOLE_AUTHENTICATION_CAPABILITIES枚举

旧实现实际上要求 BITS 用户具有管理员权限才能设置帮助程序令牌。 从 Windows 10 版本 1607 开始,非管理员 BITS 用户可以使用 IBitsTokenOptions::SetHelperToken 在他们拥有的 BITS 作业上设置非管理员帮助程序令牌。 此更改允许非管理员 BITS 用户 ((例如 在 NetworkService 帐户) 下运行的后台下载程序服务)来设置帮助程序令牌。

具体而言,只要调用方线程令牌的 SID 与 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