Bonjour à tou(te)s,
Mon post s'intégre dans un problème plus général évoqué ici http://forum.hardware.fr/hfr/OSAlt [...] 4985_1.htm
Je cherche à récupérer sur un domaine la liste des adresses emails existantes sur le domaine, pour en faire un fichier texte qui sera ensuite envoyé sur une passerelle relais SMTP sous Linux. Je ne suis pas expert en VB ni dans la structure d'Active Directory, ni dans la connaissance de LDAP.
J'ai récupéré un script qui pourrait m'être très utile à cette adresse http://postfix.state-of-mind.de/pa [...] mailrelay/ .
Le voici en détail et modifié par mes soins :
Code :
- ' Export all valid recipients (= proxyAddresses) into a
- ' file virtual.txt
- '
- ' Ferdinand Hoffmann & Patrick Koetter
- ' 20021100901
- ' Shamelessly stolen from
- ' http://www.microsoft.com/windows2000/techinfo/ \
- ' planning/activedirectory/bulksteps.asp
- 'Global variables
- Dim Container
- Dim OutPutFile
- Dim FileSystem
- 'Initialize global variables
- Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject" )
- Set OutPutFile = FileSystem.CreateTextFile("virtual.txt", True)
- Set Container = GetObject("LDAP://OU=Societe,DC=xxxxxxxxxxxxxx,DC=local" )
- 'Enumerate Container
- EnumerateUsers Container
- 'Clean up
- OutPutFile.Close
- Set FileSystem = Nothing
- Set Container = Nothing
- 'Say Finished when your done
- WScript.Echo "Finished"
- WScript.Quit(0)
- 'List all Users
- Sub EnumerateUsers(Cont)
- Dim User
- 'Go through all Users and select them
- For Each User In Cont
- Select Case LCase(User.Class)
- 'If you find Users and Groups
- 'Added groups after Милен Панков mailed me about it :)
- Case "user", "group"
- 'Select all proxyAddresses
- Dim Alias
- If Not IsEmpty(User.proxyAddresses) Then
- For Each Alias in User.proxyAddresses
- OutPutFile.WriteLine "alias: " & Alias
- 'WScript.Echo Alias
- Next
- End If
- Case "organizationalunit" , "container"
- EnumerateUsers User
- End Select
- Next
- End Sub
|
xxxxxxxxxxx correspond à une OU valide masquée pour la confidentialité.
Le script marche et me récupère quelques dizaines d'adresses emails, puis il me fait l'erreur 800A01C3, cet objet n'est pas une collection sur la ligne 43
Code :
- For Each Alias in User.proxyAddresses
|
La structure LDAP à parcourir est la suivante (schématiquement) :
A - B
C
D
E - F
G
H
I
...
W
X
En gros il me récupère bien les adresses emails des OU A à F (il rentre bien dans la sous-unité F), mais dès qu'il rentre dans G paf l'erreur ...
Quelqu'un a t'il une idée?
Merci de votre aide, Théo