Dans cet exemple, j’exporte dans Excel le nom et le login des utilisateurs d’une OU ainsi que certains attributs liés à la limite de leurs boites aux lettres (BAL).

Les limites des boites aux lettres Exchange se paramètrent à partir du gestionnaire des Utilisateurs et Ordinateurs Active Directory dans les propriétés Exchange des comptes utilisateurs dans cette fenêtre:

Fenêtre de propriété Active Directory - Exchange

Limites de stockage Exchange

Dans mon export j’utilise les attributs suivants:

Login : Name
Nom : sn
Prénom : GivenName
Taille des messages entrants : delivContLength
Taille des messages sortants : submissionContLength
Paramètres BAL par défaut : mDBUseDefaults
Emettre un avertissement : mDBStorageQuota
Interdire l’envoi à partir de : mDBOverQuotaLimit
Interdire l’envoi et la réception à partir de : mDBOverHardQuotaLimit

Script:


Dim ObjConnection, ObjCommand, ObjRecordSet, ObjRecord
Dim objExcel, objChild
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 = “EFESSYS101/dc=byefe,dc=com”

sProperties=”Name,DisplayName,sn,GivenName,distinguishedName,ADsPath,mail,UserAccountControl,delivContLength,submissionContLength,mDBUseDefaults,mDBStorageQuota,mDBOverQuotaLimit,mDBOverHardQuotaLimit”

objCommand.Properties(“Page Size”) = 10000
ObjCommand.CommandText = ” 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 = “Nom”
objExcel.ActiveCell.Offset(0,3).Value = “Prénom”
objExcel.ActiveCell.Offset(0,4).Value = “Taille messages entrants”
objExcel.ActiveCell.Offset(0,5).Value = “Taille messages sortant”
objExcel.ActiveCell.Offset(0,6).Value = “Paramêtre BAL par défault”
objExcel.ActiveCell.Offset(0,7).Value = “Emettre un avertissement”
objExcel.ActiveCell.Offset(0,8).Value = “Interdire l’envoi à partir de”
objExcel.ActiveCell.Offset(0,9).Value = “Interdire l’envoi et la reception à partir de”
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
tmpdisabled = “Disable”
else tmpdisabled = “Enable”
End If
objExcel.ActiveCell.Value = objRecordSet.fields(“DisplayName”)
objExcel.ActiveCell.Offset(0,1).Value = objRecordSet.fields(“Name”)
objExcel.ActiveCell.Offset(0,2).Value = objRecordSet.fields(“sn”)
objExcel.ActiveCell.Offset(0,3).Value = objRecordSet.fields(“GivenName”)
objExcel.ActiveCell.Offset(0,4).Value = objRecordSet.fields(“delivContLength”)
objExcel.ActiveCell.Offset(0,5).Value = objRecordSet.fields(“submissionContLength”)
objExcel.ActiveCell.Offset(0,6).Value = objRecordSet.fields(“mDBUseDefaults”)
objExcel.ActiveCell.Offset(0,7).Value = objRecordSet.fields(“mDBStorageQuota”)
objExcel.ActiveCell.Offset(0,8).Value = objRecordSet.fields(“mDBOverQuotaLimit”)
objExcel.ActiveCell.Offset(0,9).Value = objRecordSet.fields(“mDBOverHardQuotaLimit”)

objExcel.ActiveCell.Offset(1,0).Activate
objRecordSet.MoveNext
Loop

ObjConnection.Close
Set ObjConnection = Nothing
Set ObjCommand = Nothing
Set ObjRecordSet = Nothing

wscript.echo “Extraction Terminée”