Freigeben über


Ereignis-ID 4015 wird protokolliert, und der DNS-Server tritt auf einen kritischen Fehler auf.

Dieser Artikel hilft, das Problem zu beheben, bei dem die Ereignis-ID 4015 protokolliert wird und der DNS-Server (Domain Name Service) einen kritischen Fehler verursacht.

Ursprüngliche KB-Nummer: 969488, 2733147

Die Ereignis-ID 4015 wird in einem der folgenden Szenarien angezeigt:

  • Wenn Sie die DNS-Rolle auf einem Schreibgeschützten Domänencontroller (RODC) ausführen und auf einen schreibbaren Domänencontroller (Hosting DNS) nicht zugegriffen werden kann, wird das folgende Ereignis beim RODC angemeldet.

    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.
    
  • Der DNS-Server kann nicht auf das Active Directory-Objekt zugreifen, und das folgende Ereignis wird häufig im Ereignisprotokoll des DNS-Servers protokolliert.

    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."
    
  • In einer Gesamtstruktur oder Domäne in Active Directory-Zonen (Integrated Domain Name System, DNS) wurden einige Domänencontroller, auf denen die DNS-Serverrolle installiert ist, heraufgestuft und herabgestuft. Einige höhergestufte Domänencontroller können srV, Host A, Pointer (PTR) oder Name Server (NS) in den integrierten Active Directory-DNS-Zonen nicht registrieren, und das folgende Ereignis wird protokolliert:

    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 protokolliert DIE DNS-Ereignis-ID 4015 alle drei Minuten mit Fehlercode 00002095

Wenn ein RODC einen schreibbaren DNS-Server zum Ausführen von ReplicateSingleObject (RSO) findet, führt er eine DSGETDC-Funktion mit den folgenden Flags aus:

  • DS_AVOID_SELF
  • DS_TRY_NEXTCLOSEST_SITE
  • DS_DIRECTORY_SERVICE_6_REQUIRED
  • DS_WRITEABLE_REQUIRED

Sobald ein DC vom DSGETDC-Aufruf zurückgegeben wird, wird das Ergebnis verwendet, um nach dem NS-Eintrag in DNS zu suchen. Wenn der DSGETDC-Aufruf fehlschlägt oder der NS-Eintrag des von DSGETDC zurückgegebenen DC nicht gefunden wird, wird die Ereignis-ID 4015 protokolliert.

Mögliche Ursachen der Ereignis-ID 4015:

  • Es ist kein schreibbarer DC-Zugriff möglich oder wird vom DSGETDC-Aufruf nicht zurückgegeben.
  • Der DSGETDC-Aufruf war erfolgreich, aber der zurückgegebene DC hat die DNS-Serverrolle nicht installiert oder registriert keinen NS-Eintrag in DNS.

Der folgende Befehl kann vom RODC ausgeführt werden, um zu überprüfen, welche DC aus dem DSGETDC-Aufruf zurückgegeben wird:

nltest /dsgetdc: DOMAIN.COM /WRITABLE /AVOIDSELF /TRY_NEXT_CLOSEST_SITE /DS_6

Wo DOMAIN.COM befindet sich Ihr Domänenname.

Weitere Informationen zur DSGETDC-Funktion finden Sie in der DsGetDcNameA-Funktion.

Um eine der oben genannten Ursachen zu beheben, stellen Sie sicher, dass über RODC auf einen schreibbaren DC zugegriffen werden kann, dass die DNS-Serverrolle auf diesem DC installiert ist und dass der NS-Eintrag im DNS für den schreibbaren DC registriert ist.

Ereignis-ID 4015 mit Fehlercode 0000051B protokolliert

Dieses Problem tritt aufgrund von Berechtigungsproblemen auf. SYSTEM ist nicht der Besitzer der DNS-Zone. Sie können die Field Engineering-Diagnoseprotokollierung aktivieren, um die DNS-Zone zu identifizieren und den Besitzer zu ändern.

Festlegen des DNS-Zonenbesitzers auf SYSTEM

