Partager via


DsServerRegisterSpnW, fonction (ntdsapi.h)

La fonction DsServerRegisterSpn compose deux SPN 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 un hôte est une instance de service qui fournit des services identifiés avec son ordinateur hôte, comme le distingue d’un service réplicable où les clients n’ont aucune préférence sur l’ordinateur hôte sur lequel une instance de service s’exécute.

Syntaxe

NTDSAPI DWORD DsServerRegisterSpnW(
  [in]           DS_SPN_WRITE_OP Operation,
  [in]           LPCWSTR         ServiceClass,
  [in, optional] LPCWSTR         UserObjectDN
);

Paramètres

[in] Operation

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

DS_SPN_ADD_SPN_OP

Ajoute les SPN 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 SPN.

[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 unique à ce service ; le nom du protocole (par exemple, ldap) ou la forme de chaîne d’un GUID fonctionne.

[in, optional] UserObjectDN

Pointeur vers une chaîne constante terminée par null spécifiant le nom unique d’un objet de compte d’utilisateur ou d’ordinateur dans lequel écrire les noms de principal de service. Si ce paramètre est 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 de compte de l’ordinateur local.

Valeur de retour

Si la fonction enregistre 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 retourne 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 de compte. 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 est null ou spécifie le nom unique du compte d’ordinateur local.

Note

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. Le mélange 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
serveur minimum pris en charge Windows Server 2008
plateforme cible Windows
d’en-tête ntdsapi.h
bibliothèque Ntdsapi.lib
DLL Ntdsapi.dll

Voir aussi

fonctions de gestion du contrôleur de domaine et de la réplication

DsGetSpn

DsWriteAccountSpn