次の方法で共有


IBitsTokenOptions::SetHelperToken メソッド (bits4_0.h)

COM クライアントのトークンを偽装するヘルパー トークンを設定します。 アプリケーションは COM の偽装によってトークンを設定するため、トークンは永続的ではなく、セッションの有効期間中のみ有効です。 BITS サービスがログオフ通知を受信すると、BITS サービスは転送ジョブに関連付けられているヘルパー トークンをすべて破棄します。

構文

HRESULT SetHelperToken();

戻り値

次の値が返される場合があります。

リターン コード/値 Description
CO_E_FAILEDTOIMPERSONATE
0x80010123
クライアントの COM 設定では、クライアント トークンへの権限借用レベルのアクセスは許可されません。
E_ACCESSDENIED
0x80070005
  • Windows 10 バージョン 1607 より前のバージョンでは、ジョブは管理者が所有していません。 これらのバージョンの Windows では、管理者所有のジョブのみがヘルパー トークンを設定できます。
  • Windows 10 バージョン 1607 以降のバージョンでは、このエラーはヘルパー トークンに管理者特権がありますが、呼び出し元には管理者特権がないことを示しています。

注釈

ヘルパー トークンは、管理者を表す必要はありません。

プロキシ ブランケットの偽装レベルは、 RPC_C_IMP_LEVEL_IMPERSONATE または RPC_C_IMP_LEVEL_DELEGATEに設定する必要があります。 詳細については、「 セキュリティ 一括ネゴシエーション」を参照してください。

クローキング フラグは EOAC_DYNAMIC_CLOAKING に設定する必要があります。これにより、COM サーバーはクライアントの ID としてスレッド トークンを使用できます。 詳細については、「 クローキングEOLE_AUTHENTICATION_CAPABILITIES列挙」を参照してください。

以前の実装では、ヘルパー トークンを設定するために BITS ユーザーに管理者権限が必要でした。 バージョン 1607 Windows 10以降、管理者以外の BITS ユーザーは IBitsTokenOptions::SetHelperToken を使用して、所有する BITS ジョブに管理者以外のヘルパー トークンを設定できます。 この変更により、管理者以外の BITS ユーザー ( NetworkService アカウントで実行されているバックグラウンド ダウンローダー サービスなど) がヘルパー トークンを設定できるようになります。

具体的には、 IBackgroundCopyJob::QueryInterface 呼び出し中に呼び出し元のスレッドのトークンの SID がジョブ所有者のユーザー アカウントの SID と同じであり、設定されているヘルパー トークンで管理者 SID (DOMAIN_ALIAS_RID_ADMINS) が有効になっていない限り、管理者特権のないユーザーがヘルパー トークンを設定できるように実装が変更されました。

要件

要件
サポートされている最小のクライアント Windows 7
サポートされている最小のサーバー Windows Server 2008 R2
対象プラットフォーム Windows
ヘッダー bits4_0.h
再頒布可能パッケージ SP1 を使用した Windows Vista、SP2 を使用した Windows Vista、SP2 を使用した Windows Server 2008 のWindows Management Framework

こちらもご覧ください

IBitsTokenOptions