Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article permet de résoudre le problème dans lequel l’ID d’événement 4015 est journalisé et le serveur DNS (Domain Name Service) rencontre une erreur critique.
Numéro de base de connaissances d’origine : 969488, 2733147
Vous recevez l’ID d’événement 4015 dans l’un des scénarios suivants :
Si vous exécutez le rôle DNS sur un contrôleur de domaine en lecture seule (RODC) et qu’un contrôleur de domaine accessible en écriture (DNS d’hébergement) n’est pas accessible, l’événement suivant est enregistré sur le contrôleur de domaine principal.
Log Name: DNS Server Source: Microsoft-Windows-DNS-Server-Service Date: date time Event ID: 4015 Task Category: None Level: Error Keywords: Classic User: N/A Computer: <ComputerName> Description: The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The extended error debug information (which may be empty) is "00002095: SvcErr: DSID-03210A6A, problem 5012 (DIR_ERROR), data 16". The event data contains the error.
Le serveur DNS ne peut pas accéder à l’objet Active Directory et l’événement suivant est journalisé fréquemment dans le journal des événements du serveur DNS.
Type: Error Source: DNS Category: None Event ID: 4015 Description: The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The extended error debug information (which may be empty) is "0000051B: AttrErr: DSID-xxxx, #1: 0:0000051B: DSID-xxxx, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 20119(nTSecurityDescriptor)". The eventdata contains the error."
Dans une forêt ou un domaine situé dans des zones DNS (Domain Name System) intégrées Active Directory, certains contrôleurs de domaine dont le rôle serveur DNS est installé ont été promus et rétrogradés. Certains contrôleurs de domaine promus ne peuvent pas inscrire le SRV, l’hôte A, le pointeur (PTR) ou le serveur de noms (NS) dans les zones DNS intégrées Active Directory, et l’événement suivant est journalisé :
The DNS server has encountered a critical error from the Active Directory. Check that the Active Directory is functioning properly. The extended error debug information (which may be empty) is "00002024: SvcErr: DSID-02050BBD, problem 5008 (ADMIN_LIMIT_EXCEEDED), data -1026". The event data contains the error.
RODC journalise l’ID d’événement DNS 4015 toutes les trois minutes avec le code d’erreur 00002095
Lorsqu’un RODC localise un serveur DNS accessible en écriture pour effectuer l’authentification RSO (ReplicateSingleObject), il exécute une fonction DSGETDC avec les indicateurs suivants définis :
DS_AVOID_SELF
DS_TRY_NEXTCLOSEST_SITE
DS_DIRECTORY_SERVICE_6_REQUIRED
DS_WRITEABLE_REQUIRED
Une fois qu’un contrôleur de domaine est retourné à partir de l’appel DSGETDC, il utilise le résultat pour rechercher l’enregistrement NS dans DNS. Si l’appel DSGETDC échoue ou qu’il ne trouve pas l’enregistrement NS du contrôleur de domaine retourné par DSGETDC, l’ID d’événement 4015 est journalisé.
Causes possibles de l’ID d’événement 4015 :
- Aucun contrôleur de domaine accessible en écriture n’est accessible ou aucun retourné à partir de l’appel DSGETDC.
- L’appel DSGETDC a réussi, mais le contrôleur de domaine retourné n’a pas le rôle serveur DNS installé ou n’inscrit pas d’enregistrement NS dans DNS.
La commande suivante peut être exécutée à partir du contrôleur de domaine principal pour vérifier quel contrôleur de domaine est retourné à partir de l’appel DSGETDC :
nltest /dsgetdc: DOMAIN.COM /WRITABLE /AVOIDSELF /TRY_NEXT_CLOSEST_SITE /DS_6
Où DOMAIN.COM
se trouve votre nom de domaine.
Pour plus d’informations sur la fonction DSGETDC, consultez la fonction DsGetDcNameA.
Pour résoudre l’une des causes ci-dessus, assurez-vous qu’un contrôleur de domaine accessible en écriture est accessible à partir du contrôleur de domaine principal, que le rôle serveur DNS est installé sur ce contrôleur de domaine et que l’enregistrement NS est inscrit dans DNS pour le contrôleur de domaine accessible en écriture.
L’ID d’événement 4015 est enregistré avec le code d’erreur 00000051B
Ce problème se produit en raison de problèmes d’autorisations. SYSTEM n’est pas le propriétaire de la zone DNS. Vous pouvez activer la journalisation des diagnostics Field Engineering pour identifier la zone DNS et modifier le propriétaire.
Définir le propriétaire de la zone DNS sur SYSTEM
Pour résoudre ce problème, effectuez les étapes suivantes :
Lorsque vous voyez l’erreur DNS dans les journaux des événements du serveur DNS une fois la journalisation activée, arrêtez la journalisation des champs de diagnostic AD en définissant la valeur de Registre suivante sur 0 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\15 Field Engineering
Mettre en corrélation l’heure exacte de l’ID d’événement 4015 à l’ID d’événement du service d’annuaire 1644 et identifier la partition du répertoire d’application DNS.
Ouvrez l’outil ADSI Edit (Adsiedit.msc), puis accédez à l’emplacement LDAP de l’objet identifié dans l’ID d’événement 1644, qui correspond à l’ID d’événement 4015.
Cliquez avec le bouton droit sur la zone, accédez à Propriétés>Avancées>, puis vérifiez que le propriétaire est défini sur SYSTEM.
L’ID d’événement 4015 est enregistré avec un code d’erreur étendu (ADMIN_LIMIT_EXCEEDED)
Ce problème se produit lorsque le service serveur DNS atteint la dnsRecord
limite d’attributs à valeurs multiples pour l’objet dnsNode
dans Active Directory. Dans les zones DNS intégrées Active Directory, les noms DNS sont représentés par dnsNode
des objets et les enregistrements DNS sont stockés en tant que valeurs dans dnsRecord
les attributs des dnsNode
objets. Les enregistrements de ressources DNS des contrôleurs de domaine rétrogradés ne seront pas supprimés automatiquement des dnsRecord
attributs d’objets dnsNode
dans la zone correspondante de la partition Active Directory associée. Par exemple :
DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=xxx,DC=xxx
Lorsque des enregistrements supplémentaires sont ajoutés à dnsRecord
des attributs d’objets, les entrées orphelines des contrôleurs de dnsNode
domaine rétrogradés entraînent l’erreur ADMIN_LIMIT_EXCEEDED.
Pour vérifier le nombre actuel d’enregistrements dans chaque partition, exécutez les commandes suivantes repadmin
:
repadmin /showattr . "CN=MicrosoftDNS,CN=System,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues >c:\temp\dns_Domain.txt
repadmin /showattr . "CN=MicrosoftDNS,DC=DomainDnsZones,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues>c:\temp\dns_DomainDnsZones.txt
repadmin /showattr . "CN=MicrosoftDNS,DC=ForestDnsZones,DC=contoso,DC=com" /subtree /filter:"(objectclass=dnsnode)" /atts:"dnsRecord" /allvalues >c:\temp\dns_ForestDnsZones.txt
La sortie affiche le nombre actuel d’entrées dans dnsRecord
les attributs de la zone intégrée Active Directory correspondante. Par exemple :
DN: DC=@,DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=contoso,DC=com
1280> dnsRecord: <48 byte blob>;
Supprimer les entrées orphelines des contrôleurs de domaine indiqués
Pour résoudre ce problème, supprimez toutes les entrées orphelines des contrôleurs de domaine indiqués dans les zones. Pour vérifier et supprimer sélectivement les entrées, exécutez les applets de commande Windows PowerShell suivantes :
Get-DnsServerResourceRecord -ZoneName trustanchors -RRType Ns
Remove-DnsServerResourceRecord -zonename trustanchors -RRType Ns -Name “@” -RecordData DC.contoso.com
Si vous devez supprimer plusieurs enregistrements de ressources (RR) pour un seul hôte, exécutez les applets de commande suivantes :
$AllNsRecords = Get-DnsServerResourceRecord -ZoneName “trustanchors” -RRType Ns
Foreach($Record in $AllNsRecords){
If($Record.recorddata.nameserver -like "*dc2*"){
$Record | Remove-DnsServerResourceRecord -ZoneName trustanchors
}
}
$AllSrvRecords = Get-DnsServerResourceRecord -ZoneName “_msdcs.contoso.com” -RRType Srv
Foreach($Record in $AllSrvRecords){
If($Record.recorddata.domainname -like "*dc2*"){
$Record | Remove-DnsServerResourceRecord -ZoneName _msdcs.contoso.com
}
}
Activer la journalisation du débogage avec TroubleShootingScript (TSS)
Pour démarrer des traces sur le serveur DNS à l’aide de TSS, exécutez l’applet de commande suivante :
.\TSS.ps1 -Scenario NET_DNSsrv -Mode Verbose -WaitEvent Evt:4015:'DNS Server'
Note
La journalisation des traces s’arrête automatiquement une fois l’ID d’événement 4015 journalisé.
Pour plus d’informations, consultez Collecter les informations clés avant de contacter le support Microsoft.