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'
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
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
kour dijo hace :
Algo algo intento saber. No demasiado, la verdad. Pero eso es suficiente para saber más que tú
y con Ldife -j2-p6?
yo veo mate en dos jugadas, despues de enrocarse la reina, no?
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?)
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.
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.
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),…
Gnome, Suse, Slack, Kubunto, Ubuntu…..
De que hablais? Un ritual satanico? Un juego de Rol con un monton de personajes?
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.
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?….
Perro….,
. Es que tengo poca personalidad, y asi a la hora de decidir me resulta mas fácil ![]()
Estas en vixoy?
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
kour dijo hace :
Creo que, mejor que nosotros, estos links te pueden ayudar.
http://www.winscripter.com/WSH/ADSI/default.aspx
http://www.computerperformance.co.uk/Logon/Logon_CSVDE_Export.htm
http://www.cruto.com/resources/vbscript/vbscript%2Dexamples/


Pablo dijo hace :
¿Probaste con crear un fichero en excel e importarlo con ldif?…