W2003: Crear usuarios en el Directorio Activo desde un archivo CSV

7 04 2011

Recientemente nos hemos encontrado con la necesidad de crear 90 usuarios en un nuevo servidor de dominio con Windows 2003. En concreto esta necesidad nos ha surgido al intentar hacer un redeployment de Microsoft Dynamics CRM 3.0 a un nuevo dominio lo que requiere relacionar los antiguos usuarios del anterior dominio con usuarios del nuevo dominio. Evidentemente siempre existe la posibilidad de crear manualmente todos los usuarios pero, si podemos automatizarlo, mejor.

Para automatizar la creación de usuarios se ha creado un archivo CSV que contiene los usuarios que queremos crear y un script VBS que ejecuta la creación de los usuarios en el dominio.

users.csv (contiene los datos del usuario en el format nombre;apellido;alias)

nombre0;apellido0;alias0
nombre1;apellido1;alias1
…/…

createusers.vbs (Script VBS)


Const ADS_PROPERTY_APPEND = 3

set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set filename = FSO.OpenTextFile("users.csv", 1)
do until filename.AtEndOfStream
  txtline = filename.ReadLine
  loglist = loglist & ", " & txtline
  if txtline <> "" then
    col1 = instr(txtline, ";") + 1
    col2 = instr((col1), txtline, ";") - 1
    FirstName = left(txtline, col1 - 2)
    LastName = mid(txtline, col1, col2 - col1 + 1)
    UserName = right(txtline, len(txtline) - col2 - 1)
    FullName = FirstName & " " & LastName
    loglist = loglist & " | " & FirstName & " - " & LastName & " - " & UserName
    Set objOU = GetObject("<a href="ldap://CN=Users,dc=wmq,dc=com/">LDAP://CN=Users,dc=wmq,dc=com</a>")
    Set objUser = objOU.Create("user", "cn=" & fullname)
    objUser.Put "sAMAccountName", UserName
    objuser.sn = LastName
    objuser.givenname = FirstName
    objuser.physicalDeliveryOfficeName = "MD"
    objuser.displayname = FirstName & " " & LastName
    objuser.userPrincipalName = UserName & "@crmserver.com"
    objuser.Description = "Creat automaticament"
    objuser.SetInfo
    objuser.ChangePassword "", <a href="mailto:P@ssw0rd">"P@ssw0rd</a>"
    objuser.AccountDisabled = FALSE
    objUser.Put "pwdLastSet", 0
    objuser.SetInfo
  end if
loop
filename.close
msgbox("Finished!!! " & loglist)

Debe adaptar el destino de los usuarios creados (LDAP://…), el password que se asigna a los usuarios (pude modificar el script para que el password se pase en el archivo CSV), la descripcion, el e-mail y otras variables. Tras confirgurarlas tan sólo es necesario ejecutar el script y se crearan todos los usuarios en el dominio!.

Anuncios

Acciones

Information

Responder

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: