Classica domanda : "è possibile estrarre le info da AD" ..............la mia classica risposta è: "si possono estrarre le info da un DB"?
A questo proposito ho scritto un breve script per esportare info da AD e scriverle in un file csv.
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
--------------------------connessione ad AD---------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.CreateTextFile("service_list.csv", _
ForWriting, True)
-------------------------creazione del file csv nella posizione in cui viene lanciato lo script---------------------------------------
objCommand.CommandText = _
"SELECT givenName,sn,physicalDeliveryOfficeName,telephoneNumber,mail FROM 'LDAP://"Dn della OU-dominio" WHERE objectCategory='user'"
------------------------Query-------------------------------------------------
------------------------a questo proposito vorrei chiarire alcuni aspetti della query:
------------------------SELECT : attributi da esportare .I nomi reali degli attributi (info) da esportare li potete trovare comodamente tramite ADSIedit.
------------------------FROM : Posizione in cui sono presenti gli oggetti da cui voglio estrarre le info.Va inserito il DN della OU, Dominio
------------------------WHERE: tipo di oggetto che voglio filtrare .(user, computer, ecc)
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
objLogFile.Write objRecordSet.Fields("givenname").Value & ","
objLogFile.Write objRecordSet.Fields("sn").Value & ","
objLogFile.Write objRecordSet.Fields("physicalDeliveryOfficeName").Value & ","
objLogFile.Write objRecordSet.Fields("mail").Value & ","
objLogFile.Write objRecordSet.Fields("telephonenumber").Value & ","
objLogFile.Writeline
objRecordSet.MoveNext
Loop
objLogFile.Close
-----------------------------creazione del file CSV basato sulle info selezionate nella query-------------------------------------
Guida rapida allo script:
1- Salvate lo script in file VBS
2-Nella query : dopo il SELECT aggiungete i vostro attributi separati da ", "
3-Nella query : dopo FROM inserire il vostro percorso LDAP. Il percorso LDAP da inserire è il punto di ingresso da cui la query inizia la selezione.
4-All'internodel ciclo aggiungete tante istruzioni : objLogFile.Write objRecordSet.Fields("ATTRIBUTO").Value & "," quanti sono i vostri attributi presenti nella query.
5-Eseguite lo script
p.s: ringrazio per lo "spunto" Moreno e tutti gli amici BRIT........
Luca