Limpieza Active Directory de controladores huérfanos

Una de las operaciones que toca hacer a menudo sobre el Active Directory es la limpieza del mismo de controladores que ya no existen o que tienen problemas. Servidores que se han desconectado de la red por obsoletos, pero que no se han despromocionado correctamente y siguen esperando para replicar parte del Active Directory. Un Active Directory dividido en dos con controladores en ambas partes, porque en un momento dado los controladores han perdido la conexión entre sí y cada uno ha cogido la propiedad de los roles, catálogos globales, etc…, dividiéndose en dos.
Todo esto puede parecer extraño, pero pasa. A veces por inconsciencia o desconocimiento, otras por problemas en la red. En estos casos lo que toca, tranquilamente, es proceder a limpiar el Active Directory para evitar males mayores y poder volver a tener el sistema en plena forma.
El procedimiento es sencillo, pero se tiene que ser muy meticuloso si no la podemos hacer gorda.
Limpia Active Directory con un ejemplo
Para entender mejor el procedimiento, lo haré con un ejemplo: disponemos de un Active Directory en que uno de los controladores se ha perdido. En este caso me he levantado con mala baba y le he disparado directo a un Windows 2012 R2 que lo ha dejado completamente estrellado en el suelo en medio de un charco de sangre. Como que además iba de listo, lo he hecho con una réplica de Active Directory inacabada y sin saber si tengo el catálogo global y los roles en buen estado. Los protagonistas son:
- Servidor víctima: JARVIS
- Servidor medio vivo: SERVIDORWEB
El objetivo es recuperar el funcionamiento estable del Active Directory sobre el servidor medio vivo SERVIDORWEB.
Gestión de roles para PowerShell
Las operaciones de comprobación y movimientos de roles se pueden hacer desde la PowerShell con privilegios de administrador en el sistema operativo con un usuario miembro del grupo Administradores Enterprise. ¡Se tiene que tocar el Active Directory!
Por lo tanto, buscar la aplicación Windows PowerShell, botón derecho sobre el icono y hacer clic en ejecutar como administrador.
Para comprobar como están los roles de Active Directory desde la consola de PowerShell se diferencian los roles del bosque y del dominio.
Para visualizar quien tiene los roles del bosque, el comando es:
get-adforest | select SchemaMaster,DomainNamingMaster
Para visualizar quien tiene los roles en cada dominio, el comando es:
get-addomain | select PDCEmulator,RIDMaster,InfrastructureMaster
En el ejemplo todos los roles los tiene el servidor víctima. Por lo tanto, primero toca que el servidor medio vivo recupere los roles.
En caso contrario, si el servidor que tiene los roles aún estuviera vivo solo hay que hacer una transferencia con el comando:
Move-ADDirectoryServerOperationMasterRole -Identity "SERVIDORWEB" -OperationMasterRole "SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster,InfraestructureMaster"
Rol | Nombre del rol | Valor numérico |
---|---|---|
Emulador PDC | PDCEmulator | 0 |
Maestro RID | RIDMaster | 1 |
Maestro de Infraestructura | InfraestructureMaster | 2 |
Maestro de Esquema | SchemaMaster | 3 |
Maestro Nombres de Dominio | DomainNamingMaster | 4 |
El mismo comando, pero con los valores numéricos para simplificar quedaría:
Move-ADDirectoryServerOperationMasterRole -Identity "SERVIDORWEB" -OperationMasterRole 0,1,2,3,4
Si no se tienen que transferir todos los roles indicar los que correspondan separados por la coma, por ejemplo, para transferir sólo los roles Esquema y Emulador PDC, el comando sería:
Move-ADDirectoryServerOperationMasterRole -Identity "SERVIDORWEB" -OperationMasterRole "SchemaMaster, PDCEmulator"
Como que el servidor que tiene los roles ya no existe se tiene que forzar esta transferencia, añadiendo el parámetro – force al comando de transferencia.
Move-ADDirectoryServerOperationMasterRole -Identity "SERVIDORWEB" -OperationMasterRole "SchemaMaster, PDCEmulator" -force
Desde la PowerShell, de momento, poca cosa más podemos hacer. Para las tareas más avanzadas sobre el Active Directory se debe recurrir a la herramienta NTDSUTIL.
NTDSUTIL
NTDSUTIL es la herramienta para hacer las operaciones en el Active Directory a fecha de hoy, si bien los roles ya se pueden ver y modificar por la PowerShell como se ha visto anteriormente, por estas y el resto de operaciones se utiliza NTDSUTIL. La podéis ver en acción con la gestión de las copias de seguridad por instantáneas del Active Directory.
Desde la consola de sistema o PowerShell, normalmente en un controlador de Active Directory, con privilegios de administrador, ejecutar el comando:
ntdsutil
NTDSUTIL no es una aplicación gráfica, sino un intérprete de comandos. Al ejecutar el comando anterior se queda pidiendo nuevos comandos.
Transferencias de ROLES
Para comprobar los roles, de la misma manera que se ha hecho anteriormente para la PowerShell, escribir:
roles
Cambia el intérprete de comandos en el menú de roles. Se establece la conexión con el servidor de trabajo, el que está vivo (SERVIDORWEB) y se vuelve al menú de roles:
connections connect to server SERVIDORWEB quit
Con la conexión realizada a uno de los controladores, seleccionar el servidor donde transferir los roles. Para hacerlo hay que entrar en la opción de selección y especificar el sitio, el dominio y el servidor donde transferir los roles:
select operation target
Como es normal, no sabremos de memoria el sitio donde está ubicado y menos el número que ocupa en el Active Directory. Podemos visualizar los lugares del bosque con el comando:
list sites
Para seleccionar el sitio se hace con el siguiente comando, indicando el número correnspondiente según el listado del comando anterior:
select site 0
Para visualizar el listado de los dominios se hace con el comando:
list domains
Para seleccionar el dominio con el que queremos trabajar, indicando el número correspondiente según el listado del comando anterior:
select domain 0
Para visualizar los servidores que dispone el dominio, en el sitio seleccionado:
list servers for domain in site
Seleccionar el servidor al que queremos trasladar los roles, indicando el número correspondiente según el listado del comando anterior:
select server 1
Volver al menú de roles para ejecutar las transferencias propiamente dichas:
quit
Para transferir los roles, lo más normal es hacerlo con el servidor origen operativo, sincronizando los datos entre los servidores. Los comandos para hacerlo son:
transfer schema master transfer naming master transfer PDC transfer RID master transfer infrastructure master
Pero, en este caso, se debe forzar la transferencia porque el servidor origen ya no existe. Los comandos son diferentes:
seize schema master seize naming master seize PDC seize RID master seize infrastructure master
Para volver al menú principal de NTDSUTIL, ejecutar el comando:
quit
El símbolo de comandos tiene que quedar en ntdsutil.exe:
Limpieza de servidores huérfanos en el Active Directory
Con los roles transferidos al servidor vivo, se puede proceder a hacer limpieza del Active Directory de los servidores que ya no existan. Desde el menú principal de comandos de ntdsutil, escribir:
metadata cleanup
Seleccionar el servidor de conexión donde se realizan las operaciones, el que está vivo:
connections connect to server SERVIDORWEB quit
Seleccionar el servidor que se debe hacer limpieza del Active Directory:
select operation target
Seleccionar el sitio, dominio y servidor que está muerto:
list sites select site 0 list domains select domain 0 list servers for domain in site
¡OJO el servidor que se selecciona, asegurar que es el servidor MUERTO y no el que está medio vivo!
select server 0 quit
Proceder a hacer limpieza del servidor seleccionado:
remove selected server
Se nos pregunta si estamos seguros de eliminar el servidor seleccionado, comprobar que el nombre coincide con el servidor que tenemos MUERTO y hacer clic en el botón Si.
Se puede comprobar que el Active Directory ha quedado limpio si se vuelve a intentar seleccionar el servidor donde hacer las operaciones. No debe aparecer el servidor que se acaba de eliminar:
select site 0 select domain 0 list servers for domain in site
A nivel funcional de Active Directory este servidor no existe. No obstante, es posible que en las herramientas de administración de los Sitios y Usuarios y Equipos de Active Directory aparezca como un objeto. Lo podéis borrar tranquilamente haciendo clic con el botón derecho sobre él y seleccionar Borrar.
¿Y tú? ¿Tienes el Active Directory limpio de servidores obsoletos?
¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!
Similar Posts by The Author:
- Microsoft SQL Server con SMB3
- Microsoft SQL Server amb SMB3
- Containers en Linux
- Containers amb Linux
- Migrar el servidor de archivos a Windows Server 2019
- Migrar el servidor de fitxers a Windows Server 2019
- Puerta enlace a Azure en el Windows Admin Center
- Porta enllaç a Azure en el Windows Admin Center
- Hola mundo! WordPress 5 y Gutenberg
- Hola món! WordPress 5 i Gutenberg
Buen tutorial me sirvió bastante, Gracias
A ti por tu comentario, Henry.
JMSolanes Excelente tutorial! mil gracias buen conocimiento
[…] pero la que mas me gustó es el post del Blog de Josep María Solanas concretamente este post:https://www.jmsolanes.net/es/limpieza-active-directory-controladores-huerfanos/El caso que exponía el post se asemejaba bastante al que tenía yo entre manos.Siguiendo al dedo […]