martes, enero 17, 2017

No te espían, solo quieren vender más y en ocasiones... nos conviene

Hoy me ha pasado una cosa muy curiosa que quería comentar con todos vosotros. Está ligada con la analítica pero no directamente. Muchas veces, cuando le digo a la gente a qué me dedico me contestan que Google nos espía, que sabe todo de nosotros y cosas por el estilo.

Sin tener en cuenta lo que destapó Snowden y Wikileaks de Assange, las empresas no nos espían, simplemente quieren que compremos más. Si nos ponemos a ver un hotel en Málaga, lo más probable es que luego nos salgan banners de hoteles baratos en Málaga. Eso no es espiarnos, es, simplemente, ofrecernos un producto o servicio que saben que estamos interesados.

¿Y por qué cuento todo esto? Pues bien, hoy recibo una carta de Francia. Mi primera reacción es de sorpresa porque a parte de visitar París dos veces en mi vida (la segunda de ellas Louvre incluído); yo no tengo ninguna relación con nadie de Francia.

Pues bien, la carta era esta:



Resulta que hace 4 años me compré un patinete en Decathlon. En concreto el modelo Town 9. Lo pagué con mi tarjeta de Decathlon y ahora este, no porque me espiaba, sino porque registró mi venta, al haber detectado un defecto de fábrica, me avisaba de que "NO UTILIZASE ESE PRODUCTO" y que me tenían que realizar un diagnóstico. El motivo de la carta, es que se ha detectado una debilidad en el manillar.

Pues bien, llego allí (No se lo digáis a nadie pero me pasé en patinete aunque en mayúsculas me decían que no lo hiciese XD ) y me lo revisan y me dicen que en efecto, es un producto defectuoso y que me van a devolver el dinero del producto que compré.

Es decir, Decathlon, motu proprio, me manda una carta y... pasados 4 años, me devuelven el importe de lo que me costó el patinete.

La historia hasta aquí seria magnifica por parte de Decathlon, pero aún fue mejor, es más, yo la calificaría de excelente por lo siguiente que os voy a contar: Resulta que a mí el patinete me mola. Voy con mis sobris a montar y soy la envidia de todos los padres cuando nos ven felices rodar. Así que me subí a comprar el mismo patinete: un Oxelo Town 9. Subo, con los 129 € que me habían devuelto, pido el patinete peeeeeero, ahora cuesta 20 € más. La dependienta me empieza a hablar de nuevos materiales, nuevos diseños y blablabla. Le argumento que no es justo porque blablabla y vamos a hablar con el jefe de planta.

Yo ya me veía redactando un post incendiario y twiteando como un troll pero al contrario, le enseño la carta, y el jefe de planta le dice a la dependienta que me cobre el patinete a lo mismo que me costó, es decir, 129 €. Que como es un producto defectuoso tengo derecho al mismo patinete aunque ahora cueste más caro. NO ME LO PUEDO CREER: no solo me devuelven el dinero sino que me dan la opción de cambiarlo por otro igual sin coste por mi parte.

Moraleja: Si no hubiese pagado con mi tarjeta de Decathlon y no me hubiesen "espiado", ahora podría tener un inútil patinete de 129 € con el manillar partido. Por lo tanto, no nos espían solo quieren ganar dinero, y en ocasiones, hasta nos es útil. A Decathlon le ha dado igual si yo era hombre, mujer, mi rango de edad o mis estudios. Lo que ha hecho ha sido mandar una carta a todos los que compraron ese patinete defectuoso.

PD: Impecable el servicio de Decathlon. Hacía tiempo que no recibía un trato así.

jueves, abril 14, 2016

Actualizando getTimeParting : el plug-in de Adobe SiteCatalyst

En el día de hoy me ha tocado actualizar el plug-in de Adobe SiteCalayst getTimeParting. Para los que no lo conozcan, y como su propio nombre indica, te permite "partir el tiempo". En otras palabras, en lugar de tener un campo con todo el tiempo del tipo: "1460654529097" o "Thu Apr 14 2016 19:23:16 GMT+0200", lo que te permite hacer este plugin, es que puedas almacenar partes del tiempo, como las horas, o las horas y los minutos, o los meses, o el tipo de días de la semana, por ejemplo, en tus variables personalizadas.

De esta manera, podemos hacer informes por fines de semana o laborables, o por meses, o por miercoles, o lo que se nos quiera ocurrir. En el caso que me ocupa, sólo hemos recogido el día, es decir, si era lunes, martes,.... pero en inglés (Monday, Tuesday, Wednesday, Thursday,....), la hora y los minutos en formato 9:00AM, así como el tipo de día, es decir, si era día de la semana o fin de semana (weekday o weekend).

La documentación del plugin la tenéis en la siguiente URL: Adobe SiteCatalyst plug-in

Y yo, para poder hacer la actualización, me he basado en esta página:  webanalyticsland

Para probar el javascript on line, he utilizado la siguiente pagina: webtoolkitonline

Al final de este artículo os dejo los archivos que he utilizado, ya que no se me formatea muy bien el código en el blog :(

El código de la función es el siguiente:

 getTimeParting=new Function("h","z",""  
 +"var s=this,od;od=new Date('1/1/2000');if(od.getDay()!=6||od.getMont"  
 +"h()!=0){return'Data Not Available';}else{var H,M,D,U,ds,de,tm,da=['"  
 +"Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturda"  
 +"y'],d=new Date();z=z?z:0;z=parseFloat(z);if(s._tpDST){var dso=s._tp"  
 +"DST[d.getFullYear()].split(/,/);ds=new Date(dso[0]+'/'+d.getFullYea"  
 +"r());de=new Date(dso[1]+'/'+d.getFullYear());if(h=='n'&&d>ds&&d<de)"  
 +"{z=z+1;}else if(h=='s'&&(d>de||d<ds)){z=z+1;}}d=d.getTime()+(d.getT"  
 +"imezoneOffset()*60000);d=new Date(d+(3600000*z));H=d.getHours();M=d"  
 +".getMinutes();M=(M<10)?'0'+M:M;D=d.getDay();U='AM';if(H>=12){U='PM'"  
 +";H=H-12;}if(H==0){H=12;}tow=parseFloat(D);tow=(tow<5)?'Weekday':'We"  
 +"ekend';D=da[D];tm=H+':'+M+U;"  
 +"if(h=='h'){return H}if(h=='d'){return tm}if(h=='w'){return tow}}");  

Recodad, que según la documentación de Adobe, antes de este código, en el s_code, en la parte "CONFIG SECTION", teneis que poner el array s._tpDST de vuestra localización que en mi caso era el siguiente:

 //Europe  
 _tpDST = {  
 2012:'3/25,10/28',  
 2013:'3/31,10/27',  
 2014:'3/30,10/26',  
 2015:'3/29,10/25',  
 2016:'3/27,10/30',  
 2017:'3/26,10/29',  
 2018:'3/25,10/28',  
 2019:'3/31,10/27'};  

Por último, y tal y como indica webanalyticsland, si queréis almacenar este "tiempo partido", debéis de hacer lo siguiente antes de poner la función:

 s.prop1=s.getTimeParting('h','+2');  
 s.prop2=s.getTimeParting('d','+2');  
 s.prop3=s.getTimeParting('w','+2');  

De esta manera, se os almacenará en las propiedades 1,2 y 3, respectivamente, la hora, el día de la semana y el tipo de semana.

Como no se ve bien el formato al pasarlo al html, os pongo los enlaces de los archivos que he utilizado:

- html que llama al archivo javascript timeparting.js
- archivo javascript timeparting.js
- archivo js de pruebas en webtoolkitonline.

Saludos.

lunes, junio 29, 2015

Por qué el verano es el mejor momento para empezar Bikram yoga?

Antes de nada me gustaría decir que llevo practicando Bikram durante dos años aproximadamente, que esta es mi versión de los hechos y que espero que a los demás les ayude como a mí lo hizo.

Por desgracia llevo un tiempo sin poder practicar regularmente Bikram, pero estos días hablando con mis amigas yoguis, se me planteó la oportunidad de volver a la "sala caliente". A estas alturas ya todos sabréis qué es Bikram, pero por si hay algún despistado, Bikram, es un tipo de Yoga que se practica durante 90 minutos en una sala a 40 grados y con un 40 % de humedad. En otras palabras, 90 minutos de sofocante calor dentro de lo que los "bikranianos" llamamos, la "sala de la tortura" , o "sala caliente".

Cuando mis amigas me dijeron de quedar para practicar mi instinto fue: VAMOS, pero posteriormente me di cuenta de que este instinto no era algo común en el resto de los mortales.  Les sugerí a otros amigos míos que se unieran a esa quedada y la primera respuesta mayoritaria fue: HACE MUCHO CALOR...

Es entonces cuando me di cuenta de que algo pasaba. Yo empecé Bikram en verano, en un momento en el que a las 9 de la noche el termómetro seguía marcando 39 grados. Oía a todos mis compañeros de trabajo quejarse de que no podían dormir y de que estaban todo el día cansados por el calor que hacía. Yo, sin embargo, dormía como un bebe y no me parecía que hiciese tanto calor. La razón ya la sabéis: Bikram.

No os voy a mentir, Bikram es sudor, Bikram es calor, Bikram es sufrimiento... Bikram es una tortura, para que negarlo. Pero detrás de todo eso hay una recompensa y entre los muchos beneficios que tiene, uno de ellos es saber combatir mejor el calor.

Cuando uno sale de Bikram, aunque afuera haga un calor sofocante, no es nada comparado con Bikram. "Calor" te dicen.. Comparado con Bikram este calor es un "soplo de aire fresco". Terminas tu clase de Bikram a ultima hora de la noche, te vas a casa y duermes como un bebé porque estás cansado y porque no te parece que haga mucho calor (comparado con la practica de Bikram).

Bikram es duro, para que negarlo, pero a más duro es, más merece la pena, y entre muchas de sus ventajas, esta el aprender a convivir con el calor.

Bikram Chudhury dice: "qué prefieres... 90 minutos de práctica o 90 años de sufrimiento?". A mí, para este caso, me gusta decir: qué prefieres 90 minutos de practica o todo el verano sufriendo?

Por lo tanto, qué mejor momento para empezar?

lunes, junio 01, 2015

Cómo automatizar tus datos de Mixpanel con Google Spreadsheet

Hace poco me tocó enfrentarme a una nueva herramienta de analítica; mixpanel. Siempre que me preguntan por una aplicacion para analítica les digo: "dame una herramienta, y moveré el mundo". Así que después de ponerme unos días con Mixpanel, la primera conclusión que podemos sacar es que es una herramienta que mide eventos.

Lo siguiente a lo que me tuve que enfrentar fue un reporting en una hoja de cálculo de Google (Google Spreadsheet). En este informe semanal, había datos de mixpanel y de Google Analytics.

El primer día que tuve que hacer el reporting casi me suicido: yendo de una pantalla para otra de mixpanel, poniendo el intervalo de fechas, filtrando por los parametros y seleccionando sus valores... que tedio... no podía más.

Lo terminé y me juré la máxima de mi abuelo: "hay que trabajar para no tener que trabajar". En otras palabras, que me curré un script para atacar a mixpanel y recopilar todos los datos que me pedían con un solo click.

La solución se la debo a Melissa Guyre, que en está página se curró un fabuloso script para poder automatizar los reporting que nos pide cada departamento. La automatización es muy sencilla:

- Creas una nueva hoja de cálculo de Google.
- Herramientas --> Script editor (no sé si en castellano pone otra cosa)

Abres el editor de script y copias y pegas el script de melissa. Rellenas los puntos 1, 2, 3 y 4. y a correr....

En mi caso, tengo como 10 hojas de calculo y aparte el addon de google analytics. Al final todo acaba en una hoja llamada "resumen" que recibe los datos de las otras ojas creadas, ya sea con Mixpanel o con Google Analytics. Y de esta manera, lo que se tardaba 4 horas cada semana en hacer, se automatiza y se saca con un par de clicks ;)

