Crear Usuarios en Forma Masiva y Con Atributos

No es una tarea habitual,  pero a veces y sobre todo cuando se crea un nuevo Dominio Active Directory, hay que ejecutar un alta masiva de muchas cuentas de usuario.
Inclusive es una muy buena práctica completar los atributos adicionales de cada uno, ya que esto puede facilitar enormemente posteriormente las búsquedas

Por lo tanto en esta demostración investigaremos y veremos cómo se puede hacer el proceso, ya que la creación manual de usuario por usuario sería en este caso lentísima, y ni que comentar si además hay que configurarle propiedades a cada uno

Además puede darse el caso de tener que cambiar desde un “Dominio viejo” a un “Dominio nuevo”. Para esto se pueden usar aplicaciones como ADMT (“Active Directory Migration Tool”), pero a veces lo único que se necesita es la creación de nuevas cuentas de usuario,  por ejemplo, para crear un Domino “espejo” del productivo

En general el proceso de creación de usuarios y sus propiedades adicionales es mucho más fácil hacerlo desde una aplicación de base de datos, o inclusive con una planilla de cálculo. El problema es cómo llevar toda esta información en forma rápida y eficiente a un Dominio

La aplicación de base de datos puede contener gran parte de la información que ha ingresado la división de Recursos Humanos, y convengamos que no tiene mucho sentido tener que volver a ingresarla manualmente

Para esta demostración, me basaré en que tenemos la información en una planilla de Excel, ya que tanto desde la misma como desde cualquier base de datos se pueden exportar los datos en formato CSV (“Comma Separated Value”)

El archivo CSV debe contener en la primera línea los nombres de los campos, y en cada una de las líneas siguientes cada registro con sus correspondientes valores

Una de las dificultades es conocer el nombre interno de los campos que usa Active Directory, así que mostraré todo el proceso desde averiguar los nombres, hasta el alta masiva de cuentas

Necesitaremos un Controlador de Dominio, donde he creado una Unidad Organizativa provisoria que yo he llamado “TestOU”, donde he creado una cuenta de usuario. A esta cuenta le he configurado valores arbitrarios en cada campo informativo para poder averiguar los nombres

En las siguientes capturas podemos observar los datos que he puesto

Comenzaremos exportando esta cuenta de usuario a un archivo CSV mediante la utilidad incluida en el sistema operativo llama CSVDE.EXE

El comando es:

CSVDE -f <NombreArchivo>.CSV

He creado una carpeta “NewUsers”, me he cambiado a la misma y sobre ésta pondré toda la información necesaria

En mi caso particular he ejecutado el comando usando como nombre de archivo “PrimerIntento.csv” y para que no exporte el Dominio completo, he puesto el foco sólo sobre la Unidad Organizativa “TestOU” con el modificador “-d”

csvde -f PrimerIntento.csv -d OU=TestOU,DC=ad,DC=guillermod,DC=com,DC=ar

¿Recuerda cómo importar un archivo CSV en Excel? por las dudas, pongo las pantallas

Como en este caso no me importan las fechas sino sólo los nombres de los campos, no modificaré ninguno de los tipos de datos

Observemos lo siguiente: no sólo ha exportado al usuario, sino además a la propia Unidad Organizativa
Además los campos son muchos, para que los vean con facilidad he copiado los nombres de los mismos sobre un área inferior con fondo amarillo

Con el modificador “-r ObjectClass=user” podemos hacer que exporte sólo las cuentas de usuario
Algo más a tener en cuenta por lo que he leído, aunque no lo muestro en las capturas: si ponemos “user” exportará las cuentas de usuario, y además las de máquina.
Otra posibilidad es poner “person”, en este caso no exporta las cuentas de máquina, pero incluye los objetos tipo “contact”
No hay nada perfecto ;-)

Ahora si, sólo la cuenta de usuario

Si no deseamos que se exporten todos los campos, podemos informar cuáles necesitamos con el modificador “-l” (L minúscula) y la lista de campos
En mi caso he exportado los campos obligatorios para poder hacer luego la importación y algunos más

Obteniendo lo siguiente, ya mucho más fácil de interpretar

 

Vamos ahora dejando el tema exportación, y comencemos con lo que nos interesa que es la importación

Supongamos que desde la división de Recursos Humanos obtenemos los campos: Nombre, Iniciales, Apellido, y Departamento

