Está en la página 1de 8

DcDiag “LA” herramienta de diagnóstico para

nuestros controladores de dominio de nuestra


arquitectura de Active Directory

Hoy vamos a hablar de una herramienta fundamental para nuestra Arquitectura de Directory
Services (Active Directory). Esta herramienta de línea de comandos se incluye al instalar el
Support Tools de Windows Server 2003 y en Windows Server 2008 viene instalado.
Que hacemos con DCDiag, con esta herramienta de línea de comandos podemos analizar el
estado de nuestros controladores de dominio en un bosque o empresa y el informe que genera
nos ayudara a solucionar los problemas.
Dcdiag ejecuta una serie de pruebas para verificar distintas áreas funcionales de nuestros
DCs, en un marco, en el cual selecciona qué controladores de dominio son probados de
acuerdo con las directivas de alcance que definimos. Esta herramienta no tienen ninguna
interfaz de usuario (IU).
Debemos tener en cuenta que todos los controladores de dominio de un mismo dominio son
iguales entre sí y cualquier controlador de dominio puede realizar las actualizaciones de
directorio.
Sin embargo, dada la forma en que las actualizaciones del directorio se replican desde un
controlador de dominio a otro, es posible que pueden surgir dificultades. Por ejemplo, si los
controladores de dominio necesarios no están conectados por una topología de replicación,
los controladores de dominio adecuados no recibirán las actualizaciones del directorio cuando
se produce la replicación.
También, para que (Domain Controller) Locator encuentre un controlador de dominio, debe
tener información precisa para que poder localizar correctamente el recurso. Si un
controlador de dominio se anuncia incorrectamente, el localizador no lo encontrara.
Incluso podemos chequear nuestros DNS (esto desde Windows Server 2003 SP1), hay siete
pruebas nuevas relacionadas con DNS que se pueden ejecutar de forma individual o
simultánea. Estas pruebas se pueden realizar en uno o en todos los controladores de dominio
de un bosque de Active Directory. Una vez completadas las pruebas, DCDiag.exe presenta un
resumen de los resultados con información detallada sobre cada controlador de dominio
probado. Por ejemplo:
o DCDIAG /TEST:DNS para validar el estado de DNS.
o DCDIAG /CheckSecurityError para detectar configuraciones de seguridad que
pueden ocasionar que la réplica de Active Directory tenga errores.
Por ejemplo, si queremos chequear con ésta herramienta es que el DC haya registrado
correctamente en los DNS los registros necesarios para que sea reconocido y anunciado en el
Active Directory como un DC válido, debemos ejecutar lo siguiente:

o dcdiag /test:registerindns /dnsdomain:FQDN /v

La sintaxis de este comando es la siguiente:

dcdiag/s:DomainController [/n:NamingContext]
[/u:Domain\UserName /p:{* | Password | ""}] [{/a | /e}] [{/q| /v}]
[/i] [/f:LogFile] [/ferr:ErrLog] [/c [/skip:Test]] [/test:Test] [/fix]
[{/h | /?}] [/ReplSource:SourceDomainController]
Parameters
o /s:DomainController : Uses DomainController as the home server. This parameter is
required. It is ignored for DcPromo and RegisterInDns tests which can only be run locally.
o /n:NamingContext : Uses NamingContext as the naming context to test. Domains may be
specified in NetBIOS, DNS or distinguished name format.
o /u:Domain\UserName /p:{* | Password | ""} : Uses Domain\UserNameDCDiag uses the
process’s or users default credentials. If alternate credentials are needed, use the
following options to provide those credentials for binding with Password as the password.
Use "" for an empty or null password, or the wildcard character (*) to prompt for the
password.
o /a : Tests all the servers on this site.
o /e : Tests all the servers in the entire enterprise. Overrides /a.
o /q : Quiet. Prints only error messages.
o /v : Verbose. Prints extended information.
o /i : Ignores superfluous error messages.
o /fix : Only affects the MachineAccount test. It causes the test to fix the SPNs (Service
Principal Names) on the domain controller’s Machine Account Object.
o /f:LogFile : Redirects all output to LogFile. The /f parameter operates independently
of/ferr.
o /ferr:ErrLog : Redirects fatal error output to a separate file ErrLog. The /ferr parameter
operates independently of /f.
o /c : Comprehensive. Runs all tests except DCPromo and RegisterInDNS, including non-
default tests. Optionally, can be used with /skip to skip specified tests. The following
tests are not run by default: TopologyCutoffServersOutboundSecureChannels
o { /h | /?} :Displays a syntax screen at the command prompt.
o /test:Test : Runs only this test. The nonskippable test Connectivity is also run. Should not
be run in the same command with /skip.
* All tests except DcPromo and RegisterInDNS must be run on computers that have been
promoted to domain controller.
* The test CheckSecurityError is available only in the version of Dcdiag that is included
with Windows Support Tools in Windows Server 2003 Service Pack 1 (SP1) and must be run
on a domain controller that is running Windows Server 2003 with SP1.
o /ReplSource:SourceDomainController : Option for /test:CheckSecurityError. Tests the
connection between the domain controller on which you run the command and the source
domain controller. SourceDomainController is the DNS name, NetBIOS name, or
distinguished name of a real or potential "from" server that is represented by a real or
potential connection object.

