1.3K
Para mantener su Active Directory en la mejor forma, debe verificar periódicamente la replicación entre los controladores de dominio utilizando las herramientas repadmin y dcdiag.
La herramienta de línea de comandos repadmin puede monitorear la replicación, rastrear fallas de replicación entre controladores de dominio y forzar la replicación de datos.
La replicación de Active Directory está completamente automatizada, y la planificación y configuración adecuadas de la arquitectura, los sitios y los programas de replicación de AD casi no requieren la administración manual de la replicación por parte de los administradores del sistema.
En dominios de AD pequeños con varios DC (2-5), la replicación suele ser adecuada. Pero en grandes infraestructuras con decenas y cientos de controladores de dominio, el administrador a menudo tiene que intervenir en el proceso de replicación y corregir errores.
Esta publicación discutirá algunos ejemplos de repadmin relacionados con el monitoreo de la replicación de Active Directory entre controladores de dominio. El ejemplo usará dos controladores de dominio con la siguiente información.
Nombre del servidor | Sitio | subred | Dirección IP | Sistema operativo |
---|---|---|---|---|
DC-CALIFORNIA.theitbros.com | OESTE DE EE. UU. | 10.1.3.0/24 | 10.1.3.4 | Servidor Windows 2019 |
DC-VIRGINIA.theitbros.com | EAS-US | 10.0.2.0/24 | 10.0.2.4 | Servidor Windows 2019 |
Obtener la herramienta Repadmin
La utilidad repadmin en Windows Server 2003 se incluyó en el paquete de herramientas de soporte, que debía descargarse e instalarse manualmente. En Windows Server 2008 R2 y versiones posteriores, la herramienta repadmin se instala automáticamente en el controlador de dominio cuando instala la función ADDS (Active Directory Domain Services).
El repadmin está disponible en las computadoras de escritorio de Windows instalando las herramientas de administración remota del servidor.
Para ver la ayuda y las opciones integradas del comando repadmin, ejecute el siguiente comando en PowerShell o CMD.
repadmin /?
Si desea ayuda con opciones específicas, puede agregar dos puntos seguidos de la opción. Por ejemplo, para ver la ayuda de la opción showattr:
repadmin /?:showattr
Consejo. Para mostrar información detallada en cualquier comando, agregue el argumento /verbose.
Comprobación de la disponibilidad del controlador de dominio y las funciones de replicación
La disponibilidad básica del directorio LDAP en un DC específico se puede verificar ejecutando el comando repadmin /bind. Este comando también muestra las extensiones habilitadas y la información de seguridad.
# Check the localhost (if the localhost is a DC) repadmin /bind # Check the specific DC repadmin /bind <DC Name> # Check all DCs repadmin /bind *
Visualización del estado y el resumen de la replicación
Al verificar el resumen y el estado general de la replicación, la opción favorita es /replsummary.
Nota. Aprenda a cambiar el nombre del dominio de Active Directory.
Para verificar rápidamente el estado de la replicación entre los controladores de dominio, ejecute el siguiente comando:
# Summarize the replication state and relative health of a forest. repadmin /replsummary
Como puede ver, solo existen dos controladores de dominio en este entorno. Según el resultado del resumen, no hay errores de replicación.
Mostrar el estado de la última replicación
El siguiente comando muestra el estado del último intento de replicación por parte de un controlador de dominio. Si sospecha que un controlador de dominio no está recibiendo actualizaciones correctamente, este comando puede ayudarlo a confirmarlo rápidamente.
## Target the DC on the localhost. repadmin /showrepl ## Targets a specific domain controller repadmin /showrepl <DC Name> ## Target all domain controllers repadmin /showrepl *
Como puede ver a continuación, el comando verificó el estado de replicación del DC en el host local porque no se especificó ningún nombre de DC. Según el resultado, los intentos de replicación para todas las particiones fueron exitosos.
Si desea mostrar solo los errores, agregue el argumento /errorsonly.
El cmdlet de PowerShell equivalente a este comando es Get-ADReplicationPartnerMetadata.
# Target a specific DC Get-ADReplicationPartnerMetadata -Target <DC Name>
Visualización de la cola de replicación
En implementaciones grandes, puede notar que algunos controladores de dominio están atrasados con respecto a otros con respecto a la replicación. Ejecutar el comando /queue le muestra si hay solicitudes de replicación entrantes pendientes al DC.
# Queue on the local DC repadmin /queue # Queue on a specific DC repadmin /queue <DC Name> # Queue on all DCs repadmin /queue *
El cmdlet de PowerShell equivalente es Get-ADReplicationQueueOperation.
# Target the local host as the DC Get-ADReplicationQueueOperation -Server localhost # Target a specific DC Get-ADReplicationQueueOperation -Server <DC Name> # Target all DCs (Get-ADDomainController -Filter *).HostName | ` ForEach-Object {Get-ADReplicationQueueOperation -Server $_}
Este cmdlet no devolverá ningún resultado si la cola está vacía.
Recalcular la topología de replicación entrante
Cada DC ejecuta el Comprobador de coherencia de conocimientos (KCC) cada 15 minutos por defecto. El KCC se asegura de que el DC sea consciente de sus vecinos.
Por ejemplo, ejecute el siguiente comando para forzar la ejecución de KCC en cada DC en el sitio ESTE-US.
repadmin /kcc site:EAST-US
El resultado muestra el sitio de AD y el resultado de la verificación de coherencia de cada controlador de dominio en ese sitio.
Forzar la replicación entre dos controladores de dominio
Para forzar la replicación de una partición específica entre DC, puede ejecutar el comando repadmin /replicate.
repadmin /replicate <destination DC> <source DC> <partition>
Por ejemplo, el siguiente comando fuerza la replicación del DC=theitbros,DC=com partición de la DC-VIRGINIA a DC-CALIFORNIA.
repadmin /replicate DC-CALIFORNIA DC-VIRGINIA DC=theitbros,DC=com
Forzar una replicación con todos los socios
El comando repadmin /replicate replica una partición de directorio específica entre un DC de origen y destino especificado, el enfoque más quirúrgico para forzar la replicación. Por otro lado, puede forzar la replicación de un controlador de dominio específico con todos los socios de replicación mediante el comando repadmin /syncall.
Extracción de replicación
Ejecute este comando para iniciar el jalar replicación de todas las particiones (contexto de nomenclatura). Este ejemplo utiliza DC-CALIFORNIA como DC de destino.
repadmin /syncall DC-CALIFORNIA /A /a /d /e
Se utilizan las siguientes banderas:
- /A: sincroniza todas las particiones (contextos de nomenclatura) del servidor especificado.
- /a — Cancelar si el servidor no está disponible.
- /d: muestra los nombres distinguidos (DN) del servidor en lugar del GUID.
- /e: habilitar la replicación entre sitios.
Observe que el objetivo o destino es el DC especificado para cada replicación.
Empuje la replicación
Por el contrario, puede forzar el empujar replicación desde el controlador de dominio específico a todos los socios de replicación agregando el indicador /P al mismo comando. El siguiente ejemplo empuja los datos de replicación de DC-CALIFORNIA a todos.
repadmin /syncall DC-CALIFORNIA /A /a /d /e /P
Notará que esta vez, la fuente de las replicaciones es el controlador de dominio específico, que es DC-CALIFORNIA.
Nota. Consulte nuestra guía sobre cómo usar PsExec para ejecutar comandos de forma remota.
Supervisión de la replicación de Active Directory mediante PowerShell
De todos los comandos que hemos demostrado, repadmin /showrepl es el candidato más probable para la automatización de monitoreo. Muestra información esencial sobre el estado de replicación del servidor y sus socios.
Usaremos este comando para generar un informe que puede mostrar en la pantalla o por correo electrónico.
Copie el código de abajo y guárdelo como Invocar-ADReplicationReport.ps1. También puede descargar este script desde este Esencia.
[cmdletbinding()] param ( [parameter()] [string] $Server, [Parameter()] [hashtable] $EmailReport ) # If no Server is specified, we will use the local computer. if (-not($Server)) { $Server = $env:COMPUTERNAME } $replStatus = $( repadmin /showrepl $Server /csv | ConvertFrom-Csv | Select-Object ` @{n = 'From'; e = { "$($_.'Source DSA Site')$($_.'Source DSA')" } }, @{n = 'To'; e = { "$($_.'Destination DSA Site')$($_.'Destination DSA')" } }, @{n = 'Partition'; e = { "$($_.'Naming Context')" } }, @{n = 'FailureCount'; e = { "$($_.'Number of Failures')" } }, @{n = 'LastFailureStatus'; e = { "$($_.'Last Failure Status')" } }, @{n = 'LastFailureTime'; e = { "$($_.'Last Failure Time')" } }, @{n = 'LastSuccessTime'; e = { "$($_.'Last Success Time')" } } ) if (-not($EmailReport)) { return } $head = @' <style> h1 { font-family: "Arial Black", arial, sans-serif; } table { font-family: Consolas, Tahoma, arial, sans-serif; border-collapse: collapse; /* width: 100%; */ } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; } </style> '@ $htmlSplat = @{ Title="Active Directory Replication Health PreContent = "<H1>Active Directory Replication Health</H1><p>" Head = $head } Send-MailMessage @EmailReport -Body $(($replStatus | ConvertTo-Html @htmlSplat) -join "`n")
Mostrar el informe en la pantalla
Para ejecutar este script, abra PowerShell y ejecútelo sin un parámetro.
# Display the replication status of the local DC and its partners. .Invoke-ADReplicationReport.ps1
# Display the replication status of the specified DC and its partners. .Invoke-ADReplicationReport.ps1 -Server DC-VIRGINIA
# Display the replication status of all DCs. .Invoke-ADReplicationReport.ps1 -Server *
Enviar el informe como un correo electrónico
Puede ejecutar el siguiente comando si desea recibir el informe por correo electrónico. Asegúrese de actualizar los parámetros de correo electrónico. El parámetro email acepta los mismos parámetros que el Enviar mensaje de correo cmdlet.
# Generate the replication report of all DCs and send it via email # define the email parameters $emailReport = @{ SmtpServer="mail.theitbros.com" From = 'monitoring@theitbros.com' To = 'alpha@theitbros.com' Subject="Active Directory Replication Health" BodyAsHTML = $true } # Generate the report and send it via email .Invoke-ADReplicationReport.ps1 -Server * -EmailReport $emailReport
Y recibirás un informe similar en tu buzón.
Resumen
¡Eso es todo! Hemos cubierto los conceptos básicos del uso de repadmin para monitorear el estado de replicación de Active Directory. Hemos aprendido las diferentes opciones, indicadores y algunos de sus equivalentes de PowerShell.
También creamos un script simple que genera el informe de replicación de AD que se puede mostrar en la pantalla o enviar por correo electrónico. Puede ejecutar este script como una tarea programada para que no necesite ejecutarlo manualmente para el monitoreo.