Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Active Directory
Por townel
Si ha recibido alguna vez una hoja de cálculo de Excel con una lista de 200 empleados
nuevos que empiezan la semana próxima, o si sus cuentas de usuario se han configurado
incorrectamente porque el personal de soporte técnico hizo clic en algo
en lo que debía haber hecho clic, o si simplemente desea facilitar la administración de
Active Directory® sin tener que abrir usuarios y equipos cada vez, existen varias
herramientas de administración gratuitas que pueden ayudarle con todo esto. Algunas se
han creado directamente en el sistema operativo Windows®, otras proceden de un kit de
recursos o de las herramientas de soporte de Windows y algunas otras son herramientas
de terceros gratuitas. ¿Cuáles son estas herramientas tan prácticas y dónde pueden
obtenerse? Averigüémoslo.
Empezaré con las herramientas de la línea de comandos integradas en Windows Server®
2003 que permiten crear, eliminar, modificar y buscar objetos en Active Directory.
CSVDE
Active Directory ofrece una segunda herramienta integrada para operaciones masivas
del usuario llamada LDIFDE y que es más eficaz y flexible que CSVDE. Además de
crear objetos nuevos, LDIFDE también puede modificar y eliminar objetos existentes e
incluso ampliar el esquema de Active Directory. El equilibrio para la flexibilidad de
LDIFDE es que el archivo de entrada necesario, que se llama archivo LDIF con la
extensión .ldf, usa un formato más complejo que el archivo sencillo de CSV. (Con un
poco de trabajo también se podrán configurar contraseñas de usuario, pero llegaremos a
este punto dentro de un momento).
Empecemos con un ejemplo sencillo: exportar usuarios desde una unidad organizativa a
un archivo de LDF (observe que lo que sigue está todo en una línea):
ldifde -f users.ldf -s DC1.contoso.com -d “ou=UsersOU,dc=contoso,dc=com”
–r “(&(objectcategory=person)(objectclass=user))”
Al igual que con la mayoría de las herramientas de la línea de comandos, se puede
encontrar una explicación completa de los modificadores de comandos LDIFDE
ejecutando el comando LDIFDE /?. La figura 1 describe los que se han usado aquí.
(Observe que los modificadores de comandos son de hecho lo mismo para los comandos
CSVDE y LDIFDE).
Modificador de
Descripción
comandos
-d Permite especificar la ruta de acceso del LDAP al que LDIFDE debe
conectarse para la operación.
-f Permite indicar el nombre del archivo que va a usarse, en este caso para
ofrecer los resultados de la exportación.
-r Permite especificar el filtro LDAP que se usará para una exportación.
-s Permite especificar el controlador de dominio (DC) al que debe
conectarse para realizar la operación. Si se excluye este comando,
LDIFDE se conectará al controlador de dominio local (o el que
autenticó al ejecutar la herramienta desde una estación de trabajo).
Los cambios se importan al ejecutar la misma sintaxis del comando de LDIFDE como
antes, especificando el nombre nuevo de archivo LDF después del modificador de
comandos -f. El formato LDF para eliminar objetos es aún más sencillo; para eliminar
los usuarios con los que ha estado trabajando, cree un archivo llamado DeleteUsers.ldf y
escriba lo siguiente:
dn: CN=afuller OU=UsersOU, DC=contoso, DC=com
changetype: delete
Dsadd
Dsadd se usa para crear una copia de una clase de objeto de Active Directory en una
partición de directorios concreta. Estas clases incluyen usuarios, equipos, contactos,
grupos, unidades organizativas y cuotas. Dsadd tiene una sintaxis genérica que consiste
en lo siguiente:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
Tenga en cuenta que cada tipo de objeto que se crea toma un conjunto específico de
modificadores de comandos correspondiente a los atributos disponibles para ese tipo de
objeto. Este comando crea un solo objeto de usuario con distintos atributos rellenados
(observe que lo que sigue está todo en una línea):
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com
–samID afuller –fn Andrew –ln Fuller –pwd *
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com “cn=Help Desk,ou=Groups,
dc=contoso,dc=com”
–desc “Marketing Director”
El modificador de comandos –memberOf requiere el nombre distintivo (DN) de cada
grupo al que debería agregarse el usuario; si se desea agregar el usuario a varios grupos,
se pueden agregar varios DN delimitados por espacios.
Si hay algún elemento que contenga espacios, tal como el nombre completo del grupo
del departamento de soporte técnico, deberá incluirse en comillas dobles. Si un
elemento contiene una barra diagonal inversa, como por ejemplo una unidad
organizativa llamada TI\EMEA, la barra diagonal inversa debe especificarse dos veces:
TI\\EMEA. (Estos requisitos se aplican a todas las herramientas ds*).
Al usar el modificador de comandos -pwd *se le pedirá que escriba una contraseña para
el usuario en la línea de comandos. Esta contraseña puede especificarse dentro del
propio comando (-pwd P@ssword1), pero esto mostrará la contraseña en texto sin
formato en la pantalla o en cualquier texto o archivo de script en el que incrustó el
comando.
De una forma similar, puede crear un objeto de grupo y una unidad organizativa con los
dos comandos siguientes:
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou “ou=Training OU,dc=contoso,dc=com”
Dsmod
Dsmod se usa para modificar un objeto existente y se puede usar de manera muy similar
a la de dsadd, con submenús y sintaxis diferentes en función del tipo de objeto que se
está modificando. La instrucción siguiente de dsmod cambia una contraseña de usuario
y modifica la cuenta de éste de forma que se le pedirá que cambie a una contraseña
nueva en el inicio de sesión siguiente:
dsmod user “cn=afuller,ou=IT,dc=contoso,dc=com” –pwd P@ssw0rd1
–mustchpwd yes
Para ver las semejanzas entre estos modificadores de comandos, observe la sintaxis de
dsadd que se usaría para crear este usuario con los mismos atributos configurados:
dsadd user “cn=afuller,ou=IT,dc=contoso,dc=com” –pwd P@ssw0rd1
–mustchpwd yes
Como puede verse claramente, si se conocen los modificadores de comandos para crear
objetos en dsadd, se pueden usar estos mismos modificadores de comandos para
modificar usuarios con dsmod.
Dsrm
Dsmove
Para mover un objeto o cambiarle el nombre en Active Directory, se usa la herramienta
dsmove, pero observe que debería usarla para mover un objeto sólo dentro de un único
dominio. Para migrar objetos entre dominios o bosques, use la herramienta de
migración Active Directory (ADMT), que se descarga gratuitamente desde el sitio web
de Microsoft. Dsmove depende de dos modificadores de comandos que pueden usarse
por separado o combinados. Este comando proporciona un apellido nuevo a la cuenta de
Steve Conn:
dsmove “cn=Conn, Steve,ou=IT,dc=contoso,dc=com”
–newname “Steve Conn”
Este comando mueve la cuenta de Steve de la unidad organizativa IT a la unidad
organizativa Training OU:
dsmove “cn=Conn, Steve,ou=IT,dc=contoso,dc=com” –newparent
ou=Training,dc=contoso,dc=com
Se puede combinar un cambio de nombre y un desplazamiento en una sola operación si
se especifican ambos modificadores de comandos a la vez. Del modo siguiente:
dsmove “cn=Conn, Steve,ou=IT,dc=contoso,dc=com” –newname
“Steve Conn” –newparent ou=Training,dc=contoso,dc=com
Dsget y dsquery
Dsquery devuelve una lista de objetos de Active Directory que cumplen los criterios
especificados. Se pueden especificar los parámetros siguientes independientemente del
submenú se está usando:
dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
Para ObjectType, dsquery puede usar los submenús siguientes, cada uno de los cuales
tiene su propia sintaxis: computer, contact, subnet, group, ou, site, server (observe que
el submenú server recupera la información acerca de los controladores de dominio, no
de cualquier servidor que sea miembro del entorno), user, quota y partition. Y si uno de
estos tipos de consulta no cumple con los requisitos, se puede usar el submenú *, lo que
permite escribir una consulta LDAP de forma libre.
StartNode especifica la ubicación en el árbol de Active Directory en la que se iniciará la
búsqueda. Se puede usar un nombre completo específico como
ou=IT,dc=contoso,dc=com o uno de los especificadores de acceso directo siguientes:
domainroot, que empieza en la raíz de un dominio en particular; o forestroot, que
empieza en la raíz del dominio raíz del bosque con un servidor de catálogo global para
realizar la búsqueda.
Por último, la opción del ámbito de búsqueda especifica cómo dsquery debe buscar en
el árbol de Active Directory. La opción Subtree (predeterminada) consulta el StartNode
especificado y todos sus objetos secundarios, la opción onelevel sólo consulta los
elementos secundarios inmediatos de StartNode y la opción base consulta sólo el objeto
StartNode.
Para entender mejor los ámbitos de búsqueda, imagine una unidad organizativa que
contenga objetos de usuario y una unidad organizativa secundaria que contenga objetos
adicionales. Con el ámbito subtree se consultará la unidad organizativa, todos los
objetos de usuario que ésta contiene, la unidad organizativa secundaria y su contenido.
El ámbito onelevel consultará sólo los usuarios que contiene la unidad organizativa y no
se consultará la unidad organizativa secundaria ni su contenido. Una consulta base
buscará sólo la unidad organizativa sin consultar ninguno de los objetos que ésta
contiene.
Por último, se puede usar el formato de salida para controlar cómo se formatean los
resultados de dsquery. De forma predeterminada, dsquery devuelve los nombres
completos de cualquier objeto que coincide con la consulta. Del modo siguiente:
“cn=afuller,ou=Training,dc=contoso,dc=com”
“cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com”
Para realizar consultas para todos los objetos de usuario que contiene la unidad
organizativa de IT y de cualquier unidad organizativa secundaria, use lo siguiente:
dsquery user ou=IT,dc=contoso,dc=com
Se puede perfeccionar aún más esta consulta si se agregan modificadores de comandos
adicionales como por ejemplo: -disabled (devuelve sólo cuentas de usuario
desactivadas), -inactive x, (devuelve sólo usuarios que no han iniciado sesión en las
últimas semanas o más) o -stalepwd x (devuelve sólo usuarios que no han cambiado sus
contraseñas en x días o más).
Según el número de objetos del directorio, es posible que sea necesario especificar el
modificador de comandos -limit x al ejecutar la consulta. De forma predeterminada,
dsquery devolverá hasta 100 objetos que coinciden con las especificaciones de la
consulta; se puede especificar un número más grande, tal como -limit 500, o usar -limit
0 para dar instrucciones de que dsquery devuelva todos los objetos que coincidan.
Se pueden usar los otros submenús para realizar consultas útiles también para otros
tipos de objeto. Considere la consulta siguiente que devuelve cada subred definida en
los sitios y servicios de Active Directory que está en el espacio de direcciones 10.1.x.x:
dsquery subnet –name 10.1.*
O bien, use lo siguiente para devolver cada subred ubicada en el sitio de la corporación:
dsquery subnet –site Corp
Con otro submenú, se puede determinar rápidamente cuántos controladores de dominio
están configurados en el bosque como servidores de catálogo global:
dsquery server –forest –isgc
Esta sintaxis también se puede usar para ayudar a determinar qué controlador de
dominio hospeda en el dominio la función Emulator Flexible Single Master Operations
(FSMO) del controlador de dominio principal (PDC):
dsquery server –hasfsmo pdc
Al igual que con los otros comandos ds* que incluyen submenús, se pueden ver todos
los modificadores de comandos disponibles dentro de un submenú de dsquery particular
si se va al mensaje del comando y se escribe dsquery user /?, dsquery computer /?,
dsquery subnet /?, etcétera.
Otro truco fácil de usar es canalizar el resultado de la consulta dsquery a otra
herramienta, tal como dsmod, que use el carácter | (teclas Mayús+barra diagonal inversa
en teclados de EE. UU.). Por ejemplo, supongamos que su compañía cambia el nombre
de un departamento desde Aprendizaje a Desarrollo interno y ahora debe actualizar el
campo de la descripción de cada usuario desde el nombre anterior de departamento al
nuevo. En una única línea de comandos, se pueden consultar objetos de usuario que
tienen un campo de descripción Aprendizaje y luego modificar masivamente el campo
de la descripción de la siguiente manera:
dsquery user –description “Training” | dsmod
-description “Internal Development”
Algunas perlas de terceros
Dado que Active Directory se basa en estándares LDAP, se puede consultar y modificar
con cualquier herramienta compatible con LDAP. Muchos otros proveedores han
lanzado al mercado herramientas de pago para facilitar la administración de Active
Directory, pero a veces se pueden encontrar con tesoros que se han puesto a disposición
de la comunidad de forma gratuita. Es el caso de una recopilación creada por el MVP de
Servicios de directorio Joe Richards, que está disponible para descarga desde
joeware.net/freetools. En este sitio pueden encontrarse muchas herramientas que son
útiles para muchas funciones diferentes. Tres a las que recurro una y otra vez son
adfind, admod y oldcmp.
Adfind y admod
Oldcmp
Hay una herramienta adicional de joeware que pienso que es imprescindible para mi kit
de herramientas de automatización: oldcmp, que examina la base de datos de Active
Directory en búsqueda de cuentas de equipo que no se han usado durante un número
determinado de semanas. Puede realizar las siguientes acciones:
Tenga en cuenta que dado que oldcmp tiene la capacidad de sembrar un caos grave en el
directorio, tiene varias características de seguridad integradas. No eliminará ninguna
cuenta que no esté desactivada (y sin haberse especificado manualmente un modificador
de línea de comandos tipo “En serio, ¡es así!”). No modificará más de 10 objetos a la
vez sin disponer de un modificador de comandos tipo “En serio, ¡es así!”, y
definitivamente no realizará ninguna acción sobre la cuenta del equipo para un
controlador de dominio.
A pesar del nombre engañoso de la herramienta, Joe ha actualizado oldcmp para que
también realice funciones semejantes para cuentas de usuario que no se han usado
durante cierto tiempo.
Para un entorno pequeño de Active Directory o para uno donde sólo se trabaja con una
o dos adiciones o modificaciones a la vez, las herramientas GUI, tal como Usuarios y
equipos de Active Directory, podrían ser suficientes para llevar una administración
diaria. Pero si se agregan y se modifican muchos objetos diariamente o simplemente
desea una solución más simplificada para las tareas administrativas, moverse a la línea
de comandos puede acelerar mucho el proceso de creación, modificación y eliminación
de objetos dentro de Active Directory. Como ha visto, hay varias flexibles y eficaces
herramientas disponibles y gratuitas, tanto herramientas integradas en Windows y como
herramientas que se pueden descargar de los miembros de la comunidad de Active
Directory. Cualquiera de estas herramientas tiene la capacidad de mejorar mucho su
productividad como administrador de Active Directory, y todas juntas se convierten aún
más en algo esencial para el trabajo diario.