El parámetro CheckSecurityError se puede realizar en uno o en todos los controladores


de dominio de un bosque de Active Directory, y realiza las siguientes operaciones:
o Comprueba la disponibilidad de un Centro de distribución de claves (KDC) en los dominios
de los controladores de dominio de origen y destino.
o Comprueba que el controlador de dominio de destino puede transmitir y recibir paquetes
con formato UDP suficientemente grandes (que utiliza Kerberos).
o Comprueba que el reloj del sistema del controlador de dominio de destino no tiene una
diferencia de más de 5 minutos respecto de la hora del sistema del KDC en el dominio de
destino y origen, y el controlador de dominio de origen.
o Confirma que la raíz de cada contexto de asignación de nombres del controlador de
dominio de origen está configurada con el permiso necesario.
o Confirma que las cuentas de equipo de los controladores de dominio de origen y destino no
están deshabilitadas, son de confianza para la delegación y contienen todos los nombres
principales de servicio requeridos.
Una vez terminada la prueba, DCDiag.exe presenta el resumen de los resultados de cada
controlador de dominio probado y el diagnóstico de los errores de seguridad encontrados. La
línea de comando seria: Dcdiag /test:CheckSecurityError
La lista de test que podemos hacer es bastante extensa, el único test que no puede ser
evitado es el de conectividad, el resto si. La lista seria la siguiente:
o Connectivity o ObjectsReplicated
o Replications o frssysvol
o NCSecDesc o frsevent
o NetLogons o kccevent
o Advertising o systemlog
o KnowsOfRoleHolders o CheckSDRefDom
o Intersite o VerifyReplicas
o FSMOCheck o CrossRefValidation
o RidManager o VerifyReferences
o MachineAccount o VerifyEnterpriseReferences
o Services o /skip:Test
o OutboundSecureChannels

Los test que no se ejecutan por defecto son:


Topology OutboundSecureChannels
CheckSecurityError VerifyReplicas
CutoffServers VerifyEnterpriseReferences
DNS
o /DnsBasic
o /DnsForwarders
o /DnsDelegation
o /DnsDymanicUpdate
o /DnsRecordRegistration
o /DnsResolveExtName
Y los Non-Domain Controller tests:
o DcPromo
o RegisterInDNS
Algunos ejemplos para verificar nuestros DNS podrían ser:
o Para ejecutar todas las pruebas de DNS en un único controlador de dominio en modo no
detallado: Dcdiag /test:DNS /s:nombreDeControladorDeDominioDeDestino

/f:nombreDeArchivoDeRegistro
o Para ejecutar todas las pruebas de DNS en un único controlador de dominio en modo
detallado: Dcdiag /test:DNS /s:nombreDeControladorDeDominioDeDestino

/v /f:nombreDeArchivoDeRegistro
o Para ejecutar todas las pruebas de DNS en todo el bosque en modo no detallado:

Dcdiag /test:DNS /e /f:nombreDeArchivoDeRegistro


o Para ejecutar todas las pruebas de DNS en todo el bosque en modo detallado:

Dcdiag /test:DNS /v /e /f:nombreDeArchivoDeRegistro


o Para ejecutar la prueba básica de DNS en un único controlador de dominio:

Dcdiag /test:DNS /DnsBasic


/s:nombreDeControladorDeDominioDeDestino
/f:nombreDeArchivoDeRegistro
o Para ejecutar la prueba de reenviadores de DNS en un único controlador de dominio:

Dcdiag /test:DNS /DnsForwarders


/s:nombreDeControladorDeDominioDeDestino
/f:nombreDeArchivoDeRegistro
o Para ejecutar la prueba de delegación de DNS en un único controlador de dominio:

Dcdiag /test:DNS /DnsDelegation


/s:nombreDeControladorDeDominioDeDestino
/f:nombreDeArchivoDeRegistro
o Para ejecutar la prueba de actualización dinámica de DNS en un único controlador de
dominio:

Dcdiag /test:DNS /DnsDynamicUpdate


/s:nombreDeControladorDeDominioDeDestino
/f:nombreDeArchivoDeRegistro
o Para ejecutar la prueba de inscripción de registros de DNS en un único controlador de
dominio: Dcdiag /test:DNS /DnsRecordRegistration

