Fare ricerche in Active Directory tramite Excel

Andiamo a cominciare…

Per quanto segue sono partito dall’esigenza di voler monitorare la posizione di alcuni account in active directory, partendo da una lista importata in excel.

Nei miei vagabondaggi nella Rete mi sono imbattuto nel fantastico lavoro di Remko che ho adattato alla mia situazione. Ma vi consiglio di leggere il suo articolo per i dettagli pur promettendo che prima o poi lo ripubblico pure io con altre spiegazioni..

Molto brevemente la sua macro permette di cercare una user in AD, e restituisce il campo specificato.

Attenzione che non è in grado di restituire i campi che contengono più stringhe (tipo member o memberof).

Nel mio caso avevo nella colonna A gli account e in B volevo il percorso nella directory, percio’: B1=(“samaccountname”;A1;”adspath”) et voilà mi appare il percorso dell’account cercato!

Qualche tempo dopo mi si è presentato il problema di cercare il percorso dei gruppi.. come fare? come fare? Mi son studiato la function iniziale e ho visto cosa va modificato:

adoCommand.CommandText = _
“<LDAP://” & strServer & “/” & strDNSDomain & “>;(&(objectCategory=Group)” & _
“(” & SearchField & “=” & SearchString & “));” & SearchField & “,” & ReturnField & “;subtree”

Nessuna magia: quella che si vede dopo il primo “;” è una query ldap piuttosto banale dove la parola in grassetto indica che tipo di oggetto stiamo cercando, la variabile SearchFiled è il campo di cui siamo in possesso (ad es. samaccountname), SearchString la parola che cerchiamo e ReturnField il campo che ci serve.

Ok.. come primo articolo fa un po’ schifo, ma datemi tempo di ripulire le mie macro da variabili inutili e vedrete che i prossimi saranno peggio 🙂

Ciao

getadsprop


1 thought on “Fare ricerche in Active Directory tramite Excel”

  1. Rieccomi sul primo articolo!

    E’ sorta la necessità di estendere la ricerca su una foresta di domini, quindi spronato da Gunther sono tornato sul luogo del delitto 🙂

    L’idea che mi è venuta è stata quella di trovare il modo di avere una lista dei domini nella foresta, e i relativi valori DNSROOT, ovvero l’hostname presente nel DNS per ogni dominio, e su quelli far ciclare la macro già vista.

    Al solito sono uno sfaticato e ho trovato qui da chi copiare.

    Queste righe di codice non fanno altro che ritornarci esattamente le informazioni di cui abbiamo bisogno: DNSROOT e l’dentificativo di ciascun dominio, quindi facendo gli opportuni cambiamenti per passare da VBS a VBA, togliendo quello che non ci serve e aggiungendo la nostra vecchia macro (opportunamente modificata per restituire più occorrenze), ecco cosa ho ottenuto: http://serio72.altervista.org/blog/wp-content/uploads/2011/09/GetAdsPropGL.txt

    Ciao e fatene buon uso 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.