Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe
analyserar tillståndet för domänkontrollanter (DC) i en skog eller ett företag och rapporterar eventuella problem som kan hjälpa dig att felsöka. Som ett slutanvändarrapporteringsprogram är DCDiag ett kommandoradsverktyg som kapslar in detaljerad kunskap om hur du identifierar onormalt beteende i systemet.
Som standard är DCDiag lätt tillgängligt om du är inloggad i en domänkontrollant. En alternativ metod för att komma åt DCDiag är att installera RSAT (Remote Server Administration Tools) på enheten. DCDiag måste köras med administrativa rättigheter från en upphöjd kommandotolk (CMD) eller PowerShell.
DCDiag består av ett ramverk för att köra tester och en serie tester för att verifiera olika funktionella områden i systemet. Det här ramverket väljer vilken domänkontrollant som testas enligt omfångsdirektiv från användaren, till exempel företag, plats eller enskild server. Att testa den övergripande anslutningen och svarstiden för domänkontrollanten omfattar verifiering:
- Domänkontrollanten kan finnas i DNS
- Domänkontrollanten svarar på ICMP-pingar (Internet Control Message Protocol)
- Domänkontrollanten tillåter LDAP-anslutning (Lightweight Directory Access Protocol) genom att binda till instansen
- Domänkontrollanten tillåter bindning till AD RPC-gränssnittet med hjälp av funktionen DsBindWithCred .
Anmärkning
Blockering av ICMP hindrar DCDiag från att fungera som avsett. Blockering av ICMP rekommenderas på Internet-gränsen för nätverket, men internt blockerande ICMP-trafik leder till administrativa problem som bryter mot äldre grupprinciper, identifiering av router för svarta hål eller ineffektiva MTU-storlekar på grund av brist på identifieringsalternativ. Felsökningsverktyg som ping.exe
eller tracert.exe
påverkas också.
DCDiag-syntax
dcdiag [/s:<DomainController>] [/n:<NamingContext>] [/u:<Domain>\<UserName> /p:{* | <Password> | ""}] [{/a | /e}] [{/q | /v}] [/i] [/f:<LogFile>] [/c [/skip:<Test>]] [/test:<Test>] [/fix] [{/h | /?}] [/ReplSource:<SourceDomainController>]
DCDiag använder följande parametrar:
Parameter | Beskrivning |
---|---|
/s:<DomainController> |
Anger namnet på servern som kommandot ska köras mot. Om den här parametern inte anges körs testerna mot den lokala domänkontrollanten. Den här parametern ignoreras för DcPromo- och RegisterInDns-tester, som bara kan köras lokalt. |
/n:<NamingContext> |
Använder NamingContext som namngivningskontext för att testa. Du kan ange domäner i NetBIOS, Domain Name System (DNS) eller unikt namnformat. |
/u:<Domain> \<UserName> /p:{<Password> | ""} |
Använder Domain\UserName. DCDiag använder de aktuella autentiseringsuppgifterna för den användare (eller process) som är inloggad. Om alternativa autentiseringsuppgifter behövs använder du följande alternativ för att ange dessa autentiseringsuppgifter för bindning med Lösenord som lösenord: Använd citattecken ("") för ett tomt eller null-lösenord. Använd jokertecknet (*) för att fråga efter lösenordet. |
/a | Testar alla servrar på den här AD DS-platsen. |
/ e | Testar alla servrar i företaget. Detta åsidosätter /a . |
/q | Stilla. Skriver bara ut felmeddelanden. |
/v | Mångordig. Skriver ut utökad information. |
/reparera | Påverkar endast MachineAccount-testet. Den här parametern gör att testet åtgärdar tjänsthuvudnamnen (SPN) på datorkontoobjektet för domänkontrollanten. |
/f:<LogFile> |
Omdirigerar alla utdata till en loggfil. |
/c | Omfattande. Kör alla tester utom DCPromo och RegisterInDNS, inklusive icke-standardtester. Du kan också använda den här parametern med parametern /skip för att hoppa över angivna tester.Följande tester körs inte som standard:
|
/h eller /? | Visar hjälp i kommandotolken. |
/test:<Test> |
Kör endast det här testet. Anslutningstestet kan inte hoppas över med parametern /skip . |
/ReplSource:<SourceDomainController> |
Testar anslutningen mellan domänkontrollanten där du kör kommandot och källdomänkontrollanten. (Den här parametern används för CheckSecurityError-testet.) SourceDomainController är DNS-namnet, NetBIOS-namnet eller det unika namnet på en verklig eller potentiell server som kommer att vara källdomänkontrollanten för replikering, vilket representeras av ett verkligt eller potentiellt anslutningsobjekt. |
KÄNDA DCDiag-tester
I följande tabell visas kända tester som körs som standard om inget annat anges.
Test | Beskrivning |
---|---|
Reklam | Kontrollerar om varje domänkontrollant annonserar sig själv i de roller som den ska kunna utföra. Det här testet verifierar att den offentliga DsGetDcName-funktionen som används av datorer för att hitta domänkontrollanter kommer att hitta alla domänkontrollanter korrekt. Det här testet misslyckas om Netlogon-tjänsten har stoppats eller misslyckats med att starta. Om KDC-tjänsten ( Key Distribution Key ) stoppas misslyckas reklamtestet eftersom flaggan som returneras från DsGetDcName inte inkluderar KDC. Om port 88 över TCP och UDP blockeras i en brandvägg godkänns reklamtestet trots att KDC inte kan svara på Kerberos-begäranden om biljetter. |
CheckSDRefDom (på engelska) | Kontrollerar att alla programkatalogpartitioner har lämpliga säkerhetsbeskrivningsreferensdomäner. Det här testet använder LDAP och validerar korsreferensobjekt som finns i cn=partitioner,cn=configuration,dc=<forest root domain> contain the correct domain names in their msDS-SDReferenceDomain attributes. |
CheckSecurityError (på engelska) | Testet körs inte som standard. Utför olika säkerhetskontroller för fel som rör säkerhetskomponenterna i domänkontrollanten, till exempel problem med säkerhetsprincipen eller säkerhetsdatabasen med hjälp av LDAP, RPC, RPC över SMB och ICMP. Den kontrollerar:
När parametern /ReplSource läggs till kontrollerar partnern även:
|
Uppkoppling | Verifierar att DSA och DNS är registrerade och kan nås med hjälp av LDAP och RPC. |
CrossRefValidation | Hämtar en lista över namngivningskontexter som finns i cn=partitioner,cn=configuration,dc=<forest root domain> med sina korsreferenser och validerar dem sedan som liknar CheckSDRefDom-testet med hjälp av LDAP. Det här testet tittar på attributen nCName, dnsRoot, nETBIOSName och systemFlags till:
|
Cutoff-servrar | Testar AD-replikering för att säkerställa att det inte finns domänkontrollanter utan fungerande anslutningsobjekt mellan partner. Alla servrar som inte kan replikera inkommande eller utgående från domänkontrollanter anses vara "avskurna" med hjälp av funktionen DsReplicaSyncAll , som utlöser replikering på domänkontrollanterna. Använd parametern /e med försiktighet om det finns dåligt implementerade WAN-länkar som hålls rena med hjälp av scheman. Om en server inte kan kontaktas eller inte är tillgänglig för LDAP i nätverket ger den inga fel eller testresultat, även om parametern /v har angetts. Det här testet använder RPC. |
DcPromo (på engelska) | Testar mot servern som anges i klientens DNS-inställningar om infrastrukturen uppfyller de krav som krävs för att höja upp enheten till en domänkontrollant. Det här testet använder DNS i nätverket och kontrollerar:
Följande argument krävs:
|
DFSREvent | Det här testet verifierar DFSR-tjänstens hälsotillstånd (Distributed File System Replication) genom att kontrollera varnings- och felposterna för DFSR-händelseloggen från de senaste 24 timmarna. Det här testet använder RPC och EventLog Remoting Protocol. |
DNS (Domännamnssystem) | Testar företagsomfattande DNS-hälsokontroller med hjälp av DNS-, RPC- och WMI-protokoll. Kördes inte som standard och måste uttryckligen begäras. Se DNS-syntax. |
FrsEvent | Kontrollerar om det finns fel i händelseloggen för Filreplikeringstjänsten (FRS) från de senaste 24 timmarna eftersom misslyckad replikering av SysVol-resursen kan orsaka principproblem. Det här testet använder RPC och EventLog Remoting Protocol. |
Samverkansplats | Söker efter fel som skulle förhindra eller tillfälligt stoppa replikering mellan platser och förutsäger hur lång tid det skulle ta för KCC att återställas. Det här testet använder DRS-funktioner för att söka efter villkor som förhindrar ad-replikering mellan platser på en specifik plats eller alla platser genom att:
Parametern /a eller /e måste användas eftersom det inte finns någon plats som gör att testet kan köras men hoppar över faktisk testning. Det här testet använder RPC över nätverket för att testa replikeringsaspekterna och ber registeranslutningarna att söka efter NTDS-åsidosättningsposter. LDAP används också för att hitta anslutningsinformation. |
KccEvent | Det här testet frågar KCC på domänkontrollanten efter fel och varningar som genererats i Directory Services-händelseloggen under de senaste 15 minuterna. Tröskelvärdet på 15 minuter gäller oavsett registervärdet Repl-topologiuppdateringsperiod (sek) på domänkontrollanten. Om brandväggsregler gör att testet misslyckas kan du läsa KB2512643 som beskriver hur du aktiverar dessa regler för att testet ska lyckas. Det här testet använder RPC tillsammans med EventLog Remoting Protocol. |
KnowsOfRoleHolders (på engelska) | Det här testet returnerar DCs-kunskapen om de fem FSMO-rollerna (Flexible Single Master Operation), men kontrollerar inte all kunskap om domänkontrollanter för konsekvens. Med hjälp av parametern /e finns data för jämförelse. Det här testet använder RPC för att returnera DSListRoles i drs-funktionerna ( Directory Replication Service ). |
MachineAccount (Maskinkonto) | Kontrollerar om datorkontot har registrerats korrekt och att tjänsterna annonseras med LDAP och RPC via SMB, inklusive kontroll:
Det här testet har också två reparationsalternativ:
|
NCSecDesc | Kontrollerar behörigheter för alla namngivningskontexter (till exempel Schema, Konfiguration osv.) på källdomänkontrollanten för att verifiera att replikering och anslutning fungerar mellan domänkontrollanter. Den ser till att företagsdomänkontrollanter och administratörsgrupper har rätt minimibehörigheter, vilket är samma test som utförs i CheckSecurityError. Det här testet använder LDAP. |
NetLogons (på engelska) | Verifierar att användaren som kör DCDiag kan ansluta till och läsa SYSVOL- och NETLOGON-resurserna utan några säkerhetsfel. Den kontrollerar också att gruppen Administratörer, Autentiserade användare och Alla har åtkomst till datorn från nätverksbehörigheten på domänkontrollanten. |
ObjektReplikerade | Kontrollerar att DSA-objekten (Machine Account and Directory System Agent) har replikerats. Två objekt verifieras som standard och att de finns i varje domänkontrollant och är uppdaterade på alla andra domänkontrollanter:
Du kan använda parametern /objectdn:dn med parametern /n:nc för att ange ytterligare ett objekt att kontrollera. Det här testet görs med hjälp av RPC med DRS-funktioner. |
UtgåendeSecureChannels | Det här testet körs inte som standard. Den kontrollerar att säkra kanaler finns från alla domänkontrollanter i domänen till de domäner som anges av parametern /testdomain . Parametern /nositerestriction hindrar DCDiag från att begränsa testet till domänkontrollanterna på platsen. |
RegisterInDNS (på engelska) | Testar om katalogservern kan registrera dns-posterna för katalogserverlokaliserare. Dessa poster måste finnas i DNS för att andra datorer ska kunna hitta den här katalogservern för den< Active_Directory_Domain_DNS_Name> domänen. Detta rapporterar även om det krävs några ändringar i den befintliga DNS-infrastrukturen. Parametern /DnsDomain :<Active_Directory_Domain_DNS_Name> måste användas. Det här testet kontrollerar:
|
Replikeringar | Det här testet kontrollerar alla AD-replikeringsanslutningsobjekt för alla namngivningskontexter på angivna domänkontrollanter om:
|
RidManager (RidManager) | Kontrollerar om rid-originalet (relative identifier) är tillgängligt och om:
Rollinnehavaren måste vara online och tillgänglig för att domänkontrollanter ska kunna skapa säkerhetsobjekt (användare, datorer och grupper) samt för att ytterligare domänkontrollanter ska kunna befordras inom en domän. Det här testet använder LDAP och RPC. |
Tjänster | Det här testet verifierar att olika AD-beroende tjänster körs, är tillgängliga och inställda på specifika starttyper. Dessa tjänster startas automatiskt och körs i en delad process om inget annat anges:
Dessa tjänstnamn visas i registersökvägen HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Det här testet använder RPC och Fjärrprotokollet för Service Control Manager . |
SysVolCheck (på engelska) | Det här testet läser registernyckeln DCs Netlogon SysVolReady för att verifiera att SYSVOL är klart. Värdenamnet måste finnas med värdet 1 för att klara testet och fungerar med antingen FRS- eller DFSR-replikerade SYSVOL:er. Den kontrollerar inte om SYSVOL- och NELOGON-resurserna är tillgängliga eftersom detta utförs av CheckSecurityError. Det här testet använder RPC över SMB. |
SystemLog (på engelska) | Validerar systemhändelseloggens hälsa genom att läsa och skriva poster från de senaste 60 minuterna för eventuella fel och varningar. Det här testet använder RPC och Fjärrprotokollet för Service Control Manager . |
Topologi | Kontrollerar att den genererade AD-replikeringstopologin är helt ansluten för alla DSA:er. Det här testet utförs inte som standard och måste köras explicit. Den kontrollerar:
Det här testet använder RPC, LDAP och DsReplicaSyncAll med flaggan DS_REPSYNCALL_DO_NOT_SYNC, vilket innebär att den analyserar och validerar replikeringstopologin utan att faktiskt replikera ändringar. Det här testet verifierar inte tillgängligheten för replikeringspartner. Att ha en partner offline orsakar inte fel i det här testet. Det testar inte heller om schemat är stängt, vilket förhindrar replikering. Om du vill se dessa aktiva replikeringsresultat använder du tester Replikering ellerCutoffServers. |
VerifyEnterpriseReferences | Kontrollerar att angivna systemreferenser är intakta för FRS- och replikeringsinfrastrukturen för alla objekt i företaget på varje domänkontrollant. Detta omfattar följande domänkontrollantwebbplatsattribut och -objekt:
De två DFSR-testerna utförs endast om domänens funktionsnivå är Windows Server 2008 eller högre. Det innebär att det uppstår ett förväntat fel om DFSR inte har migrerats till SYSVOL. Det här testet använder LDAP och endast de angivna domänkontrollanterna kontaktas. |
VerifyReferences | Kontrollerar att vissa systemreferenser är intakta för FRS- och replikeringsinfrastrukturen. Det här testet verifierar datorreferensattribut för en enskild domänkontrollant, inklusive följande domänkontrollantplatsattribut och -objekt:
Det här testet använder LDAP och liknar testet VerifyEnterpriseRefrences , förutom att det inte kontrollerar partitionens korsreferenser eller alla andra DC-objekt. |
VerifyReplicas | Kontrollerar att alla programkatalogpartitioner är helt instansierade på alla replikservrar. Den verifierar att den angivna servern är värd för de programpartitioner som anges av dess korsreferensattribut i partitionscontainern. Den fungerar som CheckSDRefDom förutom att den inte visar utdata och validerar värd. Det här testet använder LDAP. |
Anmärkning
Anslutningskontroller på domänkontrollanter som är registrerade i nätverket och ansluter till andra resurser som DNS, LDAP och RPC kan inte hoppas över.
DNS-syntax
dcdiag /test:DNS [/DnsBasic | /DnsForwarders | /DnsDelegation | /DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName [/DnsInternetName:<InternetName>] | /DnsAll] [/f:<LogFile>] [/x:<XMLLog.xml>] [/xsl:<XSLFile.xsl> or <XSLTFile.xslt>] [/s:<DomainController>] [/e] [/v]
DNS-testet använder följande parametrar:
Parameter | Beskrivning |
---|---|
/test:DNS | Utför det angivna DNS-testet. Om inget test har angetts är standardvärdet /DnsAll . |
/DnsBasic | Utför grundläggande DNS-tester, inklusive nätverksanslutning, DNS-klientkonfiguration, tjänsttillgänglighet och zontillgänglighet. |
/DnsForwarders | Utför testerna /DnsBasic och kontrollerar även konfigurationen av vidarebefordrare. |
/DnsDelegation | Utför testerna /DnsBasic och söker även efter rätt delegeringar. |
/DnsDynamicUpdate |
/DnsBasic Utför tester och avgör även om dynamisk uppdatering är aktiverad i Active Directory-zonen. |
/DnsRecordRegistration | Utför testerna /DnsBasic och kontrollerar även om resursposterna adress (A), kanoniskt namn (CNAME) och välkända tjänstresurser (SRV) har registrerats. Dessutom skapar en inventeringsrapport baserat på testresultaten. |
/DnsResolveExtName [/DnsInternetName:\<InternetName> ] |
Utför testerna /DnsBasic och försöker även lösa InternetName. Om /DnsInternetName inte anges försöker du matcha namnet <www.microsoft.com>. Om /DnsInternetName anges försöker du matcha det Internetnamn som användaren har angett. |
/DnsAll | Utför alla tester, förutom /DnsResolveExtName testet, och genererar en rapport. |
/f:<LogFile> |
Omdirigerar alla utdata till en loggfil. |
/s:<DomainController> |
Kör testerna mot domänkontrollanten. Om den här parametern inte anges körs testerna mot den lokala domänkontrollanten. |
/ e | Kör alla tester som anges av /test:DNS mot alla domänkontrollanter i Active Directory-skogen. |
/v | Mångordig. Visar utökad information om lyckade testresultat utöver information om fel och varningar. När parametern /v inte används innehåller endast fel- och varningsinformation. Använd växeln /v när fel eller varningar rapporteras i sammanfattningstabellen. |
/x:<XMLLog.xml> |
Omdirigerar alla utdata till xmllog.xml. Den här parametern fungerar bara med alternativet /test:DNS . |
/xsl:<XSLFile.xsl> eller /xsl: <XSLTFile.xslt> |
Lägger till de bearbetningsinstruktioner som refererar till det angivna bladet. Den här parametern fungerar bara med alternativet /test:DNS /x:<XMLLog.xml . |
Anmärkning
Körningstider för DNS-tester kan vara betydande i stora företag när parametern /e
används. Domänkontrollanter och DNS-servrar som är offline ökar körningstiderna på grund av långa tidsgränser för RPC och andra protokoll.
Exempel
Anslutningstest
Kör följande kommando för att köra en serie anslutningstester på den lokala domänen:
dcdiag
Ett lyckat anslutningstest:
Directory Server Diagnosis
Performing initial setup:
Trying to find home server...
Home Server = MapleWaffle-WS22
* Identified AD Forest.
Done gathering initial info.
Doing initial required tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Connectivity
......................... MAPLEWAFFLE-WS2 passed test Connectivity
Doing primary tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Advertising
......................... MAPLEWAFFLE-WS2 passed test Advertising
Starting test: FrsEvent
......................... MAPLEWAFFLE-WS2 passed test FrsEvent
Starting test: DFSREvent
......................... MAPLEWAFFLE-WS2 passed test DFSREvent
Starting test: SysVolCheck
......................... MAPLEWAFFLE-WS2 passed test SysVolCheck
Starting test: KccEvent
......................... MAPLEWAFFLE-WS2 passed test KccEvent
Starting test: KnowsOfRoleHolders
......................... MAPLEWAFFLE-WS2 passed test KnowsOfRoleHolders
Starting test: MachineAccount
......................... MAPLEWAFFLE-WS2 passed test MachineAccount
Starting test: NCSecDesc
......................... MAPLEWAFFLE-WS2 passed test NCSecDesc
Starting test: NetLogons
......................... MAPLEWAFFLE-WS2 passed test NetLogons
Starting test: ObjectsReplicated
......................... MAPLEWAFFLE-WS2 passed test ObjectsReplicated
Starting test: Replications
......................... MAPLEWAFFLE-WS2 passed test Replications
Starting test: RidManager
......................... MAPLEWAFFLE-WS2 passed test RidManager
Starting test: Services
......................... MAPLEWAFFLE-WS2 passed test Services
Starting test: SystemLog
......................... MAPLEWAFFLE-WS2 passed test SystemLog
Starting test: VerifyReferences
......................... MAPLEWAFFLE-WS2 passed test VerifyReferences
Running partition tests on : ForestDnsZones
Starting test: CheckSDRefDom
......................... ForestDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... ForestDnsZones passed test CrossRefValidation
Running partition tests on : DomainDnsZones
Starting test: CheckSDRefDom
......................... DomainDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... DomainDnsZones passed test CrossRefValidation
Running partition tests on : Schema
Starting test: CheckSDRefDom
......................... Schema passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... Schema passed test CrossRefValidation
Running partition tests on : Configuration
Starting test: CheckSDRefDom
......................... Configuration passed test
CheckSDRefDom
Starting test: CrossRefValidation
......................... Configuration passed test
CrossRefValidation
Running partition tests on : corp
Starting test: CheckSDRefDom
......................... corp passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... corp passed test CrossRefValidation
Running enterprise tests on : corp.contoso.com
Starting test: LocatorCheck
......................... corp.contoso.com passed test
LocatorCheck
Starting test: Intersite
......................... corp.contoso.com passed test
Intersite
Kör följande kommando för att köra en serie anslutningstester på en specifik domänkontrollant:
dcdiag /s:<DomainControllerName>
Det bör generera liknande resultat som det lokala testet om inga problem påträffas.
Utdata till en loggfil
DCDiag kan spara utdataresultatet i en textfil genom att köra:
dcdiag /s:<DomainControllerName> /f:<FileName.txt>
Om inget <FilePath>
anges sparas C:\Users\<UserName>\<FileName.txt>
resultatet som standard.
Om du vill spara på en viss plats kör du:
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>