Forzar la replicación entre dos controladores de dominio en Active Directory
Imagina tener una sola puerta en tu casa. Sin ventanas, sin puerta de patio, sólo una puerta. Qué pasa si no puedes abrir esa puerta? La casa, y todo lo que hay en ella, no te sirve.
Un controlador de dominio es como una puerta, en cierto sentido. Una con un portero en ella. Es la puerta para entrar a las cosas que quieres. Active Directory (AD) es el portero en la puerta. Comprueba tus credenciales, determina si se te permite pasar por la puerta y a qué recursos puedes acceder una vez dentro.
Si tienes una red de cualquier tipo y sólo tienes un controlador de dominio, estás viviendo en una casa con una sola puerta. Si algo le pasa a ese controlador de dominio, todo tu sistema de servidores se viene abajo. Ten siempre más de un controlador de dominio (DC).
¿Pero cómo te aseguras de que ambos controladores de dominio tienen la misma información? Digamos que usted hizo un cambio relacionado con la seguridad en un DC. Quiere asegurarse de que ese cambio se replique en sus otros DCs inmediatamente. ¿Por qué esperar 15 minutos o más para que se produzca por la programación? Necesitas forzar la replicación de los controladores de dominio en Active Directory.
Hay 3 maneras de abordar esto; a través de la interfaz gráfica de usuario (GUI), a través de la interfaz de línea de comandos (CLI), o a través de PowerShell.
Forzar la replicación del controlador de dominio a través de GUI
Los servidores de Windows hacen uso de GUIs mucho, lo cual es bueno para los administradores de sistemas novatos. Es más fácil de aprender y a veces te ayuda a visualizar lo que realmente está pasando.
- Entra en uno de tus DCs y abre Sitios y Servicios de Directorio Activo.
- Navega hasta el sitio para el que te gustaría replicar los controladores de dominio. Despliéguelo haciendo clic en la punta de flecha junto al nombre del sitio. Expanda los Servidores. Expanda el DC que desea replicar. Haga clic en Configuración del NTDS.
- En el panel derecho, haga clic con el botón derecho en el servidor y seleccione Replicar ahora.
- Dependiendo de cuántos DCs haya, esto podría llevar desde menos de un segundo hasta unos minutos. Cuando se complete, verá la notificación «Los servicios de dominio de Active Directory han replicado las conexiones». Haga clic en Aceptar para finalizar.
Forzar la replicación de los controladores de dominio a través de un comando CLI
Si está familiarizado con el buen CMD de Windows, el comando repadmin es para usted. Esta es la forma más rápida de una sola vez para forzar la duplicación de DC. Si no estás familiarizado entonces este es un buen momento para aprender sobre Windows CMD.
- Entre en uno de sus DCs y abra el Símbolo del sistema.
- Introduzca el siguiente comando y pulse la tecla Enter.
repadmin /syncall /AdeP
- Una letanía de información se desplazará por la pantalla. Si ve que la última línea dice: «SyncAll terminada sin errores», y luego el símbolo del sistema debajo de ella, sus DCs se replican con éxito.
Forzar la replicación de los controladores de dominio con PowerShell
Si no estás usando PowerShell en tu día a día, te lo estás perdiendo. Realmente te debes a ti mismo aprender PowerShell. Te hará la vida más fácil, y si eres un administrador de sistemas junior te ayudará masivamente a llevar tu carrera al siguiente paso.
Estos pasos se pueden hacer en la CLI de PowerShell ordinaria, pero lo hemos hecho en el ISE de PowerShell para mostrar mejor los comandos y sus resultados. Vamos a construir un script que puedes guardar o incluso convertir en un cmdlet que puedes llamar desde la línea de comandos de PowerShell.
- Entra en uno de tus DCs y abre PowerShell o PowerShell ISE.
- Antes de escribir cualquier script, guárdalo con un nombre descriptivo como force-DCReplication.ps1 para que puedas reutilizarlo más fácilmente. Introduce el siguiente código y ejecútalo para ver cómo obtendrá los nombres de todos tus DCs.
(Get-ADDomainController -Filter *).Name
¿Ves cómo devuelve los nombres de los DCs? Ahora puedes canalizar ese resultado en el siguiente cmdlet. Una tubería es el carácter de línea vertical ( | ), que suele encontrarse en el teclado justo encima de la tecla Enter.
- Al final del comando anterior, introduzca el siguiente código:
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
El comando debe quedar como en la imagen de abajo. Ejecútalo. Debería devolver un mensaje como el de la sección anterior de Forzar la replicación del controlador de dominio a través de la GUI. Si termina con «SyncAll terminada sin errores», entonces ha funcionado.
¿Has visto que también utiliza el comando repadmin?
- Añadamos otra línea para ayudarte a asegurarte de que la replicación realmente se ha completado. El siguiente código devolverá la fecha y hora de cuando cada uno de tus DCs fue replicado por última vez. Este comando se puede utilizar por sí solo en otro momento si sólo tienes curiosidad por saber cuándo se replicaron tus DCs por última vez. Introduce el código y ejecútalo.
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
El resultado debería parecerse a la imagen de abajo. Verás en la parte inferior la fecha y hora exactas en que se produjo la última replicación.
- Para pulir un poco este script, hagamos su salida un poco menos verbosa. Cerca del final de la primera línea, introduzca | Out-Null entre el /AdeP y el corchete final. Eso le dice que no ponga los resultados de ese cmdlet. El resultado final se parecerá a la siguiente imagen.
Mantenerlos replicados
Ahora ya conoces 3 formas de forzar la replicación de los controladores de dominio en AD. Además, has montado un script de PowerShell reutilizable que puedes llamar desde la línea de comandos de PowerShell siempre que quieras. No hay excusa para que sus últimos cambios en el DC se queden esperando la próxima replicación programada, sea cuando sea.