Exporter Active Directory dans Excel 1

Exporter Active Directory dans Excel

Faire un tableau dans Excel pour croiser les utilisateurs et les groupes Active Directory peut être bien utile. Ne serait-ce que pour voir plus clair les groupes qui sont sans membres ou pour avoir une synthèse des groupes par utilisateur.

Voici donc un programme qui permet de lire l’AD d’un domaine et de générer un fichier Excel avec en colonnes, les groupes, et en lignes les utilisateurs.

En croisement de lignes et colonnes, ‘1’ pour cocher si l’utilisateur est dans ce groupe. ainsi vous pourrez facilement faire des sommes de chaque groupe et pour chaque utilisateur.

J’ai “packagé” le projet dans un “msi”. C’est à dire que vous pouvez installer le programme sur votre windows. Ce package vous propose un EXE mais aussi les sources en VB.Net. L’exe est donc utilisable tel que mais si vous voulez refaire votre propre programme, vous trouverez le projet VisualStudio 2010 dans le répertoire d’installation de l’EXE

Comme ce programme utilise Excel, encore faut-il l’avoir installé sur votre machine 😉

Exporter Active Directory dans Excel (zip)

Je vous souhaite de bonnes exportations ! 😉

A propos Martial Auroy

Je suis formateur sur les offres de la plateforme Microsoft 365 et sur la suite Office de Microsoft : Excel, OneDrive, Planner, PowerPoint, SharePoint, Teams, Word, Yammer et tous leurs amis.

Je vous propose également...

E-book gratuit sur Excel 2

E-book gratuit sur Excel

En tant qu’admin système, technicien, informaticien, les utilisateurs nous demandent parfois de les aider sur …

Utilitaires gratuits pour l'administration AD 3

Utilitaires gratuits pour l’administration AD

Il s’agit d’un sujet que nous avons déjà souvent abordé dans le cadre de ce …