Acá van a necesitar sus habilidades con Excel para mediante las convenciones de nombres que utilicen para los usuario, y sus habilidades en la concatenación de cadenas de caracteres, crear en forma rápida los datos que necesitamos

Por ejemplo yo he creado 5 cuentas, pero si fueran 500 o 5000 el procedimiento sería totalmente igual

Debemos guardar esta hoja de la planilla como archivo CSV para luego poder hacer la importación mediante CSVDE.EXE

Confirmaciones de Excel …

Teniendo ya toda la información, sólo resta importarla. Para esto utilizaremos nuevamente el comando CSVDE.EXE, pero esta vez indicando que vamos a importar información usando el modificador “-i” (CSVDE -i -f ImportUsers.csv)
Es importante verificar que el comando se completó exitosamente

Así que vamos a ver nuestra Unidad Organizativa, no olvidarse de hacer un refresco, ya que no lo hace automáticamente, y ya está :-)

En todos ellos podemos observar que se han importado, además de las cuentas de usuario, el campo Departamento que habíamos incluido

Recuerdo que si quisiéramos modificar en forma masiva a los usuarios, simplemente podemos seleccionar a los que necesitemos y entrando en Propiedades, modificar casi todos los atributos que necesitemos

Como los usuarios que importamos no tienen contraseña asignada, quedan siempre en forma deshabilitada. Esto no hay solución pues no se pueden importar las contraseñas con CSVDE

Pero podemos, aún así, habilitarlos :-)
No me pregunten el por qué, pero contrariando las políticas de cuentas del Dominio, que no dejan crear usuarios sin asignarle contraseña, usando este método se puede

 

Para finalizar, la creación masiva de cuentas de usuario no es algo que normamente tengamos que hacer diariamente, pero si en algún momento lo necesitamos, este procedimiento puede ahorrar muchísimo tiempo

 

 

Post a comment or leave a trackback: Trackback URL.

Comentarios

  • Cesar Rojas  On 03/09/2014 at 11:10

    Guillermo, excelente documento…. asi como yo más de uno te lo sabra agradecer….. una pregunta, esto tambien se puede hacer para grupos? sera algun modificador que hay que utilizar?

    • Guillermo Delprato  On 03/09/2014 at 12:24

      Sí, por supuesto Cesar que se puede hacer también con grupos, y además con máquinas
      Solamente que con grupos habría que ver cómo definir el tipo (Global, Local de Dominio o Universal) si lo importaras. Te sugiero hagas un procedimiento similar al que he echo yo para usuarios, pero usando “-r ObjectClass=group”

  • Luis Rodriguez  On 12/09/2014 at 20:25

    Hola Guillermo, en este caso algo que hace mas tardado el proceso pensando en una alta de por ejemplo 200 usuarios es el que tienes que poner su DN completo, creo que una forma mas sencilla para la generacion de las cuentas es por medio de PowerShell en mi muy humilde opinion, pero me gustaria saber que piensas tu? o por lo menos para mi si lo es, y te sirve tambien para modificaciones masivas

    • Guillermo Delprato  On 13/09/2014 at 08:48

      Hola Luis, es muy buena opción hacerlo con PowerShell. Simplemente son opciones diferentes que de acuerdo a cada caso hay que seleccionar la que más convenga. En Excel y con un poco de habilidad para la manipulación de cadenas de texto se puede también automatizar la creación del DN. En fin, todo depende de si el que lo va a usar tiene más habilidad con uno u otro :-)

      El CSVDE no sirve para modificaciones; en ese caso hay que utilizar LDIFDE. El problema de este último es el formato del archivo de datos. Si quieres probar haz una exportación con LDIFDE, y puedes ver el formato de archivo
      Hay que trabajar mucho con “Find/Replace” porque algunas sintaxis internas del archivo son “tramposas” :-) Por ejemplo, en algunos casos se necesita que el registro finalice con un “-“, o dónde dejar los espacios
      Revisa un LDIFDE /? que tiene muchas opciones

      Otra opción para modificaciones masivas, que he probado hace tiempo, es ADMODIFY.NET (http://admodify.codeplex.com/) que realmente me pareció de lo mejor

      Gracias por el comentario, porque había pensado poner también la opción de PowerShell y después se me olvidó

  • Joaquin Lorenzana  On 14/05/2015 at 13:26

    Como puedo importar usuarios con contraseñas, ya eh utilizado LDIFDE y CVSDE pero es importacion sin contraseñas.
    es de un windows server 2008 R2 a otro windows server 2008 R2.

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: