logo de Ephemera      
Inicio > MundoReal ™ > Coruña > Importando usuarios en un Directorio Activo

Escrito por kour el 1144351869

Hoy me siento “orgulloso” conmigo mismo. Después de quizá demasiado tiempo sin hacer scripting para algo “productivo” y sin practicamente experiencia en el tema del visual basic scripting he hecho un script que se le podría calificar de “hasta útil” -creo que es exagerar un pelin- en algunos casos.

El caso es que estamos generando un entorno de pruebas en el que necesitabamos exportar de un AD unos usuarios para luego poderlos importar en uno de pruebas con ciertos campos que eran imprescindibles. Para ello, en entornos W2k y NT existía la herramienta addusers que, a partir de un fichero de texto convenientemente parseado importaba los ficheros al directorio. Con la llegada de 2k3, todo esto se sustituye por el scripting con WMI o VBS . Para la gente que, como es mi caso, no está muy al día con el VBS Microsoft ha abierto una web de ejemplos dentro de Technet que nos pueden sacar de un apuro. EL problema es que, como suele pasar en estos casos, los scripts que había en la web no se amoldaban – Murphy es el compañero de trabajo de todo informatico – así que tuvimos que hacerlo nosotros.

Después de encontrar el script más parecido, uno que genera usuarios inventados en un AD, empezó el proceso de modificación. Después de encontrar con ADSI los campos que queríamos añadir en cada usuario nos faltaba parsear la cadena que leiamos del fichero de texto exportado del otro dominio. Para ello, y, de manera rudimentaria, nos montamos un pequeño parseador que cogiera los tres valores que necesitabamos. El resultado es el que abajo queda:

DIM linea as String
DIM Separador as String
DIM tamano as Long
DIM PosSep as LONG
dpto as String
usuario as String
nombre as String

Set A= GetObject ("LDAP://OU=Usuarios,DC=HIJO,DC=EJEMPLO,DC=COM")
'Creamos un puntero que apunta a la ou correspondiente
Set B = CreateObject("Scripting.FileSystemObject")
'Abrimos fichero de texto
Set C=B.OpenTextFile ("c:\usuarios.csv",1)
 'Fichero del que leemos los usuarios Usuario,DisplayName,Descripcion

 'Recorremos el fichero hasta el final
Do Until C.AtEndOfStream        ' Detecta final del archivo

        linea= C.ReadLine
        separador = ","
        posSep = InStr(1, linea, separador)
        tamano = posSep - 2
        usuario = Mid(linea, 1, tamano)
        linea = Mid(linea, posSep)
        posSep = InStr(1, linea, separador)
        tamano = posSep - 2
        nombre = Mid(linea, 1, tamano)
        linea = Mid(linea, posSep)
        posSep = InStr(1, linea, separador)
        tamano = posSep - 2
        Dpto = Mid(linea, 1, tamano)
        if (dpto = "") then
                 dpto = " "
        end if
        if (nombre = "") then
                  nombre = " "
        end if
       Set B=A.Create ("User","CN=" & usuario ) 'Creamos nuevo objeto
        B.Put "SamAccountName", usuario
        B.Put "Description" , Dpto
        B.Put "displayName" , nombre
        B.SetInfo
'Si quisieramos pone Password habria que hacerlo despues de creado
Loop
Close C

¿Como lo mejoraríais? ¿Que le añadiriais?


Comentarios 'Importando usuarios en un Directorio Activo'

#1

Pablo dijo hace :


¿Probaste con crear un fichero en excel e importarlo con ldif?…



#2

Pablo dijo hace :


ldifde -i -f users.ldf



#3

kour dijo hace :


La idea no es mala. El caso es que con esos campos dice que no … por lo demás :)



#4

quidam dijo hace :


Nosotros tambien usamos ldifde :P



#5

kour dijo hace :


Repito! fue mi primera opción pero no funcionaba.



#6

Pablo dijo hace :


No será que no fuiste capaz, arquitecto?



#7

kour dijo hace :


Segun tengo entendido LDIF no deja añadir todos los campos que te deja exportar. Cuando ejecuté el LDIF mi objetivo era mucho más ambicioso de lo que lo convertí cuando empecé con el VBS.

Aun así, el LDIF no sirve para importar todo lo que permite importar WMI y vBS



#8

kour dijo hace :


De todas a todas, y aunque el más completo sigue siendo el VBS o WMI, si lo quereis facil y facilmente configurable, os recomiendo CSVDE en vez de LDIFDE