miércoles, mayo 27, 2015

Contenedor de Google Tag Manager para filtrar el trafico interno por cookie.

Lo prometido es deuda: terminado el MeasureCamp Madrid os dejo en los siguientes enlaces la presentación que hice y el contenedor de Google Tag Manager. Con respecto a este úlitmo, un par de puntos:


  1. Teneis que sustituir "www.misitio.com" por el nombre de vuestro sitio.
  2. Cambiar el valor de la variable UA www.misitio.com. En el contenedor que os adjunto he puesto el valor UA-XXXXXXXX-1.
---------------------


---------------------

Namaste.

viernes, abril 17, 2015

Bash para crear cuentas en vsftpd con mysql

Hace ya bastante tiempo, os enseñe en este blog, como montar un servidor vsftpd en ubuntu. Hace bastante tiempo, decidieron actualizarlo a otra maquina, en concreto una CentOS. Además, la empresa quería montarlo con MySQL, para que el mantenimiento de los usuarios de ftp fuese más fácil.

Pues nada, dicho y hecho. La instalación no difiere mucho de la que ya comente en su momento, una vez instalado este servidor FTP, instalado MySQL, y phpmyadmin, del cual soy superfan, ya solo faltaba incluir los usuarios en la base de datos.

En este ejemplo, los usuarios se encuentran en la carpeta "/var/www/virtual", al estar en la misma máquina la base de datos (bbdd) y el servidor FTP, el host es "localhost", para este ejemplo, los datos de conexion con la bbdd, son usuario: "mi_usuario", bbdd: "mi_bbdd" y la tabla donde se almacenan los usuarios: "usuarios". Como no quería que se guardase la contraseña en el script que no iba a estar encriptado, lo que hice fue un sistema para que el bash preguntase por ella y la guardase para la sesion.

