Ce script exporte l’ensemble des comptes utilisateurs d’un domaine Active Directory nommé DOMLAB vers un fichier Excel formaté. les attributs Active Directory sélectionnés concernent les informations de base de l’utilisateur ainsi que certaines informations concernant leur messagerie Exchange.
Les attributs Active Directory exportés sont les suivants:
- displayName
- givenName
- mailNickname
- homeMDB
- msExchHideFromAddressLists
L’attribut Active Directory userAccountControl est utilisé ici afin de filtrer les comptes utilisateurs désactivés.
Dim ObjConnection, ObjCommand, ObjRecordSet Dim objExcel Const ADS_UF_ACCOUNTDISABLE = 2 Set ObjConnection = CreateObject("ADODB.Connection") Set ObjCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection oDomainControler = "SERVER_NAME/ou=OU_NAME,dc=DOMLAB,dc=com" sProperties="userAccountControl,displayName,givenName,mailNickname,mail,homeMDB,msExchHideFromAddressLists" objCommand.Properties("Page Size") = 10000 ObjCommand.CommandText = "<LDAP://" & oDomainControler & ">;(&(objectCategory=person)(objectClass=user));" & sProperties & ";subtree" ObjCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set objExcel = WScript.CreateObject("Excel.Application") objExcel.Visible = True objExcel.Workbooks.Add objExcel.ActiveSheet.Name = "Users" objExcel.ActiveSheet.Range("A1").Activate objExcel.ActiveCell.Value = "DisplayName" objExcel.ActiveCell.Offset(0,1).Value = "Login" objExcel.ActiveCell.Offset(0,2).Value = "Alias de messagerie" objExcel.ActiveCell.Offset(0,3).Value = "Adresse email principale" objExcel.ActiveCell.Offset(0,4).Value = "Banque d'information" objExcel.ActiveCell.Offset(0,5).Value = "Masqué dans le carnet d'adresse" objExcel.ActiveCell.Offset(1,0).Activate Set ObjRecordSet = ObjCommand.Execute Do until objRecordSet.EOF intUAC=objRecordset.Fields("userAccountControl") If intUAC AND ADS_UF_ACCOUNTDISABLE Then objRecordSet.MoveNext else objExcel.ActiveCell.Value = objRecordSet.fields("displayName") objExcel.ActiveCell.Offset(0,1).Value = objRecordSet.fields("givenName") objExcel.ActiveCell.Offset(0,2).Value = objRecordSet.fields("mailNickname") objExcel.ActiveCell.Offset(0,3).Value = objRecordSet.fields("mail") objExcel.ActiveCell.Offset(0,4).Value = objRecordSet.fields("homeMDB") objExcel.ActiveCell.Offset(0,5).Value = objRecordSet.fields("msExchHideFromAddressLists") objExcel.ActiveCell.Offset(1,0).Activate objRecordSet.MoveNext End If Loop ObjConnection.Close Set ObjConnection = Nothing Set ObjCommand = Nothing Set ObjRecordSet = Nothing objExcel.Range("A1:F1").Select objExcel.Selection.Interior.ColorIndex = 19 objExcel.Selection.Font.ColorIndex = 9 objExcel.Selection.Font.Bold = True objExcel.Cells.EntireColumn.AutoFit wscript.echo "Terminé"Ce code est correctement formaté. Vous pouvez directement le COPIER / COLLER dans un fichier VBS.