Résolution des problèmes liés à l’erreur de réplication AD 8589 : la DS ne peut pas dériver un nom de principal de service (SPN)

Cet article décrit les symptômes, la cause et les étapes de résolution pour les cas où les opérations AD échouent avec l’erreur Win32 8589.

Note

Utilisateurs à domicile : cet article est destiné uniquement aux agents de support technique et aux professionnels de l’informatique. Si vous recherchez de l’aide sur un problème, demandez à la Communauté Microsoft.

Numéro de base de connaissances d’origine : 2703028

Symptômes

Erreur 8589 : « La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

Erreur symbolique : ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF

Vous verrez l’une des erreurs/avertissements suivants lors de la résolution des problèmes de réplication Active Directory.

  1. DCDIAG signale que le test des réplications Active Directory a échoué avec l’état d’erreur (8589) : le DS ne peut pas dériver une ith de principal de service (SPN) qui permet d’authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

    L’exemple de texte d’erreur de DCDIAG est illustré ci-dessous :

    Serveur de test : <nom du contrôleur de domaine de site><>

    Test de démarrage : réplications

    * Vérification des réplications

    [Vérification des réplications,<Nom> du contrôleur de domaine] Une tentative de réplication récente a échoué :

    Du contrôleur de domaine> source au contrôleur de <domaine de <destination>

    Contexte de nommage : chemin d’accès DC=<DN>

    La réplication a généré une erreur (8589) :

    La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

    L’échec s’est produit à l’heure de <la date<>>.

    Le dernier succès s’est produit à (jamais)| <date>.

  2. DCDiag.exe affiche l’avertissement suivant :

    Un événement d’avertissement s’est produit. EventID : 0x80000785

    Heure générée : <DateTime>

    Chaîne d’événement : échec de la tentative d’établissement d’un lien de réplication pour la partition d’annuaire accessible en écriture suivante.
    Partition de répertoire :
    DC=ForestDnsZones,DC=contoso,DC=com
    Contrôleur de domaine source :
    CN=Paramètres NTDS,CN=DCSRV01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=contosoDC=com
    Adresse du contrôleur de domaine source :

    <source DC NTDS Settings Obejct GUID>._msdcs.contoso.com
    Transport intersite (le cas échéant) :
    Ce contrôleur de domaine ne pourra pas être répliqué avec le contrôleur de domaine source tant que ce problème n’est pas corrigé.

    Action de l’utilisateur
    Vérifiez si le contrôleur de domaine source est accessible ou si la connectivité réseau est disponible.

    Données supplémentaires
    Valeur d’erreur :
    8589

    La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

  3. REPADMIN.EXE signale que la dernière tentative de réplication a échoué avec l’état 8589

    REPADMIN commandes qui citent généralement l’état 8589, mais ne sont pas limitées à :

    • REPADMIN /SHOWREPL
    • REPADMIN /SHOWREPS
    • REPADMIN /REPLSUM
    • REPADMIN /SYNCALL

    Repadmin /showrepl retourne l’erreur suivante :

    Source : <Nom du site\<Nom> du contrôleur de domaine>

    <n> ÉCHECS CONSÉCUTIFS depuis la <date et l’heure>

    Dernière erreur : 8589 (0x218d) :

    La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

  4. Événements dans le journal des événements des services d’annuaire qui citent l’état d’erreur 8589

    Les événements, qui citent généralement le statut 8589, incluent, mais ne sont pas limités à :

    Source d’événement et ID d’événement Chaîne de message
    Réplication NTDS / ActiveDirectory_DomainService 1411 Active Directory n’a pas pu construire un nom de principal de service d’authentification mutuelle (SPN) pour le contrôleur de domaine suivant.
    Réplication NTDS 2023 Le contrôleur de domaine local n’a pas pu répliquer les modifications apportées au contrôleur de domaine distant suivant pour la partition de répertoire suivante.
    NTDS KCC 1925 Échec de la tentative d’établissement d’un lien de réplication pour la partition d’annuaire accessible en écriture suivante.

