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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Lister EmployeeNumber de l'AD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Lister EmployeeNumber de l'AD

n°1790208
canigou4
siteman ...
Posté le 21-09-2008 à 23:00:49  profilanswer
 

Bonjour,  :hello:  
 
Je débute dans la programmation de script, cependant en cherchant un peu sur le net etc, j'ai réussi à avancer dans ce que je cherche à faire :
 
Se connecter à l'AD, chercher tous les utilisateurs ayant le champ EmployeeNumber correspondant à celui du fichier txt.
 
Cependant j'ai une erreur lors de l'execution, j'arrive pas à compter le nombre d'utilisateur ayant ce même champ (justement je veux chercher les doublons) et si il y en a bien que 1, vérifier d'autres informations.
 
Voici le code :

Code :
  1. 'On Error Resume Next
  2. 'Variables
  3. InputFile  = "c:\script\users.txt"
  4. AdminUser  = "administrateur"     
  5. AdminPswd  = "pass"         
  6. Domain     = "domaine.eu"     
  7. NombreEmployee = 0
  8. FormatTelephoneNumber = "E164"
  9. 'Ouverture du fichier txt avec liste des utilisateurs
  10. 'Format .txt avec séparation par virgule
  11. 'employeNumber,Nom,Prénom,numéro de téléphone
  12. Set FSO    = CreateObject("Scripting.FilesyStemObject" )
  13. Set oFile  = FSO.OpenTextFile(InputFile)
  14. 'Connection à Active Directory
  15. part1 = Left(Domain,Instr(Domain,"." ) - 1)
  16. part2 = Mid(Domain,Instr(Domain,"." ) + 1)
  17. Set objConnection = CreateObject("ADODB.Connection" )
  18. Set objCommand    = CreateObject("ADODB.Command" )
  19. objConnection.Provider = "ADsDSOObject"
  20. objConnection.Open "Active Directory Provider"
  21. Set objCommand.ActiveConnection = objConnection
  22. objCommand.Properties("Page Size" ) = 10000
  23. objCommand.Properties("Searchscope" ) = ADS_SCOPE_SUBTREE
  24. Set openDS = GetObject("LDAP:" )
  25. 'Ouverture du fichier txt
  26. Do Until oFile.AtEndOfLine
  27.    LineIn = oFile.ReadLine
  28.    If LineIn <> "" Then
  29.       Champ  = Split(LineIn, "," )
  30.       'Récupération des champs
  31.       Champ(0) = Trim(Champ(0))
  32.       Champ(1) = Trim(Champ(1))
  33.       Champ(2) = Trim(Champ(2))
  34.       Champ(3) = Trim(Champ(3))
  35.      
  36.       'Browse de l'AD à la recherche des EmployeeNumber   
  37.       objCommand.CommandText = _
  38.        "SELECT distinguishedName FROM 'LDAP://dc=" & part1 & ",dc=" & part2 & "' " & _
  39.        "WHERE objectCategory = 'user' " & _
  40.        "AND employeeNumber = '" & Champ(0) & "'"
  41.       Set objRecordSet = objCommand.Execute
  42.       'objRecordSet.MoveFirst
  43.   'Compte du nombre de EmployeeNumber et Erreur si != 1
  44.   NombreEmployee = 0
  45.       Do Until objRecordSet.EOF 
  46.        NombreEmployee = NombreEmployee + 1
  47.        objRecordSet.MoveNext
  48.       Loop
  49.       If NombreEmployee <> "1" Then
  50.        WScript.Echo Champ(0) & Champ(1) & ": Erreur nombre d'EmployeeNumber"
  51.       Else
  52.        WScript.Echo "OK : Un seul EmployeeNumber pour " & Champ(0) & Champ(1)
  53.        'On vérifie tous les champs Email/TéléphoneNumber/nom/Prénom/DisplayName
  54.        DN = objRecordSet.Fields("distinguishedName" ).Value
  55.        'Connection a AD et vérification
  56.        Set usr = openDS.OpenDSObject("LDAP://" & Domain & "/" & DN, AdminUser, AdminPswd, ADS_SECURE_AUTHENTICATION)
  57.       End If
  58.      
  59.      
  60.    End If
  61. Loop
  62. 'Fermeture de toutes les connections
  63. Set usr = Nothing
  64. Set objCommand.ActiveConnection = Nothing
  65. Set objCommand = Nothing
  66. Set objConnection = Nothing
  67. Set openDS = Nothing
  68. Set oFile = Nothing
  69. Set FSO = Nothing


 
Donc si vous avez une idée de pourquoi j'ai une erreur au movefirst (C:\script\Verif_user.vbs(52, 7) ADODB.Recordset: BOF ou EOF est égal à True ou l
'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregis
trement actuel.) ou alors si je le commente au fait que je ne trouve aucun utilisateur ayant le même employeeNumber.
 
Si vous avez une idée ?
 
Merci !  :jap:


Message édité par canigou4 le 21-09-2008 à 23:03:12
mood
Publicité
Posté le 21-09-2008 à 23:00:49  profilanswer
 


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

  [VB] Lister EmployeeNumber de l'AD

 

Sujets relatifs
Utilisateurs sous AD Server 2003Lister / naviguer dans des répertoires via Tomcat
[VBS] Script AD, ne pas afficher les erreursScript SQLPlus Oracle ==> Programme VB
Lister les liaisons DDE d'un réseau d'entreprise[VB]joindre une commande de mise en page EXCEL à une commande d'export
[BAT/VBS] Plusieurs questions[VBA] requete SQL dans un programme VB pour publipostage vers word
Recherche developpeur pour recompiler sources VB 6?[ACCESS] Remplir une table a partir d'une requête SQL en VB
Plus de sujets relatifs à : [VB] Lister EmployeeNumber de l'AD


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