Limpieza Active Directory de controladores huérfanos

Limpieza Active Directory
2 diciembre 2015
Josep Ma Solanes 4

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.

neteja-active-directory-001

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 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.

neteja-active-directory-002

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

neteja-active-directory-003

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:

 

4 comentaris per a
“Limpieza Active Directory de controladores huérfanos”

Els comentaris estan tancats.