Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
945 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Active Directory / LDAP][Récupération d'adresses emails du domaine]

 

Sujet(s) à lire :
    - macro excel boucle sur les colonnes
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Active Directory / LDAP][Récupération d'adresses emails du domaine]

n°1637936
Deroma1
Posté le 07-11-2007 à 07:54:20  profilanswer
 

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 :
  1. ' Export all valid recipients (= proxyAddresses) into a
  2. ' file virtual.txt
  3. '
  4. ' Ferdinand Hoffmann & Patrick Koetter
  5. ' 20021100901
  6. ' Shamelessly stolen from
  7. ' http://www.microsoft.com/windows2000/techinfo/ \
  8. ' planning/activedirectory/bulksteps.asp
  9. 'Global variables
  10. Dim Container
  11. Dim OutPutFile
  12. Dim FileSystem
  13. 'Initialize global variables
  14. Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject" )
  15. Set OutPutFile = FileSystem.CreateTextFile("virtual.txt", True)
  16. Set Container = GetObject("LDAP://OU=Societe,DC=xxxxxxxxxxxxxx,DC=local" )
  17. 'Enumerate Container
  18. EnumerateUsers Container
  19. 'Clean up
  20. OutPutFile.Close
  21. Set FileSystem = Nothing
  22. Set Container = Nothing
  23. 'Say Finished when your done
  24. WScript.Echo "Finished"
  25. WScript.Quit(0)
  26. 'List all Users
  27. Sub EnumerateUsers(Cont)
  28. Dim User
  29. 'Go through all Users and select them
  30. For Each User In Cont
  31. Select Case LCase(User.Class)
  32. 'If you find Users and Groups
  33. 'Added groups after Милен Панков mailed me about it :)
  34. Case "user", "group"
  35.   'Select all proxyAddresses
  36.   Dim Alias
  37.   If Not IsEmpty(User.proxyAddresses) Then
  38.     For Each Alias in User.proxyAddresses
  39.     OutPutFile.WriteLine "alias: " & Alias
  40.     'WScript.Echo Alias
  41.   Next
  42.   End If
  43. Case "organizationalunit" , "container"
  44.   EnumerateUsers User
  45. End Select
  46. Next
  47. 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 :
  1. 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

mood
Publicité
Posté le 07-11-2007 à 07:54:20  profilanswer
 

n°1638740
Deroma1
Posté le 08-11-2007 à 09:03:36  profilanswer
 

Bonjour,
 
Après différents tests, il semblerait que le problème vienne de certains comptes utilisateurs qui "bloquent" le parcours de l'arborescence. J'ai solutionné en les mettant en fin de liste ce qui me permet de récupérer la grande majorité des adresses emails, mais cette solution est bancale et ne me plait pas.
 
Qu'est ce qui peut empêcher le parcours de l'annuaire LDAP dans un compte d'utilisateur Active Directory et qui me provoque cette erreur?
 
Merci de votre aide, Théo

n°1638769
tegu
Posté le 08-11-2007 à 09:46:50  profilanswer
 

Il faudrait peut-être t'adresser à des admins système experts en Active Directory, plutôt qu'à des programmeurs à l'(in)expérience hétérogène.
As-tu fait une demande dans la catégorie « Systèmes et réseaux pro » pour compléter celle-ci ?

n°1638842
Deroma1
Posté le 08-11-2007 à 10:57:31  profilanswer
 

tegu a écrit :

Il faudrait peut-être t'adresser à des admins système experts en Active Directory, plutôt qu'à des programmeurs à l'(in)expérience hétérogène.
As-tu fait une demande dans la catégorie « Systèmes et réseaux pro » pour compléter celle-ci ?


 
C'est ce que je viens de faire, merci du conseil.

n°1638844
Deroma1
Posté le 08-11-2007 à 10:58:09  profilanswer
 

Deroma1 a écrit :


C'est ce que je viens de faire, merci du conseil.


 
> http://forum.hardware.fr/hfr/syste [...] 1919_1.htm


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Active Directory / LDAP][Récupération d'adresses emails du domaine]

 

Sujets relatifs
Récupération du calendrier de outlook dans une base de donnée sql[JAVA] Authentification avec LDAP
Récuperation nom des fenêtres IE[résolu] Recherches parallèles LDAP
htaccess: autoriser un domaine.Récupération paramètres de l'URL
Recuperation d'une image distante et uploadRécupération de variable
recuperation d une donnéeFormulaire : je ne reçois pas les emails
Plus de sujets relatifs à : [Active Directory / LDAP][Récupération d'adresses emails du domaine]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR