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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Script extract user AD VBS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script extract user AD VBS

n°2164277
Ekimmu
Posté le 16-11-2012 à 10:02:21  profilanswer
 

Je viens vers vous pour un petit problème que je rencontre sur un script VBS.
 
Le but de mon script est d'extraire l'ensembles des utilisateurs de mon domaine avec divers informations et par la suite les mettre en forme sous excel. Pour le moment le script ne marche que pour les utilisateurs, mais je souhaite par la suite pouvoir extraire les ordinateurs.
 
Mon script en lui même marche très bien pour le moment, le voici :
 
 

Code :
  1. ' ------ Le domaine AD est a jouter en fixe dans le    ------
  2. ' ------ String StrDomainDN pour des raisons d'utilisations courantes ------
  3. dim fso, MyFile, reptemp, filetext
  4. ' Attention à modifier le nom LDAP du domaine
  5. strDomainDN ="dc=xx,dc=xx,dc=xx,dc=xx,dc=xx"
  6. ' Attention le répertoire c:\temp doit exister
  7. reptemp="c:\temp\"
  8. Filetext=Inputbox("fichier temporaire cible : " )
  9. Set fso = CreateObject("Scripting.FileSystemObject" )
  10. ' création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
  11. set MyFile = fso.CreateTextFile(reptemp + filetext + ".txt" )
  12. ' Ici un filtre sur les utilisateurs et je récupére leur Distinguishedname
  13. strBase   =  "<LDAP://" & strDomainDN & ">;"
  14. strFilter = "(&(objectclass=user)(objectcategory=person));"
  15. strAttrs  = "distinguishedname;"
  16. strScope  = "subtree"
  17. set objConn = CreateObject("ADODB.Connection" )
  18. set objCmd = Createobject("ADODB.Command" )
  19. objConn.Provider = "ADsDSOObject"
  20. objConn.Open "Active Directory Provider"
  21. 'Ici lancement de la requete avec les propriétés qu'on souhaite
  22. objTest = strBase & strFilter & strAttrs & strScope
  23. objCmd.ActiveConnection = objConn
  24. 'objCmd.Properties("SearchScope" ) = 2
  25. 'objCmd.Properties("Page Size" ) = 500
  26. objCmd.CommandText = objTest
  27. Set objRs = objCmd.Execute
  28. ' Ici écriture dans le fichier txt dans le c:\temp
  29. objRS.MoveFirst
  30. while Not objRS.EOF
  31. MyFile.WriteLine (objRS.Fields(0).Value)
  32.     objRS.MoveNext
  33. wend
  34. MyFile.close
  35. ' Maintenant avec le fichier txt je récupère les informations utilisateurs par utilisateurs
  36. on error resume next
  37. Dim objConnection, objRecords, objExcel, strQuery, i, objSpread, intRow
  38. strSheet = "c:\Source.xls"
  39. Set objExcel = CreateObject("Excel.Application" )
  40. Set objSpread = objExcel.Workbooks.Open(strSheet)
  41. Set objFSO = CreateObject("Scripting.FileSystemObject" )
  42. Set UserListe = objFSO.OpenTextFile(reptemp + Filetext + ".txt" )
  43. 'Renseigner le numéro de la première ligne Excel ou vous souhaité écrire les inforamations
  44. i = 2
  45.   ' liste des attributs à récupérer
  46.   Do Until UserListe.AtEndofStream
  47. UserLDAP = UserListe.Readline
  48. Set objUser = GetObject("LDAP://" & UserLDAP & "" )
  49.  CNStr = left(UserLDAP, Instr (UserLDAP, "," ) -1)
  50.  OuStr = Right(UserLDAP, len(UserLDAP) - Instr (UserLDAP, "," ))
  51.  objExcel.ActiveSheet.Range("A" & i).Value = SamaccountName
  52.  objExcel.ActiveSheet.Range("B" & i).Value = objUser.givenName
  53.  objExcel.ActiveSheet.Range("C" & i).Value = objUser.sn
  54.  objExcel.ActiveSheet.Range("D" & i).Value = objUser.displayName
  55.  objExcel.ActiveSheet.Range("E" & i).Value = OuStr
  56.  objExcel.ActiveSheet.Range("F" & i).Value = objUser.Description
  57.  objExcel.ActiveSheet.Range("G" & i).Value = objUser.GetEx("memberOf" )
  58.  i = i + 1
  59.   loop
  60. 'Sauvegarde du fichier Excel
  61. objExcel.ActiveWorkbook.SaveAs(reptemp + Filetext + ".xls" )
  62. objExcel.ActiveWorkbook.Close
  63. objExcel.Workbooks.Close
  64. msgbox "fin de récupération des utilisateurs. Le fichiers excel est dans " + reptemp + Filetext + ".xls"
  65. objExcel.Quit


 
 
 
Cependant je souhaiterai pouvoir extraire l'ensemble des groupes de tout les utilisateurs (normalement la ligne 75) mais cela ne marche pas.
J'ai bien trouvé quelque chose qui semble être bon mais je ne sais pas trop comment l’intégrer a mon script :
 

Code :
  1. objmemberOf  = objUser.GetEx("memberOf" )
  2. For Each objGroup in objmemberOf
  3.    strList = strList & objGroup & vbcr
  4. Next


 
 
 
Si des gens ont des conseils je prend volontier

mood
Publicité
Posté le 16-11-2012 à 10:02:21  profilanswer
 


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

  Script extract user AD VBS

 

Sujets relatifs
Include en VBS ?[Shell] Problème script dans script
Problème VBA/VBSlancer un script dans un quiz
pbl d'ajout données hexa dans le registre à partir d'un VBS[VBS] If ligne = xxx sauter
Script pour téléchargementSous Linux, logger un script shell
Problème avec script ping IP RangeScript open source Gestion de project
Plus de sujets relatifs à : Script extract user AD VBS


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