Cause

L’événement se produit le plus souvent sur un contrôleur de domaine après qu’un partenaire de réplication a été rétrogradé avec force et repromoté avant d’autoriser la réplication de bout en bout. Cela peut également se produire lorsque vous renommez un contrôleur de domaine et que l’attribut serverReference n’est pas mis à jour. L’attribut serverReference de cette instance est l’objet serveur visible dans la console MMC sites et services Active Directory (adsiedit.msc). L’objet serveur est l’objet parent de l’objet NTDS Settings du contrôleur de domaine.

Résolution

Vérifiez que l’attribut serverReference n’est pas manquant ou défini sur une valeur incorrecte et mettez-le à jour vers la valeur correcte.

  1. Recherchez le contrôleur de domaine référencé dans l’ID d’événement 1411. Il existe quelques options que nous pouvons utiliser pour trouver cela. Les simples sont d’utiliser ping (option A). En cas d’échec du test ping, utilisez PowerShell (option B). Si PowerShell n’est pas une option, vous pouvez utiliser ldp.exe (option C). (Remarque : si vos contrôleurs de domaine sont 2003 et que vous ne pouvez pas installer PowerShell sur celui-ci, vous pouvez utiliser PowerShell à partir d’un client joint à un domaine Windows 7 ou d’un serveur Windows 2008 ou Windows 2008 R2)

    Option A
    Utilisez NSLookup ou ping pour rechercher le contrôleur de domaine répertorié dans <les paramètres NTDS source Obejct GUID>._msdcs.contoso.com

    Exemple :

    Ping 3dab7f9b-92e7-4391-b8db-71df532c1493._msdcs.contoso.com

    Pinging DCSRV02.contoso.com [IP] with 32 bytes of data :
    
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    

    Option B
    Utilisez PowerShell pour rechercher le contrôleur de domaine référencé. Il existe deux méthodes PowerShell que vous pouvez utiliser. Pour ce faire, ouvrez le « Module Active Directory pour Windows PowerShell »

    Méthode 1 : Exécutez les deux applets de commande PowerShell suivantes. Dans la première applet de commande, remplacez le nom CN=Configuration,DC=contoso,DC=com de la partition par le nom de domaine de votre partition de configuration. Remplacez le nom DCSRV01.contoso.com du serveur par le nom de votre contrôleur de domaine. Dans la deuxième applet de commande, remplacez le GUID 3dab7f9b-92e7-4391-b8db-71df532c1493 par le GUID dans votre ID d’événement 1411.

    $list = Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase '*CN=Configuration,DC=contoso,Dc=com*' -Server *DCSRV01.contoso.com*  
    -includedeletedobjects -Properties *
    
    foreach ($dc in $list) {if ($dc.ObjectGUID -match "*3dab7f9b-92e7-4391-b8db-71df532c1493*") {Echo $dc.DistinguishedName }}  
    

    Méthode 2 : Une autre option PowerShell consiste à exécuter les éléments suivants, puis à rechercher le fichier texte de sortie. Remplacez le DCSRV01.contoso.com contrôleur de domaine par un contrôleur de domaine dans votre environnement.

    Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase 'CN=Configuration,DC=contoso,Dc=com' -Server DCSRV01.contoso.com -includedeletedobjects > C:\NTDSDSA.txt
    

    Ensuite, recherchez NTDSA.txt pour le GUID référencé dans l’ID d’événement 141

    Option C

    Utiliser Ldp.exe

    1. Cliquez sur Démarrer, puis sur Exécuter
    2. Tapez LDP.exe, puis appuyez sur Entrée.
    3. Dans le menu Connexions, cliquez sur Lier, puis sur OK.
    4. Dans le menu Affichage, cliquez sur Arborescence.
    5. Dans BaseDN, cliquez sur la flèche de liste déroulante, cliquez sur le nom unique de votre partition configuration, puis cliquez sur OK.
    6. Dans le menu Options, cliquez sur Contrôles.
    7. Dans la boîte de dialogue Contrôles, développez le menu Charger prédéfini, cliquez sur Retourner les objets supprimés, puis cliquez sur OK.

      Note

      Le contrôle 1.2.840.113556.1.4.417 s’affiche dans la liste Contrôles actifs.

    8. Dans le menu Parcourir, cliquez sur Rechercher
    9. Dans la zone DN de base, tapez : CN=Sites, CN=Configuration,DC=contoso,DC=com (Remplacez contoso et com par le nom de domaine approprié.)
    10. Dans la zone Filtre, tapez (objectClass=ntdsdsa)
    11. Dans la zone Étendue, sélectionnez Subtree
    12. Dans le type de zone Attributs, un * (astérisque)
    13. Cliquez sur Exécuter.
    14. Sur le côté droit, recherchez le GUID dans l’attribut objectGUID pour trouver le serveur auquel il fait référence.

    Option D

    1. Obtenez repadmin /showrepl la sortie du contrôleur de domaine de destination signalant l’état 8589.
    2. À l’aide de la repadmin /showrepl sortie obtenue à l’étape précédente, identifiez l’état de réplication 8589 dans la sortie et documentez la date et l’horodatage suivant le message De dernière tentative.
    3. À l’aide de la date et de l’horodatage de l’étape précédente, recherchez l’ID d’événement correspondant 1411 dans le journal des événements services d’annuaire sur le contrôleur de domaine de destination. Notez que le GUID de l’objet DSA répertorié dans la repadmin /showrepl sortie est différent de ce qui est signalé dans l’ID d’événement 1411.( voir l’exemple de scénario ci-dessous)
    4. Recherchez ensuite le contrôleur de domaine répertorié dans l’ID d’événement 1411, en vérifiant l’onglet Général des propriétés des paramètres NTDS ou en effectuant un test ping sur le GUID dans l’ID d’événement.
    5. Liez au contrôleur de domaine source à l’aide d’ADSIEDIT ou de Utilisateurs et ordinateurs Active Directory et ouvrez l’Éditeur d’attributs et copiez la valeur dans serverReference. Collez la valeur de cet attribut sur la copie des contrôleurs de domaine de destination de l’objet. (Étape 2)
  2. Une fois que vous avez localisé le serveur référencé à l’aide de l’une des méthodes ci-dessus, procédez comme suit :

    1. Cliquez sur Démarrer, puis sur Exécuter
    2. Tapez ADSIEDIT.msc et appuyez sur Entrée
    3. Cliquez avec le bouton droit sur « ADSI Modifier », puis sélectionnez « Se connecter à... "
    4. Dans « Point de connexion » sous « Sélectionner un contexte d’affectation de noms connu : « sélectionner « Configuration », puis cliquez sur OK.
    5. Dans le volet gauche, développez « Configuration »
    6. Développez ensuite « CN=Configuration,DC=contoso,DC=com »
    7. Développez ensuite « CN=Sites »
    8. Sous CN=Sites, développez le site dans lequel se trouve le serveur. Exemple : Default-First-Site-Name
    9. Sous ce site, développez CN=Servers. Exemple : si DCSRV02 se trouve dans le site Default-First-Site-Name dans Contoso.com, vous devez être dans : CN=DCSRV02, CN=Servers, CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=contoso, DC=com
    10. Cliquez avec le bouton droit sur le contrôleur de domaine (trouvé à l’aide de l’option A, B ou C) et sélectionnez Propriétés.
    11. Dans l’onglet « Éditeur d’attributs », faites défiler jusqu’à l’attribut serverReference.
    12. ServerReference doit être similaire à CN=DCSRV02,OU=Contrôleurs de domaine,DC=Contoso,DC=com s’il est manquant ou incorrect, puis remplacez-le par la valeur correcte.
    13. Fermer ADSIEDIT.msc