#9

Pablo dijo hace :


Mira que eres testarudo. Que vas a recomendar tu de Windows anda…



#A

kour dijo hace :


Algo algo intento saber. No demasiado, la verdad. Pero eso es suficiente para saber más que tú :P



#B

Pedro dijo hace :


y con Ldife -j2-p6?
yo veo mate en dos jugadas, despues de enrocarse la reina, no?



#C

Pablo dijo hace :


Vaya, los dos hermanos que no pegan palo en el trabajo…sobre todo Pedro que aprovecha cualquier cosa para meter vaza (¿ya no te conetas al messenger?)



#D

Pedro dijo hace :


Vaya, el vecinito que no sabe que baza es con b, no con v….. otros no pegaron palo en el cole, y ahora se les ve el plumero.



#E

kour dijo hace :


No quiero comprobar cuantos comentarios de los tuyos son en hora de trabajo. Además, a las 8.45 yo no he entrado a trabajar.



#F

Pablo dijo hace :


Solo navego mientras espero a que baje algun programa.



#10

kour dijo hace :


Si si…

Por cierto … ¿Tu no eras pro win? que haces con linux?



#11

Pablo dijo hace :


Necesito probar zabbix y el servidor no puede ser window. Ubuntu es la distribucion mas actualizada de linux que tengo. Si tuviese tiempo usaria slack, si tuviese suse usaría suse, y si me dejas la última de debian pruebo debian que es de las pocas que no probé alguna vez. Por cierto no me gusta demasiado ubuntu, muy telederigido (tambien puede ser gnome, tendré que probar kubunto),…



#12

Pedro dijo hace :


Gnome, Suse, Slack, Kubunto, Ubuntu…..
De que hablais? Un ritual satanico? Un juego de Rol con un monton de personajes?



#13

aklis dijo hace :


Sobre zabbix, yo lo monté en produccion hace un tiempo, y ten cuidado con las actualizaciones de la version en desarrollo, pq a pesar de ser bastante mejor que la estable, a veces lo cascan todo.



#14

Pablo dijo hace :


Gracias aklis, ya instale la beta8 de la versión 2 y ahora me toca configurarlo. Por cierto y aprovechando que veo que lo conoces y abusando un poco…. ¿Que versatilidad ofrece zabbix a la hora de personalizar la monitorización por servicios individuales del usuario en el mismo servidor?, es decir, si yo tengo un servidor con varias bbdd y le quiero ofrecer al usuario que pueda monitorizar tamaño, logs,… pero sólo de su bbdd, o de su servidor web, solo ver estadísticas para su sitio,… (vamos, vender el servicio de monitorización de sólo su hosting a los clientes que contratan un hostig web o de correo o de bbdd,…).
…Y con respecto a nagios, ¿lo probaste?¿cual te parece mejor?….



#15

kour dijo hace :


Tio! no pretendas que aklis te haga todo tu trabajo :)

Curra "Chispitas"!!!



#16

Pablo dijo hace :


Perro…., :) .
Estas en vixoy?



#17

Pablo dijo hace :


Perro…., :) . Es que tengo poca personalidad, y asi a la hora de decidir me resulta mas fácil ;)
Estas en vixoy?



#18

Raul dijo hace :


Hola perdonar por al atraco.

Me llamo Raúl, y bueno, soy nuevo en todo esto.

Mi consulta es:

Tengo que dar de alta en un directorio activo a 250 usuarios, que accederán a una VPN, y aparte de picarlos uno a uno no se otra manera de hacerlo. He leido vuestros mensaje, en el cual importas la lista de usuarios desde un excel. ¿¿Me podrías indicar como se haría??, en el excel solo tengo para importar una tabla con dos columnas, en una el usuario y en la otra el password.

Os agradeceria que me orientarais un poco.

Muchas gracias



#19


Dejar un Comentario
Nombre (requerido)
E-Mail (No será publicado) (requerido)
Website

separador
Fortune!
Si al principio no tienes éxito, redefine el éxito.
--Anónimo
En Twitter

Jue 02/feb/2012
aklis:  @gallir Salvo en España,…

Lun 30/ene/2012
aklis:  Curioso: http://t.co/2aL5…

Vie 27/ene/2012
kour:  @jorgevazquez estáis a l…


kour:  @jorgevazquez En la Laco…

Mie 25/ene/2012
kour:  @bugblog No t puedo manda…

DESIGN BY Eetkamerstoelen

CONTENIDO DE Nuestro Mundo

separador
separador