Exporter dans Excel les limites de BAL Exchange des utilisateurs Active Directory en VBScript

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 »

Laisser un commentaire