Aparte de para darla de alta, tambien sirve para darla de baja, y configurarla. Espero que se entienda el codigo, sino, me comentais en el blog, o me mandais un correo.

Namaste.


 #!/bin/sh  
 Fecha=$(date +"%d-%m-%y[%H:%M:%S]")  
 #### Defino los parametros de conexión a la BD mysql  
 sql_host="localhost"  
 slq_usuario="mi_usuario"  
 sql_database="mi_bbdd"  
 echo "Selecciona la opcion que mas se adecua a tus necesidades"  
 echo "1) DAR DE ALTA UNA CUENTA FTP"  
 echo "2) DAR DE BAJA UNA CUENTA FTP"  
 echo "3) PERSONALIZAR PERMISOS DE UNA CUENTA"  
 echo "4) salir"  
 read opcion;  
 if [ -z ${opcion} ]  
 then  
      echo "No has introducido un parametro correcto"  
      echo "Se sale del programa"  
      exit  
 fi  
 echo "Escribe la contraseña del usuario ftp de MySQL y pulsa [ENTER]:"  
 read DBPASS  
 if [ -z ${DBPASS} ]  
 then  
      echo "No has introducido la clave de vsftpd de MySQL"  
      echo "Se sale del programa"  
      exit  
 fi  
 case $opcion in  
 # /********************************************  
 #      DAR DE ALTA UNA CUENTA  
 # /********************************************/  
 1)   
 echo "Escribe en el nombre de la cuenta ftp que quieres crear y pulsa [ENTER]:"  
 read EMPRESA  
 if [ -z ${EMPRESA} ];  
 then  
      echo "No has introducido valor para el nombre de la cuenta"  
      echo "Se sale del programa"  
      exit  
 fi  
 echo "Escribe la contraseña de esta cuenta ftp y pulsa [ENTER]:"  
 read PASS  
 if [ -z ${PASS} ];  
 then  
      echo "Has dejado la contraseña en blanco"  
      echo "Se sale del programa"  
      exit  
 fi  
 echo "Creamos una carpeta en donde queremos que el usuario envie/reciba los ficheros"  
 if [ -d /var/www/virtual/${EMPRESA} ];  
 then  
      echo "No se ha podido crear la carpeta en /var/www/virtual/${EMPRESA} porque ya existia."  
 else  
      mkdir /var/www/virtual/${EMPRESA}  
      mkdir /var/www/virtual/${EMPRESA}/carpeta1  
      mkdir /var/www/virtual/${EMPRESA}/carpeta2  
      #Otorgamos permisos adecuados en las carpetas  
      chown -R applftp:applftp /var/www/virtual/${EMPRESA}  
 fi  
 #comprobamos que el usuario no existe  
 RESULTADO=`mysql -h ${sql_host} -u ${slq_usuario} -p${DBPASS} -e"select count(nrregistro) from vsftpd.usuarios where nombre='${EMPRESA}'" | grep -e 0`   
 echo $RESULTADO  
 if [ "$RESULTADO" == "0" ];  
 then  
      echo -e "Añadimos el registro"  
      mysql -h ${sql_host} -u ${slq_usuario} -p${DBPASS} -e "INSERT INTO vsftpd.usuarios (nombre,contrasena,alta,estado ) VALUES ('${EMPRESA}', '${PASS}',NOW(),'0')"  
      echo "salimos de mysql"       
 else  
      echo -e "Ya existe ese usuario. Se procede a reactivarlo y cambiarle la contraseña"  
      mysql -h ${sql_host} -u ${slq_usuario} -p${DBPASS} -e "UPDATE vsftpd.usuarios SET estado=0, contrasena='${PASS}', tipo=CONCAT('reactivado ',NOW()) WHERE nombre='${EMPRESA}'"  
 fi  
 echo "Los datos del servidor son los siguientes:"  
 echo "url: ftp://ftp.tuempresa.com:2021"  
 echo ""   
 echo "Puerto de escucha: 2021"  
 echo ""  
 echo "Tipo de conexion: pasiva"  
 echo "Tipo de servidor: FTPES (FTP sobre TLS/SSL explicito)"  
 echo "Tipo de transferencia: Binaria"  
 echo ""   
 echo "usuario: ${EMPRESA}"  
 echo "password: ${PASS}"  
 ;;  
 # /********************************************  
 #      DAR DE BAJA UNA CUENTA  
 # /********************************************/  
 2)  
 #desactivamos la cuenta en MySQL cambiando el estado  
 echo "Escribe en el nombre de la cuenta ftp que quieres dar de baja y pulsa [ENTER]:"  
 read EMPRESA  
 if [ -z ${EMPRESA} ];  
 then  
      echo "No has introducido valor para el nombre de la cuenta"  
      echo "Se sale del programa"  
      exit  
 fi  
 echo -e "Se procede a desactivar el usuario en la BBDD"  
 RESULTADO=`mysql -h ${sql_host} -u ${slq_usuario} -p${DBPASS} -e "select count(nrregistro) from vsftpd.usuarios where nombre='${EMPRESA}'" | grep -e 0`   
 echo $RESULTADO  
 if [ "$RESULTADO" == "0" ];  
 then  
      echo -e "No se puede dar de baja un usuario que no existia. Se sale del programa"  
      exit  
 else  
      echo -e "Se procede a desactivar el usuario"  
      mysql -h ${sql_host} -u ${slq_usuario} -p${DBPASS} -e "UPDATE vsftpd.usuarios SET estado=1,baja=NOW() WHERE nombre='${EMPRESA}'"  
 fi  
 #si tenia configuracion personalizada, la borramos  
 if [ -f "/etc/vsftpd/usuarios/"${EMPRESA} ]  
 then  
      echo -e "Borrada la configuracion personalizada de este usuario"  
      rm -rf /etc/vsftpd/usuarios/${EMPRESA}  
 else  
      echo "no tenia configuracion personalizada"  
 fi  
 echo "salimos de mysql"  
 #comprimimos los archivos de la carpeta y los borramos  
 if [ -d /var/www/virtual/${EMPRESA} ];  
 then  
      tar -czvf /var/www/virtual/${Fecha}_${EMPRESA}.tar.gz /var/www/virtual/${EMPRESA}  
      mv /var/www/virtual/${Fecha}_${EMPRESA}.tar.gz /etc/vsftpd/usuarios/bajas/  
      rm -rf /var/www/virtual/${EMPRESA}  
      if [ -d /etc/vsftpd/usuarios/${EMPRESA} ];  
      then  
           mv /etc/vsftpd/usuarios/${EMPRESA} /etc/vsftpd/usuarios/___${EMPRESA}  
      else  
           echo "No existia archivo de configuracion personalizado"  
      fi  
 else  
      echo "La carpeta /etc/vsftpd/usuarios/${EMPRESA} no existia. No se ha podido comprimir"   
 fi  
 ;;  
 # /********************************************  
 #      CONFIGURAR CUENTA  
 # /********************************************/  
 3)  
 echo -n "Deseas que la cuenta tenga permisos para borrar? [si o no]: "  
 read yno  
 case $yno in  
     [sS] | [Ss][iI] )  
         echo "Si"  
         echo "Escribe en el nombre de la cuenta para la que quieres personalizar los permisos [ENTER]:"  
           read EMPRESA  
           if [ -z ${EMPRESA} ]  
           then  
                echo "No has introducido valor para el nombre de la cuenta"  
                echo "Se sale del programa"  
                exit  
           fi  
         if [ -d /etc/vsftpd/usuarios/${EMPRESA} ];  
           then  
                echo -e "Ese usuario ya tenia personalizados los permisos. Se sale del programa"  
                exit  
           else  
                echo "write_enable=YES" >> /etc/vsftpd/usuarios/${EMPRESA}  
                echo "anon_upload_enable=YES" >> /etc/vsftpd/usuarios/${EMPRESA}  
                echo "anon_other_write_enable=YES" >> /etc/vsftpd/usuarios/${EMPRESA}  
                echo "local_umask=777" >> /etc/vsftpd/usuarios/${EMPRESA}  
                echo -n "Quieres que entre en otro directorio? [si or no]: "  
                read sino  
                case $sino in  
                     [sS] | [Ss][iI])  
                          echo "Si"  
                          echo "Escribe en el nombre de la cuenta donde quieres que se conecte el usuario [ENTER]:"  
                          read USUARIO  
                          if [ -z ${USUARIO} ]  
                          then  
                               echo "No has introducido el nombre de la cuenta"  
                               echo "Se sale del programa"  
                               exit  
                          fi  
                          if [ -f /etc/vsftpd/usuarios/${EMPRESA} ];  
                          then  
                               echo "local_root=/var/www/virtual/${USUARIO}/" >> /etc/vsftpd/usuarios/${EMPRESA}  
                          else  
                               echo "no lo he podido cambiar"  
                          exit  
                          fi  
                          ;;  
                     [nN] | [nN][Oo])  
                          echo "No. Se sale de la aplicacion.";  
                          exit  
                          ;;  
                     *) echo "Invalid input"  
                       ;;  
                esac  
           fi  
         ;;  
     [nN] | [Nn][Oo] )  
         echo "Not agreed, you can't proceed the installation";  
         exit 1  
         ;;  
     *) echo "Invalid input"  
       ;;  
 esac  
 ;;  
 ## /********************************************  
 ##      SALIR DEL PROGRAMA  
 ## /********************************************/  
 #  
 *) echo "Se sale del programa"  
 exit  
 ;;  
 esac  

