次の方法で共有


DsBindByInstanceW 関数 (ntdsapi.h)

DsBindByInstance 関数は、AD LDS または Active Directory インスタンスに明示的にバインドします。

構文

NTDSAPI_POSTXP DWORD DsBindByInstanceW(
  [in]           LPCWSTR                  ServerName,
  [in]           LPCWSTR                  Annotation,
  [in]           GUID                     *InstanceGuid,
  [in]           LPCWSTR                  DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCWSTR                  ServicePrincipalName,
  [in, optional] DWORD                    BindFlags,
  [out]          HANDLE                   *phDS
);

パラメーター

[in] ServerName

インスタンスの名前を指定する null で終わる文字列へのポインター。 このパラメーターは、AD LDS インスタンスにバインドするために必要です。 Active Directory インスタンスへのバインド時にこのパラメーターが NULL 場合は、DnsDomainName パラメーターに値が含まれている必要があります。 このパラメーターと DnsDomainName パラメーターの両方が NULL場合、関数は戻り値 ERROR_INVALID_PARAMETER (87) で失敗します。

[in] Annotation

AD LDS インスタンスのポート番号を指定する null で終わる文字列へのポインター。Active Directory インスタンスへのバインド時に NULL を します。 たとえば、"389" とします。

ドメイン別に Active Directory インスタンスにバインドするときに、このパラメーターが NULL 場合は、DnsDomainName パラメーターを指定する必要があります。 AD LDS インスタンスへのバインド時にこのパラメーターが NULL 場合は、InstanceGuid パラメーターを指定する必要があります。

[in] InstanceGuid

AD LDS インスタンスの GUID を含む GUID 値へのポインター。 GUID 値は、インスタンスの nTDSDSA オブジェクトの objectGUID プロパティです。 AD LDS インスタンスにバインドするときにこのパラメーターが NULL 場合は、Annotation パラメーターを指定する必要があります。

[in] DnsDomainName

ドメインごとに Active Directory インスタンスにバインドするときにドメインの DNS 名を指定する null で終わる文字列へのポインター。 サーバーまたは AD LDS インスタンスによって Active Directory インスタンスにバインドするには、このパラメーターを null を に設定します。

[in, optional] AuthIdentity

RPC セッションの開始に使用される資格情報を処理します。 DsMakePasswordCredentials 関数を使用して、AuthIdentityに適した構造体を作成します。

[in, optional] ServicePrincipalName

クライアントに割り当てるサービス プリンシパル名を指定する null で終わる文字列へのポインター。 ServicePrincipalName で NULL 渡すことは、DsBindWithCred 関数の呼び出しと同じです。

[in, optional] BindFlags

この関数の動作を定義するフラグのセットが含まれています。 このパラメーターには、0 個または 1 つ以上の次の値の組み合わせを含めることができます。

NTDSAPI_BIND_ALLOW_DELEGATION (1)

バインドでデリゲートの偽装レベルを使用します。 これにより、DsAddSidHistoryなどの委任を必要とする操作が成功します。 このフラグを指定すると、DsBindWithSpnEx も、DsBindWithSpnと同様に動作します。

このフラグが指定されていない場合、バインドは偽装偽装レベルを使用します。 偽装レベルの詳細については、「偽装レベル」を参照してください。

ほとんどの操作では、デリゲートの偽装レベルは必要ありません。このフラグは、必要な場合にのみ指定する必要があります。 代理偽装レベルで悪意のあるサーバーにバインドすると、悪意のあるサーバーは資格情報を使用して非悪意のあるサーバーに接続し、意図しない操作を実行できます。

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory Lightweight Directory Services: このフラグが指定されている場合、DsBindWithSpnEx Kerberos 認証を使用する必要があります。 Kerberos 認証を確立できない場合、dsBindWithSpnEx は他のメカニズムによる認証を試みません。

[out] phDS

バインド ハンドルを受け取る HANDLE 値のアドレス。 このハンドルを閉じるには、DsUnBindを呼び出します。

戻り値

成功した場合は NO_ERROR を返し、それ以外の場合は RPC または Win32 エラーを返します。 考えられるエラー コードには、次の一覧に記載されているものが含まれます。

備考

次の一覧に、インスタンスへのバインドに必要なパラメーター値を示します。

ServerName 注釈 InstanceGuid DnsDomainName
サーバー別の Active Directory サーバー名 NULL NULL NULL
ドメイン別の Active Directory NULL NULL NULL DNS ドメイン名
ポート別の AD LDS AD LDS がインストールされているコンピューターの DNS 名。 ポート番号 NULL NULL
GUID による AD LDS AD LDS がインストールされているコンピューターの DNS 名。 NULL インスタンス GUID NULL
 
注意 AD LDS のインスタンスが複数あるコンピューター上の AD LDS インスタンスにバインドするときのパフォーマンスを向上させるには、ポート番号ではなくインスタンス GUID でバインドします。
 

手記

ntdsapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DsBindByInstance を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
サポートされる最小サーバー Windows Server 2008
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ntdsapi.h
ライブラリ Ntdsapi.lib
DLL Ntdsapi.dll