33 commentaires

  1. Tout d’abord, merci pour cet excellent programme.
    J’ai eu un message d’erreur lors de l’utilisation.
    Lors du débug, je me suis rendu compte que le symbole # était mal interprété.
    N’étant pas capable de résoudre le problème, j’ai ajouté un test :

    If sProp “” Then
    If sProp = “CN=TSUSERS\#SITE,OU=Groupes,OU=XXX,DC=YYY,DC=msft” Then sProp = “CN=TSUSERS#SITE,OU=Groupes,OU=XXX,DC=YYY,DC=msft”

  2. Bonjour,
    Juste ce qu’il me faudrait mais malheureusement erreur au téléchargement.
    est-il possible le de vérifier si le téléchargement marche toujours ?

  3. Bonjour,
    J’ai le meme problème qu’Andy d’octobre 2013…
    Pouvez vous me dire comment y remedier, ca me fera gagner un temps fou !
    Merci 🙂

  4. La macro est exactement ce que je recherchais. J’étais à la recherche de bout de code me permettant justement de réaliser la même chose. J’avoue que je n’aurais pas pensé à organiser ça de cette façon, c’est tout simplement Génial. Merci de m’avoir fait gagner au moins une journée 🙂

  5. Bonjour,

    Ce programme à l’air très intéressant et me rendrait de grands service. Mais impossible de lancer l’application, après installation sans erreur je ne trouve pas l’application sous program files ( x86) ni ailleurs d’ailleurs !

    En te remerciant

  6. Bonjour,
    J’ai une boîte de dialogue qui s’affiche :

    Consultez la fin de ce message pour plus de détails sur l’appel du débogage
    juste-à-temps (JIT) à la place de cette boîte de dialogue.

    ************** Texte de l’exception **************
    System.Exception: Impossible de créer le composant ActiveX.
    à Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName)
    à WindowsApplication1.Form2.CreateExcelSheet()
    à WindowsApplication1.Form2.Button1_Click(Object sender, EventArgs e)
    à System.Windows.Forms.Control.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    à System.Windows.Forms.Control.WndProc(Message& m)
    à System.Windows.Forms.ButtonBase.WndProc(Message& m)
    à System.Windows.Forms.Button.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Assemblys chargés **************
    mscorlib
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.296 (RTMGDR.030319-2900)
    CodeBase : file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    —————————————-
    WindowsApplication1
    Version de l’assembly : 1.0.0.0
    Version Win32 : 1.0.0.0
    CodeBase : file:///C:/Program%20Files%20(x86)/SetupExportExcelAD/WindowsApplication1.exe
    —————————————-
    Microsoft.VisualBasic
    Version de l’assembly : 10.0.0.0
    Version Win32 : 10.0.30319.1 built by: RTMRel
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    —————————————-
    System
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.296 built by: RTMGDR
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Core
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.233 built by: RTMGDR
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    —————————————-
    System.Windows.Forms
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.278 built by: RTMGDR
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System.Drawing
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.282 built by: RTMGDR
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    System.Runtime.Remoting
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    —————————————-
    System.DirectoryServices
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.DirectoryServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.dll
    —————————————-
    System.Configuration
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-
    System.Xml
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.233 built by: RTMGDR
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    mscorlib.resources
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll
    —————————————-
    Microsoft.VisualBasic.resources
    Version de l’assembly : 10.0.0.0
    Version Win32 : 10.0.30319.1 built by: RTMRel
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic.resources/v4.0_10.0.0.0_fr_b03f5f7f11d50a3a/Microsoft.VisualBasic.resources.dll
    —————————————-
    System.Windows.Forms.resources
    Version de l’assembly : 4.0.0.0
    Version Win32 : 4.0.30319.1 built by: RTMRel
    CodeBase : file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
    —————————————-

    ************** Débogage JIT **************
    Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
    application ou cet ordinateur (machine.config) doit avoir la valeur
    jitDebugging définie dans la section system.windows.forms.
    L’application doit également être compilée avec le débogage
    activé.

    Par exemple :

    Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
    seront envoyées au débogueur JIT inscrit sur l’ordinateur
    plutôt que d’être gérées par cette boîte de dialogue.

    PS : Je suis un débutant

    Merci

  7. Bonjour,

    Super petit programme qui marche très bien !
    Est-ce que l’on peut paramétrer les champs que l’on souhaite exporter (comme par exemple l’adresse mail) ?

  8. Me revoilà…
    Changé de poste de travail, passage à Seven Pro SP1 + MS Office 2010 SP1.
    Je me dis que ca va peut etre marcher, mais : http://pastebin.com/xj3Wb46w

    Il doit y avoir un soucis du coté de notre AD (2003 natif)

    • Bonjour,
      Non, je ne crois pas que cela vienne de l’AD; A moins qu’il y ait un nom de groupe qui gène Excel. L’erreur vient du programme quand il sélectionne une plage de cellules. Je suppose que l’erreur intervient quand, pour un user donné, il cherche à sectionner la colonne du groupe pour cocher son appartenance.
      Cette plage, il ne la trouve pas ou en tous les cas Excel n’aime pas cette recherche.
      Il faut essayer le programme à partir des sources et voir au moment où il se plante quelles en sont les raisons. En mode release, on voit où il se plante mais on a pas le contenu des données.

  9. Bonjour,

    Ce petit programme m’intéresserait fortement mais “erreur 404” lorsque je clique sur le lien de téléchargement 🙁

  10. Je viens de le lancer. Mais je rencontre une erreur (oui encore 😉 ).
    Je suis admin non pas de l’ad mais d’une OU, faut il lancer l’exécutable à partir du contrôleur de domaine (si oui c’est foutu pour moi :-() ?

  11. Bonjour,
    Je viens d’essayer sans passer par le serveur qui filtre notre accès internet et effectivement, cela fonctionne.
    Un grand merci à toi pour avoir pris le temps de me répondre.
    🙂

  12. En fait voilà l’erreur :

    7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
    p7zip Version 9.04 (locale=fr_FR.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

    Error: /home/navigation/Téléchargements/SetupExportExcelAD(2).zip: Can not open file as archive

    Errors: 1

    • hum hum.
      De mon coté c’est la version 9.20 de 7Zip mais cela ne doit pas changer.Y aurait-il un firewall ou un antivirus qui ferait filtre ?
      Essayes depuis un autre endroit.
      Et puis sinon, je peux te l’envoyer par email.

  13. Alors je ne comprends qu’est ce qui peut planter chez moi car lorsque je clique dessus le zip se charge en effet, mais il est à 0 octets et lorsque je veux le dézipper, il me marque un message d’erreur.
    Merci pour votre patience. 🙂

  14. Bonjour,
    Le lien fonctionne mais renvoie sur un dossier “vide” donc extraction impossible.
    Qu’en est il ?

  15. Le lien de téléchargement n’est plus valide.

    Merci

  16. Helas je ne parles pas le VB dans le texte mon truc c’est plutôt bash, ce qui ne m’est pas d’une grande utilité pour ce qui me concerne. Je n’ai meme pas visuel studio d’installé, pour dire…
    Excel se lance bien, c’est à ce moment là que çà plante d’ailleurs. .Net 4.0 est installé.
    J’ai essayé depuis un autre poste, même config (XP SP3 – EXCEL 2003): même erreur.

    Pour info:
    Voir les logs ici : http://pastebin.com/ESkD1sm7

    • C’est pire que des logs linux ça !!! hé hé (ptit troll)

    • Excel se lance bien, donc c’est lors du remplissage de la feuille. Le programme créé la première ligne avec les noms des groupes, puis il créé chaque utilisateur ligne par ligne.
      A chaque utilisateur, il cherche le groupe d’appartenance, sélectionné la colonne d’excel correspondante et renseigne “1” à l’intérieur.
      Peut-être que la recherche et la sélection par le VB n’était pas supporté avant Excel 2007 ?!
      Je n’ai pas le 2003 pour débugger.
      Si tu veux t’y frotter, le VisualStudio Express est gratuit sur le site de Microsoft. Tu peux donc suivre le programme facilement. Enfin, si tu programmes un petit peu. Il suffira d’ouvrir le projet VisualStudio installé en même temps que le programme.

  17. Bonjour,
    Super interresé par ce script, j’ai systematiquement une erreur à l’execution: “Exception from HRESULT: 0x800A03EC”
    J’execute depuis un poste XP SP3 avec Excel 2003…

    • Bonjour,
      L’erreur est assez vague. Avez-vous essayé de debuggé à partir des sources ?
      Comme ceci, à brule pour poing, c’est un handle qui est nul. Donc soit sur l’accès à l’AD, soit sur l’accès à Excel.
      Dans le premier cas, cela peut être dépendant du framework. Pour ce programme, il faut le 4.0
      Excel 2003, je n’ai pas testé. Cela fonctionne avec 2007 et 2010…
      en reprenant les sources avec VStudio, j’ai mis en commentaire des essais de résultats sans Excel.
      Il faudrait essayer sans Excel donc juste pour voir si cela vient d’une ou de l’autre partie.
      Bon tests.

    • La différence est très rapide : Avec csvde, il faut retravailler les fichiers exportés. Par exemple le croisé des utilisateurs et des groupes que j’expose ici n’est pas aisé avec des fichiers de csvde.
      Là c’est simple.
      Par contre csvde permet plus de filtres que dans l’exemple ici. Avec mon utiltaire il faut travaillé un peu le code.

  18. quels prérequis?
    s’installes pas sous SBS 2003

    • Les prérequis sont Excel; J’ai fais les tests avec 2010 mais cela doit fonctionner avec 2007.
      Et puis .Net 4.0 qui doit s’installer automatiquement s’il n’est pas sur la machine qui exécute l’install.