miércoles, marzo 18, 2015

Hacer consultas en el Directorio Activo (LDAP) via excel

Ultimamente mi trabajo se reduce a rellenar tediosos Excel de información y más información. Seamos optimistas y pensemos que sirve para documentar las cosas y para estructurarlas mejor, pero seamos realistas y admitamos que es un trabajo rutinario y aburrido.

Como mi abuelo me dijo una vez, "yo trabajo para no trabajar", lo que viene a traducirse en hacer un script que automatice las tareas. En esta ocasión, se trata de extraer datos desde el Directorio Activo de la empresa, o como a mi me gusta llamarla, la fabrica de chocolate; a un archivo de Excel.

Como persona que lleva trabajando más de 10 años en informática, en sistemas y programación a bajo nivel, cuando le hablan de Excel se le queda un poco cara de decepción, pero después de haber hecho el máster de Analítica Web en Kschool, uno se da cuenta de que Excel es una herramienta potentisíma, y lo que es más importante, es capaz de unir a los departamentos. Esto es, si le pones un Excel a una persona de marketing, te lo agradecerá más que un SQL.

En esta ocasión mi jefe me pidio extraer ciertos datos a excel cuando ya estaban en el Directorio Activo de la empresa. Supongo que mis compañeros de trabajo (y hasta puede que mi jefe) en estos momentos estarán copiando los datos de un lado a otro. Yo, sin embargo, trabajé para no trabajar más. Esto es, instale un complemento en Excel que lee los datos de tu Directorio Activo y los vuelca en tu Excel.