/s:nombreDeControladorDeDominioDeDestino
/f:nombreDeArchivoDeRegistro
o Para resolver un nombre de Internet o intranet de ejemplo:

Dcdiag /test:DNS /DnsResolveExtName


/DnsInternetName:nombreDeInternet /f: nombreDeArchivoDeRegistro
Si ejecutamos esta herramienta en un DC normal, deberíamos tener la siguiente
salida: dcdiag /s:SRVDC1 \administrator password

Domain Controller Diagnosis


Performing initial setup:
Done gathering initial info.
Doing initial required tests
Testing server: Default-First-Site-Name\SRVDC1
Starting test: Connectivity
……………………. SRVDC1 passed test Connectivity
Doing primary tests
Testing server: Default-First-Site-Name\SRVDC1
Starting test: Replications
……………………. SRVDC1 passed test Replications
Starting test: NCSecDesc
……………………. SRVDC1 passed test NCSecDesc
Starting test: NetLogons
……………………. SRVDC1 passed test NetLogons
Starting test: Advertising
……………………. SRVDC1 passed test Advertising
Starting test: KnowsOfRoleHolders
……………………. SRVDC1 passed test KnowsOfRoleHolders
Starting test: RidManager
……………………. SRVDC1 passed test RidManager
Starting test: MachineAccount
……………………. SRVDC1 passed test MachineAccount
Starting test: Services
……………………. SRVDC1 passed test Services
Starting test: ObjectsReplicated
……………………. SRVDC1 passed test ObjectsReplicated
Starting test: frssysvol
……………………. SRVDC1 passed test frssysvol
Starting test: kccevent
……………………. SRVDC1 passed test kccevent
Starting test: systemlog
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 01:28:25
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 01:40:30
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 01:43:30
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 01:58:46
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 02:02:11
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 02:05:11
Event String: The time provider NtpClient is configured
to
An Error Event occured. EventID: 0xC25A001D
Time Generated: 2/10/2012 02:10:51
Event String: The time provider NtpClient is configured
to
……………………. SRVDC1 failed test systemlog
Running partition tests on : Schema
Starting test: DeadCRTest
……………………. Schema passed test DeadCRTest
Starting test: CheckSDRefDom
……………………. Schema passed test CheckSDRefDom
Running partition tests on : Configuration
Starting test: DeadCRTest
……………………. Configuration passed test DeadCRTest
Starting test: CheckSDRefDom
……………………. Configuration passed test CheckSDRefDom
Running partition tests on : RADIANS-DOM
Starting test: DeadCRTest
……………………. RADIANS-DOM passed test DeadCRTest
Starting test: CheckSDRefDom
……………………. RADIANS-DOM passed test CheckSDRefDom
Running enterprise tests on : RADIANS-DOM.radians.com.ar
Starting test: Intersite
……………………. RADIANS-DOM.radians.com.ar passed test Intersite
Starting test: FsmoCheck
……………………. RADIANS-DOM.radians.com.ar passed test FsmoCheck

Algún error de los roles FSMO podría ser:


Starting test: FsmoCheck
Warning: DcGetDcName(GC_SERVER_REQUIRED) call failed, error
1717
A Global Catalog Server could not be located – All GC’s are
down.
Warning: DcGetDcName(PDC_REQUIRED) call failed, error 1717
A Primary Domain Controller could not be located.
The server holding the PDC role is down.
Warning: DcGetDcName(TIME_SERVER) call failed, error 1717
A Time Server could not be located.
The server holding the PDC role is down.
Warning: DcGetDcName(GOOD_TIME_SERVER_PREFERRED) call failed,
error 1717
A Good Time Server could not be located.
Warning: DcGetDcName(KDC_REQUIRED) call failed, error 1717
A KDC could not be located – All the KDCs are down.
……………………. RADIANS-DOM.radians.com.ar failed test FsmoCheck

También tenemos disponibles algunos fixes, como ser (si es que no tenemos el SP1 en
Windows Server 2008):
o KB2401600 The Dcdiag.exe VerifyReferences test fails on an RODC that is running Windows
Server 2008 R2
o KB979294 The Dcdiag.exe tool takes a long time to run in Windows Server 2008 R2 and in
Windows 7
o KB978387 FIX: The connectivity test that is run by the Dcdiag.exe tool fails together with
error code 0×621
En definitiva, esta herramienta es sumamente importante para los diagnósticos, y
fundamentalmente para los administradores de DNS y para los administradores de
controladores de dominio. Incluye funciones de réplica para identificar configuraciones de
seguridad que pueden hacer que la réplica de Active Directory tenga errores. Y no debemos
dejarla de lado, ya que cuando realmente tengamos un problema grave, esta herramienta
será nuestro principal aliado para arreglarlo.

También podría gustarte