Batch -> Mappa users/groups in Active Directory
Inviato: mar 19 mag , 2009 3:49 pm
Eseguendo questo script è possibile ottenere un file strutturato contenente, per ogni utente contenuto nell'AD tree:
sid utente - upn
Lista dei gruppi di appartenenza identificati da dn e sid.
Il codice è stato postato qui visto che non esiste, credo, una sezione più accurata. Se qualcuno dei mod ritenesse che un'altra categoria sarebbe stata più adatta: prego spostare e non preoccuparsi minimamente
NA: a fine scriptata, fai un giro di blocco note per eliminare "echo disabilitato" che non ho capito perchè ma ogni volta mi stampa nel file.
Un piccolo problema che ha è che il dsquery user -name * prende completamente TUTTI gli utenti, magari sarebbe più adatto limitarlo escludendo i membri di builtin, o magari quelli che non hanno mai loggato, ma le rifiniture direi che sono a carico di ognuno
PS: se qualcuno ha idea di come accedere da CLI agli attributi lastLogon o pwdlastset....
sid utente - upn
Lista dei gruppi di appartenenza identificati da dn e sid.
Il codice è stato postato qui visto che non esiste, credo, una sezione più accurata. Se qualcuno dei mod ritenesse che un'altra categoria sarebbe stata più adatta: prego spostare e non preoccuparsi minimamente

Codice: Seleziona tutto
dsquery user -name * -limit 0 > c:\userlist.dat
:: quera AD per ottenere la lista dia tutti gli utenti
for /F "usebackq delims=" %%F in (c:\userlist.dat) do (
:: per ogni utente di cui al file c:\userlist.dat ottieni l'upn e il sid e piazzali in aggiornamento dentro usermap.txt
dsget user %%F -upn -sid >> d:\usermap.txt
:: per ogni utente di cui a userlist.dat ottieni la lista dei gruppi e per ogni gruppo ottieni il dn e il sid, e aggiorna usermap.txt
dsget user %%F -memberof -expand | dsget group -dn -sid -L >> d:\usermap.txt
:: spazia un po' tra un utente ed un altro.
echo ----- >> d:\usermap.txt
echo ----- >> d:\usermap.txt
)
:: elimina il file temporaneo userlist.dat
del c:\userlist.dat
Un piccolo problema che ha è che il dsquery user -name * prende completamente TUTTI gli utenti, magari sarebbe più adatto limitarlo escludendo i membri di builtin, o magari quelli che non hanno mai loggato, ma le rifiniture direi che sono a carico di ognuno

PS: se qualcuno ha idea di come accedere da CLI agli attributi lastLogon o pwdlastset....