Y sin más dilación, paso a explicaros como lo hice. Lo primero, no es un complemento mio, sino de Remko. Para instalar el complemento, primero tenemos que descargarlo de su web. Una vez descargado, tenemos que ubicarlo en la carpeta adecuada de nuestros complementos de Excel. En mi caso, utilizo Excel 2013 y mis complementos están ubicado en la siguiente carpeta:

C:\Users\damupi\AppData\Roaming\Microsoft\AddIns

(donde damupi sería mi nombre de usuario).

Una vez que hemos guardado ese magnifico archivo de Remko, tenemos que habilitarlo en Excel. En mi versión, nos vamos a opciones.



Despues nos vamos a complementos y le damos al botón "Ir"




Por último seleccionamos el complemento "Rwadaddin"




Una vez tenemos el complemento instalado, en una columna, en mi caso A2, ponemos el nombre completo del usuario (en mi caso el nombre completo es "soporte") y en la columna B2 ponemos la siguiente funcion: =GetAdsProp("cn";A2;"mail") para que nos devuelva el email del usuario

El resultado es el siguiente:


Ahora, si queremos obtener mas datos, en otras columnas, podemos utilizar los atributos que nos brinda LDAP como el login (SamAccountName), el número de móvil (Mobile), el departamento al que pertenece (department) o la descripción (description)

Espero haberos ayudado y muchas gracias a Remko, sin el cual, este articulo no hubiese sigo posible.