Plus d’informations

Exemple de scénario

  1. Obtenez la sortie repadmin /showrepl du contrôleur de domaine de destination signalant l’état 8589.

  2. À l’aide de la sortie repadmin /showrepl obtenue à l’étape précédente, identifiez l’état de réplication 8589 dans la sortie et documentez la date et l’horodatage suivant le dernier message de la tentative.

    Repadmin /showrepl sortie:

    Liverpool\LIVCONTOSODCDSA Options : IS_GC
    Options de site : (aucun)
    GUID de l’objet DSA : <GUID>

    DSA invocationID : <InvocationID>

    ==== VOISINS ENTRANTS ======================================

    DC=Contoso,DC=com

    Charlotte\CONTOSOROOTDC1 via RPC

    GUID de l’objet DSA : <GUID>

    La dernière tentative @ <DateTime> a réussi.

    CN=Configuration,DC=Contoso,DC=com

    Houston\5THWARDCORPDC via RPC

    GUID de l’objet DSA : <GUID>

    Dernière tentative @ <DateTime> a échoué, résultat 8589 (0x218d) :

    La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

    1700 échecs consécutifs.

    Dernier succès @ (jamais).

À l’aide de la date et de l’horodatage de l’étape précédente, recherchez l’ID d’événement correspondant 1411 dans le journal des événements services d’annuaire sur le contrôleur de domaine de destination. Notez que le GUID de l’objet DSA répertorié dans la sortie repadmin /showrepl est différent de ce qui est signalé dans l’ID d’événement 1411.

