DsServerRegisterSpnA 関数 (ntdsapi.h)
DsServerRegisterSpn 関数は、ホスト ベースのサービス用に 2 つの SPN を作成します。 名前は、ローカル コンピューターの DNS 名と NetBIOS 名に基づいています。 関数は、指定されたアカウントまたは呼び出し元スレッドに関連付けられているアカウントの servicePrincipalName 属性を変更します。 関数は、SPN を登録または登録解除します。
ホスト ベースのサービスは、サービス インスタンスが実行されているホスト コンピューターをクライアントが優先しないレプリカ可能なサービスと区別して、ホスト コンピューターで識別されるサービスを提供するサービス インスタンスです。
構文
NTDSAPI DWORD DsServerRegisterSpnA(
[in] DS_SPN_WRITE_OP Operation,
[in] LPCSTR ServiceClass,
[in, optional] LPCSTR UserObjectDN
);
パラメーター
[in] Operation
DsServerRegisterSpn が実行する操作を指定します。 このパラメーターには、次のいずれかの値を指定できます。
DS_SPN_ADD_SPN_OP
ユーザーまたはコンピューター アカウントに SPN を追加します。
DS_SPN_DELETE_SPN_OP
指定した SPN をアカウントから削除します。
DS_SPN_REPLACE_SPN_OP
ユーザーまたはコンピューター アカウントに現在登録されているすべての SPN を削除し、新しい SPN に置き換えます。
[in] ServiceClass
サービスのクラスを指定する、null で終わる定数文字列へのポインター。 このパラメーターには、そのサービスに固有の任意の文字列を指定できます。プロトコル名 (ldap など) または GUID の文字列形式のいずれかが機能します。
[in, optional] UserObjectDN
SPN を書き込むユーザーまたはコンピューター アカウント オブジェクトの識別名を指定する、null で終わる定数文字列へのポインター。 このパラメーターが NULL の場合、 DsServerRegisterSpn は 、呼び出し元スレッドに関連付けられているプライマリ ユーザーまたは偽装ユーザーのアカウント オブジェクトに書き込みます。 スレッドが LocalSystem アカウントのセキュリティ コンテキストで実行されている場合、関数はローカル コンピューターのアカウント オブジェクトに書き込みます。
戻り値
関数が 1 つ以上の SPN を正常に登録すると、 ERROR_SUCCESSが返されます。 既に存在する値を追加してもエラーが返されないように、変更は制限なく実行されます。
注釈
DsServerRegisterSpn 関数によって構成される 2 つの SPN の形式は次のとおりです。
<ServiceClass>/<host>
1 つの SPN では、ホスト コンピューターはローカル コンピューターの完全修飾 DNS 名です。 もう 1 つの SPN では、ホスト コンポーネントはローカル コンピューターの NetBIOS 名です。
ほとんどの場合、 DsServerRegisterSpn 呼び出し元には、アカウント オブジェクトの servicePrincipalName 属性を正常に変更するためのドメイン管理者特権が必要です。 この規則の例外は、呼び出し元のスレッドが LocalSystem アカウントで実行されている場合、UserObjectDN パラメーターが NULL であるか、ローカル コンピューター アカウントの識別名を指定している場合、DsServerRegisterSpn が許可されます。
注意
ntdsapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DsServerRegisterSpn を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | ntdsapi.h |
Library | Ntdsapi.lib |
[DLL] | Ntdsapi.dll |