Fonction DsServerRegisterSpnA (ntdsapi.h)

La fonction DsServerRegisterSpn compose deux noms de principal de service pour un service basé sur l’hôte. Les noms sont basés sur les noms DNS et NetBIOS de l’ordinateur local. La fonction modifie l’attribut servicePrincipalName d’un compte spécifié ou du compte associé au thread appelant. La fonction inscrit ou annule l’inscription des SPN.

Un service basé sur l’hôte est un service instance qui fournit des services identifiés avec son ordinateur hôte, à la distinction d’un service réplicable où les clients n’ont aucune préférence sur l’ordinateur hôte sur lequel un service instance s’exécute.

Syntaxe

NTDSAPI DWORD DsServerRegisterSpnA(
  [in]           DS_SPN_WRITE_OP Operation,
  [in]           LPCSTR          ServiceClass,
  [in, optional] LPCSTR          UserObjectDN
);

Paramètres

[in] Operation

Spécifie l’opération que DsServerRegisterSpn doit effectuer. Ce paramètre peut avoir l’une des valeurs suivantes.

DS_SPN_ADD_SPN_OP

Ajoute les noms de principal du service au compte d’utilisateur ou d’ordinateur.

DS_SPN_DELETE_SPN_OP

Supprime les SPN spécifiés du compte.

DS_SPN_REPLACE_SPN_OP

Supprime tous les SPN actuellement inscrits sur le compte d’utilisateur ou d’ordinateur et les remplace par les nouveaux noms de service.

[in] ServiceClass

Pointeur vers une chaîne constante terminée par null spécifiant la classe du service. Ce paramètre peut être n’importe quelle chaîne propre à ce service ; le nom du protocole (par exemple, ldap) ou la forme de chaîne d’un GUID fonctionnent.

[in, optional] UserObjectDN

Pointeur vers une chaîne constante terminée par un caractère Null spécifiant le nom unique d’un objet de compte d’utilisateur ou d’ordinateur dans lequel écrire les SPN. Si ce paramètre a la valeur NULL, DsServerRegisterSpn écrit dans l’objet de compte de l’utilisateur principal ou emprunt d’identité associé au thread appelant. Si le thread s’exécute dans le contexte de sécurité du compte LocalSystem, la fonction écrit dans l’objet account de l’ordinateur local.

Valeur retournée

Si la fonction inscrit correctement un ou plusieurs spN, elle retourne ERROR_SUCCESS. La modification est effectuée de manière permissive, de sorte que l’ajout d’une valeur qui existe déjà ne renvoie pas d’erreur.

Remarques

Les deux SPN composés par la fonction DsServerRegisterSpn ont le format suivant :

<ServiceClass>/<host>

Dans un SPN, l’ordinateur hôte est le nom DNS complet de l’ordinateur local. Dans l’autre SPN, le composant hôte est le nom NetBIOS de l’ordinateur local.

Dans la plupart des cas, l’appelant DsServerRegisterSpn doit disposer de privilèges d’administrateur de domaine pour modifier correctement l’attribut servicePrincipalName d’un objet account. L’exception à cette règle est que si le thread appelant s’exécute sous le compte LocalSystem, DsServerRegisterSpn est autorisé si le paramètre UserObjectDN a la valeur NULL ou spécifie le nom unique du compte d’ordinateur local.

Notes

L’en-tête ntdsapi.h définit DsServerRegisterSpn comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête ntdsapi.h
Bibliothèque Ntdsapi.lib
DLL Ntdsapi.dll

Voir aussi

Fonctions de gestion des contrôleurs de domaine et de la réplication

DsGetSpn

DsWriteAccountSpn