Dcdiag
Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe
analiza el estado de los controladores de dominio (DC) en un bosque o empresa e informa de cualquier problema que le ayude a solucionar problemas. Como programa de informes de usuarios finales, DCDiag es una herramienta de línea de comandos que encapsula conocimientos detallados sobre cómo identificar el comportamiento anómalo en el sistema.
De forma predeterminada, DCDiag está disponible fácilmente si ha iniciado sesión en un controlador de dominio. Un método alternativo para acceder a DCDiag es instalar las Herramientas de administración remota del servidor (RSAT) en el dispositivo. DCDiag debe ejecutarse con derechos administrativos desde un símbolo del sistema con privilegios elevados (CMD) o PowerShell.
DCDiag consta de un marco para ejecutar pruebas y una serie de pruebas para comprobar diferentes áreas funcionales del sistema. Este marco selecciona qué controlador de dominio se prueba según las directivas de ámbito del usuario, como empresa, sitio o servidor único. Probar la conectividad general y la capacidad de respuesta del controlador de dominio incluye la comprobación:
- El controlador de dominio se puede ubicar en DNS.
- El controlador de dominio responde a pings del Protocolo de mensajes de control de Internet (ICMP)
- El controlador de dominio permite la conectividad del Protocolo ligero de acceso a directorios (LDAP) mediante el enlace a la instancia.
- El controlador de dominio permite enlazar a la interfaz RPC de AD mediante la función DsBindWithCred.
Nota:
Bloquear ICMP impide que DCDiag funcione según lo previsto. Aunque se recomienda bloquear ICMP en el borde de Internet de la red, el bloqueo interno del tráfico ICMP provoca problemas administrativos que interrumpen las directivas de grupo heredadas, la detección de enrutadores de agujero negro o tamaños MTU ineficaces debido a la falta de una opción de detección. Las herramientas de solución de problemas como ping.exe
o tracert.exe
también se ven afectadas.
Sintaxis DCDiag
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 usa los parámetros siguientes:
Parámetro | Descripción |
---|---|
/s:<DomainController> |
Especifica el nombre del servidor en el que se va a ejecutar el comando. Si no se especifica este parámetro, las pruebas se ejecutan en el controlador de dominio local. Este parámetro se omite para las pruebas DcPromo y RegisterInDns, que solo se pueden ejecutar localmente. |
/n:<NamingContext> |
Usa NamingContext como contexto de nomenclatura para probar. Puede especificar dominios en el formato de NetBIOS, del Sistema de nombres de dominio (DNS) o de nombre distintivo. |
/u:<Domain> \<UserName> /p:{<Password> | ""} |
Uses Domain\UserName. DCDiag usa las credenciales actuales del usuario (o proceso) que ha iniciado sesión. Si se necesitan credenciales alternativas, use las siguientes opciones para proporcionar esas credenciales para el enlace con contraseña como contraseña: use comillas ("") para una contraseña vacía o nula. Use el carácter comodín (*) para solicitar la contraseña. |
/a | Prueba todos los servidores de este sitio de AD DS. |
/e | Prueba todos los servidores de la empresa. Esto invalida /a . |
/q | Discreto. Solo imprime los mensajes de error. |
/v | Detallado. Imprime información adicional. |
/fix | Afecta solo a la prueba MachineAccount. Este parámetro hace que la prueba corrija los nombres de entidades de seguridad de servicio (SPN) en el objeto Cuenta de máquina del controlador de dominio. |
/f:<LogFile> |
Redirige toda la salida a un archivo de registro. |
/C | Completo. Ejecuta todas las pruebas excepto DCPromo y RegisterInDNS, incluidas las pruebas no predeterminadas. Opcionalmente, puede usar este parámetro con el parámetro /skip para omitir las pruebas especificadas.Las siguientes pruebas no se ejecutan de forma predeterminada:
|
/h o /? | Muestra la ayuda en el símbolo del sistema. |
/test:<Test> |
Ejecuta solo esta prueba. La prueba de conectividad no se puede omitir con el parámetro /skip . |
/ReplSource:<SourceDomainController> |
Comprueba la conexión entre el controlador de dominio en el que se ejecuta el comando y el controlador de dominio de origen. (Este parámetro se usa para la prueba CheckSecurityError). SourceDomainController es el nombre DNS, el nombre NetBIOS o el nombre distintivo de un servidor real o potencial que será el controlador de dominio de origen para la replicación, tal como lo representa un objeto de conexión real o potencial. |
Pruebas conocidas de DCDiag
En la tabla siguiente se muestran las pruebas conocidas que se ejecutan de forma predeterminada a menos que se especifique lo contrario.
Prueba | Descripción |
---|---|
Publicidad | Comprueba si cada controlador de dominio se anuncia en los roles que debe ser capaz de realizar. Esta prueba valida que la función pública DsGetDcName que usan los equipos para buscar controladores de dominio localizará correctamente los controladores de dominio. Esta prueba produce un error si el servicio Netlogon se ha detenido o no se ha podido iniciar. Si se detiene el servicio Clave de distribución de claves (KDC), se produce un error en la prueba de publicidad, ya que la marca devuelta desde DsGetDcName no incluirá KDC. Si el puerto 88 a través de TCP y UDP está bloqueado en un firewall, la prueba de publicidad pasará a pesar de que el KDC no pueda responder a las solicitudes de vales Kerberos. |
CheckSDRefDom | Comprueba que todas las particiones del directorio de aplicaciones tienen dominios de referencia de descriptores de seguridad adecuados. Esta prueba usa LDAP y valida objetos de referencia cruzada ubicados en cn=partitions,cn=configuration,dc=<dominio raíz del bosque>contienen los nombres de dominio correctos en sus atributos de msDS-SDReferenceDomain. |
CheckSecurityError | La prueba no se ejecuta de forma predeterminada. Realiza varias comprobaciones de seguridad para los errores relacionados con los componentes de seguridad del controlador de dominio, como problemas con la directiva de seguridad o la base de datos de seguridad mediante LDAP, RPC, RPC a través de SMB e ICMP. Comprueba:
Cuando se agrega el parámetro /ReplSource, el asociado también comprueba lo siguiente:
|
Conectividad | Comprueba que las DSA y DNS están registradas y accesibles mediante LDAP y RPC. |
CrossRefValidation | Recupera una lista de contextos de nomenclatura ubicados en cn=partitions,cn=configuration,dc=<dominio de raiz del bosque> con sus referencias cruzadas y, a continuación, los valida de forma similar a la prueba CheckSDRefDom mediante LDAP. Esta prueba examina los atributos nCName, dnsRoot, nETBIOSName y systemFlags para:
|
CutoffServers | Prueba la replicación de AD para asegurarse de que no hay controladores de dominio sin objetos de conexión entre asociados. Los servidores que no se pueden replicar entrantes o salientes desde ningún DCs se consideran "cortados" mediante la función DsReplicaSyncAll, que desencadena la replicación en los controladores de dominio. Use el /e parámetro con precaución si hay vínculos WAN mal implementados que se mantienen limpios mediante programaciones. Si no se puede ponerse en contacto con un servidor o no está disponible para LDAP en la red, no proporciona ningún error ni resultados de prueba, incluso si se especifica el parámetro /v . Esta prueba usa RPC. |
DcPromo | Comprueba el servidor especificado en la configuración DNS del cliente si la infraestructura cumple los requisitos necesarios para promover el dispositivo a un controlador de dominio. Esta prueba usa DNS en la red y comprueba:
Se requieren los argumentos siguientes:
|
DFSREvent | Esta prueba valida el estado del servicio Replicación del sistema de archivos distribuido (DFSR) comprobando la advertencia del registro de eventos DFSR y las entradas de error de las últimas 24 horas. Esta prueba usa RPC y EventLog Remoting Protocol. |
DNS | Prueba las comprobaciones de estado de DNS de toda la empresa mediante protocolos DNS, RPC y WMI. No se ejecutó de forma predeterminada y debe solicitarse explícitamente. Vea sintaxis DNS. |
FrsEvent | Comprueba si hay errores en el registro de eventos del Servicio de replicación de archivos (FRS) de las últimas 24 horas, ya que la replicación con errores del recurso compartido SysVol puede causar problemas de directiva. Esta prueba usa RPC y EventLog Remoting Protocol. |
Intersite | Comprueba si hay errores que impedirían o almacenarían temporalmente la replicación entre sitios y predice cuánto tiempo tardaría el KCC en recuperarse. Esta prueba usa funciones de DRS para comprobar si hay condiciones que impedirían la replicación de AD entre sitios dentro de un sitio específico o todos los sitios mediante:
El parámetro /a o /e debe usarse, ya que no proporcionar un sitio permitiría que la prueba se ejecute, pero omita las pruebas reales. Esta prueba usa RPC a través de la red para probar los aspectos de replicación y pide a las conexiones del Registro que comprueben si hay entradas de invalidación de NTDS. LDAP también se usa para buscar información de conexión. |
KccEvent | Esta prueba consulta el KCC en el controlador de dominio para ver si hay errores y advertencias generados en el registro de eventos de Servicios de directorio durante los últimos 15 minutos. El umbral de 15 minutos es independientemente del valor del Registro del período de actualización de la topología Repl (s) en el controlador de dominio. Si las reglas de firewall están causando un error en esta prueba, vea KB2512643 que abarca la habilitación de esas reglas para permitir que la prueba se realice correctamente. Esta prueba usa RPC junto con el protocolo de comunicación remota de EventLog. |
KnowsOfRoleHolders | Esta prueba devuelve el conocimiento de los controladores de dominio de los cinco roles de operación maestra única flexible (FSMO), pero no comprueba todos los conocimientos de controladores de dominio para obtener coherencia. El uso del /e parámetro proporciona datos para la comparación. Esta prueba usa RPC para devolver DSListRoles dentro de las funciones del Servicio de replicación de directorios (DRS). |
MachineAccount | Comprueba si la cuenta del equipo se ha registrado correctamente y que los servicios se anuncian mediante LDAP y RPC a través de SMB, incluida la comprobación:
Esta prueba también tiene dos opciones de reparación:
|
NCSecDesc | Comprueba los permisos en todos los contextos de nomenclatura (como Esquema, Configuración, etc.) en el controlador de dominio de origen para validar que la replicación y la conectividad funcionan entre controladores de dominio. Se asegura de que controladores de dominio de empresa y administradores de grupos tengan los permisos mínimos correctos, que es la misma prueba realizada en CheckSecurityError. Esta prueba usa LDAP. |
NetLogons | Valida que el usuario que ejecuta DCDiag puede conectarse y leer los recursos compartidos SYSVOL y NETLOGON sin errores de seguridad. También comprueba que los administradores de, usuarios autenticadosy todos losgrupos tienen el acceso a este equipo desde la redde privilegios en el controlador de dominio. |
ObjectsReplicated | Comprueba que se han replicado los objetos Cuenta de máquina y Agente de servicio de directorio (DSA). De forma predeterminada, se validan dos objetos y existen en cada controlador de dominio y están actualizados en todos los demás controladores de dominio:
Puede usar el parámetro /objectdn:dn con el parámetro /n:nc para especificar un objeto adicional que se va a comprobar. Esta prueba se realiza mediante RPC con funciones DRS. |
OutboundSecureChannels | Esta prueba no se ejecuta de forma predeterminada. Comprueba que existen canales seguros de todos los controladores de dominio del dominio en los dominios especificados por el parámetro /testdomain . El parámetro /nositerestriction impide que DCDiag limite la prueba a los controladores de dominio del sitio. |
RegisterInDNS | Comprueba si el servidor de directorios puede registrar los registros DNS del localizador de servidores de directorios. Estos registros deben estar presentes en DNS para que otros equipos busquen este servidor de directorios para el dominio de <Active_Directory_Domain_DNS_Name>. Esto también informa si se requieren modificaciones en la infraestructura DNS existente. Se debe usar el parámetro /DnsDomain :<Active_Directory_Domain_DNS_Name>. Esta prueba comprueba:
|
Replicaciones | Esta prueba comprueba todos los objetos de conexión de replicación de AD para todos los contextos de nomenclatura en los controladores de dominio especificados si:
|
RidManager | Comprueba si el identificador relativo (RID) maestro es accesible y si:
El titular del rol debe estar en línea y accesible para que los controladores de dominio puedan crear entidades de seguridad (usuarios, equipos y grupos), así como para que se promuevan más controladores de dominio dentro de un dominio. Esta prueba usa LDAP y RPC. |
Servicios | Esta prueba valida que varios servicios dependientes de AD se ejecutan, son accesibles y se establecen en tipos de inicio específicos. Estos servicios se inician automáticamente y se ejecutan en un proceso compartido a menos que se especifique lo contrario:
Estos nombres de servicio se enumeran en la ruta de acceso del registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Esta prueba usa RPC y el protocolo remoto de Service Control Manager. |
SysVolCheck | Esta prueba lee los controladores de dominio Netlogon SysVolReady clave del registro para validar que SYSVOL está listo. El nombre del valor debe existir con un valor de 1 para pasar esta prueba y funciona con SYSVOLs replicados de FRS o DFSR. No comprueba si los recursos compartidos SYSVOL y NELOGON son accesibles, ya que lo realiza CheckSecurityError. Esta prueba usa RPC a través de SMB. |
SystemLog | Valida el estado del registro de eventos del sistema leyendo y escribiendo entradas de los últimos 60 minutos para cualquier error y advertencia. Esta prueba usa RPC y el protocolo remoto de Service Control Manager. |
Topología | Comprueba que la topología de replicación de AD generada está totalmente conectada para todas las DSA. Esta prueba no se realiza de forma predeterminada y se debe ejecutar explícitamente. Comprueba:
Esta prueba usa RPC, LDAP y DsReplicaSyncAll con la marca DS_REPSYNCALL_DO_NOT_SYNC, lo que significa que analiza y valida la topología de replicación sin replicar realmente los cambios. Esta prueba no valida la disponibilidad de los asociados de replicación. Tener un asociado sin conexión no provocará errores en esta prueba. Tampoco prueba si la programación está cerrada, lo que impide la replicación. Para ver esos resultados de replicación activa, use pruebas Replicaciones o CutoffServers. |
VerifyEnterpriseReferences | Comprueba que las referencias del sistema especificadas están intactas para FRS y para la infraestructura de replicación en todos los objetos de la empresa en cada controlador de dominio. Esto incluye los siguientes atributos y objetos de sitio de controlador de dominio:
Las dos pruebas de \DFSR solo se realizan si el nivel funcional del dominio es Windows Server 2008 o superior. Esto significa que habrá un error esperado si DFSRno se ha migrado a SYSVOL. Esta prueba usa LDAP y solo se contactan los controladores de dominio especificados. |
VerifyReferences | Comprueba que ciertas referencias del sistema están intactas para FRS y la infraestructura de replicación. Esta prueba comprueba los atributos de referencia del equipo para un único controlador de dominio, incluidos los siguientes atributos y objetos del sitio de controlador de dominio:
Esta prueba usa LDAP y es similar a la VerifyEnterpriseRefrences prueba, excepto que no comprueba las referencias cruzadas de particiones ni todos los demás objetos de controlador de dominio. |
VerifyReplicas | Comprueba que se han creado instancias de todas las particiones del directorio de aplicaciones en todos los servidores de réplicas. Comprueba que el servidor especificado hospeda las particiones de aplicación especificadas por sus atributos de referencia cruzada en el contenedor de particiones. Funciona como CheckSDRefDom, salvo que no muestra los datos de salida y valida el hospedaje. Esta prueba usa LDAP. |
Nota:
Las comprobaciones de conectividad en los controladores de dominio registrados en la red y que se conectan con otros recursos como DNS, LDAP y RPC no se pueden omitir.
Sintaxis DNS
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]
La prueba de DNS utiliza los parámetros siguientes:
Parámetro | Descripción |
---|---|
/test:DNS | Realiza la prueba de DNS especificada. Si no se especifica ninguna prueba, el valor predeterminado es /DnsAll . |
/DnsBasic | Realiza pruebas básicas de DNS, incluida la de conectividad de red, la configuración del cliente DNS, la disponibilidad del servicio y la existencia de zonas. |
/DnsForwarders | Realiza las pruebas /DnsBasic y también comprueba la configuración de los reenviadores. |
/DnsDelegation | Realiza las pruebas /DnsBasic y también comprueba si hay delegaciones adecuadas. |
/DnsDynamicUpdate | Realiza las pruebas /DnsBasic y también determina si la actualización dinámica está habilitada en la zona de Active Directory. |
/DnsRecordRegistration | Realiza las pruebas /DnsBasic y también comprueba si se han registrado los registros de recursos de dirección (A), nombre canónico (CNAME) y servicio conocido (SRV). Además, crea un informe de inventario basado en los resultados de la prueba. |
/DnsResolveExtName [/DnsInternetName:\<InternetName> ] |
Realiza las pruebas /DnsBasic e intenta también resolver InternetName. Si /DnsInternetName no se especifica, intenta resolver el nombre <www.microsoft.com>. Si /DnsInternetName se especifica, intenta resolver el nombre de Internet proporcionado por el usuario. |
/DnsAll | Realiza todas las pruebas, excepto la prueba /DnsResolveExtName , y genera un informe. |
/f:<LogFile> |
Redirige toda la salida a un archivo de registro. |
/s:<DomainController> |
Ejecuta las pruebas en el controlador de dominio. Si no se especifica este parámetro, las pruebas se ejecutan en el controlador de dominio local. |
/e | Ejecuta todas las pruebas especificadas por /test:DNS en todos los controladores de dominio del bosque de Active Directory. |
/v | Detallado. Presenta información ampliada sobre los resultados de pruebas correctas, además de información sobre errores y advertencias. Cuando no se usa el parámetro /v , solo proporciona información sobre errores y advertencias. Use el modificador /v cuando se notifiquen errores o advertencias en la tabla de resumen. |
/x:<XMLLog.xml> |
Redirige toda la salida a xmllog.xml. Este parámetro solo funciona con la opción /test:DNS . |
/xsl:<XSLFile.xsl> o /xsl: <XSLTFile.xslt> |
Agrega las instrucciones de procesamiento que hacen referencia a la hoja especificada. Este parámetro solo funciona con la opción /test:DNS /x:<XMLLog.xml . |
Nota
Los tiempos de ejecución de las pruebas de DNS pueden ser significativos en grandes empresas cuando se usa el parámetro /e
. Los controladores de dominio y los servidores DNS sin conexión aumentarán los tiempos de ejecución debido a los largos períodos de tiempo de espera para RPC y otros protocolos.
Ejemplos
Prueba de conectividad
Para ejecutar una serie de pruebas de conectividad en el dominio local, ejecute el siguiente comando:
dcdiag
Una salida de prueba de conectividad correcta:
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
Para ejecutar una serie de pruebas de conectividad en un controlador de dominio específico, ejecute el siguiente comando:
dcdiag /s:<DomainControllerName>
Debe generar resultados similares a la prueba local si no se encuentra ningún problema.
Salida a un archivo de registro
DCDiag puede guardar los resultados de salida en un archivo de texto mediante la ejecución de:
dcdiag /s:<DomainControllerName> /f:<FileName.txt>
Si no se especifica ningún <FilePath>
, los resultados se guardan en C:\Users\<UserName>\<FileName.txt>
de forma predeterminada.
Para guardar en una ubicación específica, ejecute:
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>