Script para organizar Active Directory

Iniciado por dathax, 22 Enero 2014, 18:49 PM

0 Miembros y 1 Visitante están viendo este tema.

dathax

Buenas,

Tengo un problemilla, estoy intentando sacar un script (.bat) para organizar usuarios de AD, tengo un excel con un campo año y otro campo con su usuario de AD. Necesitaria un script que a partir de esa información me organice en una carpeta (ACTIVOS) los usuarios que en el campo año tienen 2013 y 2012. El problema es que no acabo de encontrar como hacer para que me coja la información del excel.

Alguna idea?

Gracias!

jdomgo3

Aunque hay librerías para ello, lo mejor es trabajar con el formato csv (valores separados por coma), que es legible por excel, y es básicamente un archivo de texto plano con valores separados por un delimitador que por defecto es la coma o el punto y coma.

dathax

Buenas,

Si entiendo que es mejor trabajar con CSV, el caso es que no se como recorrer el archivo para ir ordenando los usuarios. He buscado y no encuentro como hacerlo para Windows, en bash si que lo tengo más claro como recorrer archivos de texto...

Salduso

jdomgo3

Mmm... en Windows no te puedo ayudar mucho, hace un porrón de años que no hago nada en BATCH. Te recomiendo que te instales en tu Windows el Moba Xterm, convierte tu Windows en un Unix standard y funciona de maravilla, desde mi punto de vista mucho mejor que un Cywing de los de toda la vida. Así puedes trabajar en Windows como si estuvieras en un Unix, y tiene muchos plugins y librerías para añadir.

Para recorrer archivos de texto en Unix lo puedes hacer con un montón de mandatos de sistema, los mas utilizados son sed y awk.

Un saludo.

Eleкtro

Batch es la peor elección para tareas como esta, aunque se puede llegar a hacer es mejor que lo olvides, requiere demasiada escritura de código comparado con cualquier otro lenguaje, Batch es una herramienta demasiado incompetente y en casos como este es complétamente inutil.

La proposición de "convertir windows en Linux" sólamente para codear un script funcional en mi opinión es algo muy exagerado y complétamente innecesario, ya que existen decenas de buenos lenguajes compatibles con Windows, por eso antes que instalar Linux en Windows es preferible instalar el interprete de un lenguaje compatible con Windows (Ruby/Python/Perl etc...).

De todas formas eso tampoco es necesario, ya que en Windows puedes usar de forma nativa javascript, VisualBasicScript y PowerShell, que tienen métodos para crear arrays y todo lo demás que llegues a necesitar para este script que precisas (cosa que Batch, no tiene).

Ejemplo en VisualBasicScript:
Código (vb) [Seleccionar]
CSVLine = "Val1; Val2; Val3; Val4; Val5"
Tokens = Split(CSVLine, ";")

For Each Token in Tokens
Wscript.Echo(Token)
Next

Wscript.Quit(0)


Saludos