Journal des événements des services d’annuaire :

Nom du journal : service d’annuaire
Source : Microsoft-Windows-ActiveDirectory_DomainService
Date : <DateTime>
ID d’événement : 1411
Catégorie de tâche : client RPC DS
Niveau : Erreur
Mots clés : Classique
Utilisateur : LOGON ANONYME
Ordinateur : LIVCONTOSODC.Contoso.com
Description :
services de domaine Active Directory n’a pas pu construire un nom de principal de service d’authentification mutuelle (SPN) pour le service d’annuaire suivant.

Service d’annuaire : <GUID>._msdcs.Contoso.com

L’appel a été refusé. La communication avec ce service d’annuaire peut être affectée.

Données supplémentaires
Valeur d’erreur :
8589 La DS ne peut pas dériver un nom de principal de service (SPN) avec lequel authentifier mutuellement le serveur cible, car l’objet serveur correspondant dans la base de données DS locale n’a pas d’attribut serverReference.

Capture d’écran de la fenêtre Sites et services Active Directory avec les paramètres NTDS Fenêtre Propriétés ouvert.

Cliquez sur Annuler, puis affichez les propriétés de l’objet serveur (5thWardCorpDC dans cet exemple) sélectionnez l’onglet Éditeur d’attributs (Server 2008 et versions ultérieures) ou utilisez ADSIEDIT pour modifier l’objet sur Server 2003

Notez que l’attribut serverReference n’est pas défini dans l’image suivante

Capture d’écran du Fenêtre Propriétés 5THWARDCORPDC avec l’attribut serverReference sélectionné.

Liez au contrôleur de domaine source à l’aide d’ADSIEDIT ou de Utilisateurs et ordinateurs Active Directory et ouvrez l’Éditeur d’attributs et copiez la valeur dans serverReference. Collez la valeur de cet attribut sur la copie des contrôleurs de domaine de destination de l’objet.

Capture d’écran de la fenêtre Sites et services Active Directory avec la Fenêtre Propriétés 5THWARDCORPDC ouverte, et une fenêtre Éditeur d’attributs de chaîne est ouverte pour modifier la valeur.

Une fois que l’attribut serverReference est défini correctement pour le contrôleur de domaine, il s’affiche comme suit :

Capture d’écran de la fenêtre Sites et services Active Directory avec la Fenêtre Propriétés 5THWARDCORPDC ouverte, et l’attribut serverReference est sélectionné.