1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
'Connexion a l'AD
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") = 2
'Definition de la requete :
strSelect = "Name, Description, mail, msExchOmaAdminWirelessEnable, protocolSettings, altRecipient, msNPAllowDialin"
strFrom = "'LDAP://ou=utilisateurs,dc=MyDomain,dc=local'"
strWhere = "objectClass='user'"
strOrder = "Name ASC"
objCommand.CommandText = "SELECT " & strSelect & " FROM " & strFrom & " WHERE " & strWhere & " ORDER BY " & strOrder
'Création d'un recordset d'après la requete
Set objRecordSet = objCommand.Execute
'Si le recordset contient des enregistrements, alors...
If objRecordSet.RecordCount > 0 Then
'On se déplace sur la ligne 1ère ligne
objRecordSet.MoveFirst
'Tester l'existance du fichier avant d'ecrire dedant
Set FileSys = CreateObject("Scripting.FileSystemObject")
strFilePath = "c:\ad.txt"
If FileSys.FileExists (strFilePath) then
Msgbox "Le fichier existe, supprimer le et relancer le script."
Else
'Il n'existe pas, alors on le crée
Set MonFic = FileSys.CreateTextFile(strFilePath)
'On inscrit l'entete des colonnes
MonFic.writeLine "Nom;Description;Mail;Mobile;VPN;Transfert mail;OWA;"
'On le replit
While Not objRecordSet.EOF
'La focntion usrVar sert a mettre les données usr*** en forme
Call usrVar
'On ecrit dans le fichier
With MonFic
.writeLine usrname & usrDescript & usrmail & usrmobile & usrVPN & usrFoward & usrProtocol
End With
objRecordSet.MoveNext
Wend
objRecordset.Close
MonFic.Close
msgbox "Le fichier est créé dans " & strFilePath
End if
Else
'Aucun enregistrement
msgbox "La requete a renvoyée aucune donnée."
End If
'_________________________________________________________
'Convertion des valeurs en texte
Function usrVar
' on inscrit les enregistrement non Null dans des variables...
'Nom
If IsNull(objRecordSet.Fields("Name").Value) = True Then
usrName = ";"
Else usrName = objRecordSet.Fields("Name").Value & ";"
End If
'Description
If IsNull(objRecordSet.Fields("Description").Value) = True Then
usrDescript = ";"
Else usrDescript = ";"'objRecordSet.Fields("Description").Value & ";"
End If
'mail
If IsNull(objRecordSet.Fields("mail").Value) = True Then
usrMail = ";"
Else usrMail = objRecordSet.Fields("mail").Value & ";"
End If
'Fonctionnalité Exchange, Services mobiles -> usrMobile
usrMobile = MobileConvert(objRecordSet.Fields("msExchOmaAdminWirelessEnable").Value) & ";"
'Fonctionnalité Exchange, Protocol. Petite fonction pour tester OWA -> usrProtocol
If IsNull(objRecordSet.Fields("protocolSettings").Value) = True Then
usrProtocol = "Activé;"
Else DescList = objRecordSet.Fields("protocolSettings").Value
For Each Desc In DescList
i = InStr(1, Desc, "§", vbTextCompare)
If Left(Desc, i - 1) = "HTTP" Then
Desc = Right(Desc, Len(Desc) - i)
If Left(Desc, 1) = "1" Then
usrProtocol = "Activé;"
Else
usrProtocol = "Désactivé;"
End If
End If
Next
End If
'Exchange, Option de Remise, Adresse de transfert
If IsEmpty(objRecordSet.Fields("altRecipient").Value) = False Then
usrFoward = ";"
Else
usrFoward = objRecordSet.Fields("altRecipient").Value & ";"
End If
'Appel entrant, Autorisation d'acces distant
usrVPN = VPNconvert(objRecordSet.Fields("msNPAllowDialin").Value) & ";"
End Function
'_________________________________________________________
'Convertion de la valeur en texte
Function VPNconvert(VPN)
If VPN = "Vrai" Then
VPNconvert = "Autorisé"
ElseIf VPN = "Faux" Then
VPNconvert = "Refusé"
Else VPNconvert = "Selon stratégie"
End If
End Function
'_________________________________________________________
'Convertion de la valeur décimale en donnée texte
Function MobileConvert(Mobile)
Select Case Mobile
Case 0 MobileConvert = "OMA, Active Sync, DirectPush"
Case 1 MobileConvert = "OMA, Active Sync"
Case 2 MobileConvert = "Active Sync, DirectPush"
Case 3 MobileConvert = "Active Sync"
Case 5 MobileConvert = "OMA"
Case 7 MobileConvert = "Aucun accès"
Case Else MobileConvert = "Introuvable"
End Select
End Function |
Partager