Gehen Sie folgendermaßen vor, um das Problem zu beheben:

  1. Wenn der DNS-Fehler in den DNS-Serverereignisprotokollen erneut angezeigt wird, nachdem die Protokollierung aktiviert wurde, beenden Sie die AD-Diagnosefeld-Engineering-Protokollierung, indem Sie den folgenden Registrierungswert auf 0 festlegen:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\15 Field Engineering

  2. Korrelieren Sie die genaue Uhrzeit der Ereignis-ID 4015 mit der Verzeichnisdienstereignis-ID 1644, und identifizieren Sie die DNS-Anwendungsverzeichnispartition.

  3. Öffnen Sie das ADSI-Bearbeitungstool (Adsiedit.msc), und wechseln Sie zum LDAP-Speicherort des in der Ereignis-ID 1644 identifizierten Objekts, das mit der Ereignis-ID 4015 korreliert.

  4. Klicken Sie mit der rechten Maustaste auf die Zone, wechseln Sie zu "Properties>Security>Advanced", und stellen Sie sicher, dass der Besitzer auf SYSTEM festgelegt ist.

Ereignis-ID 4015 wird mit einem erweiterten Fehlercode protokolliert (ADMIN_LIMIT_EXCEEDED)

Dieses Problem tritt auf, wenn der DNS-Serverdienst den dnsRecord Grenzwert für mehrwertige Attribute für das dnsNode Objekt in Active Directory erreicht. In active Directory integrierte DNS-Zonen werden DNS-Namen durch dnsNode Objekte dargestellt, und DNS-Einträge werden als Werte in dnsRecord Attributen von dnsNode Objekten gespeichert. DNS-Ressourceneinträge (RRs) von herabgestuften Domänencontrollern werden nicht automatisch aus dnsRecord Attributen von dnsNode Objekten in der entsprechenden Zone der zugehörigen Active Directory-Partition gelöscht. Zum Beispiel:

DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=xxx,DC=xxx

Wenn zusätzliche Datensätze zu dnsRecord Attributen von dnsNode Objekten hinzugefügt werden, führen die verwaisten Einträge von herabgestuften Domänencontrollern zu dem ADMIN_LIMIT_EXCEEDED Fehler.

Führen Sie die folgenden repadmin Befehle aus, um die aktuelle Anzahl von Datensätzen in jeder Partition zu überprüfen:

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

Die Ausgabe zeigt die aktuelle Anzahl von Einträgen in dnsRecord Attributen der entsprechenden integrierten Active Directory-Zone an. Zum Beispiel:

DN: DC=@,DC=..TrustAnchors,CN=MicrosoftDNS,DC=ForestDnsZones,DC=contoso,DC=com
1280> dnsRecord: <48 byte blob>;

Löschen verwaister Einträge von gekennzeichneten Domänencontrollern

Um dieses Problem zu beheben, entfernen Sie alle verwaisten Einträge der gekennzeichneten Domänencontroller aus den Zonen. Führen Sie die folgenden Windows PowerShell-Cmdlets aus, um die Einträge zu überprüfen und selektiv zu löschen:

Get-DnsServerResourceRecord -ZoneName trustanchors -RRType Ns
Remove-DnsServerResourceRecord -zonename trustanchors -RRType Ns -Name “@” -RecordData DC.contoso.com

Wenn Sie mehrere Ressourceneinträge (RRs) für einen einzelnen Host löschen müssen, führen Sie die folgenden Cmdlets aus:

$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
}
}

Aktivieren der Debugprotokollierung mit TroubleShootingScript (TSS)

Führen Sie das folgende Cmdlet aus, um Ablaufverfolgungen auf dem DNS-Server mithilfe von TSS zu starten:

.\TSS.ps1 -Scenario NET_DNSsrv -Mode Verbose -WaitEvent Evt:4015:'DNS Server'

Notiz

Die Ablaufverfolgungsprotokollierung wird nach der Protokollierung der Ereignis-ID 4015 automatisch beendet.

Weitere Informationen finden Sie unter "Sammeln wichtiger Informationen", bevor Sie sich an den Microsoft-Support wenden.