IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Export liste users AD via SQL sur Excel


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut Export liste users AD via SQL sur Excel
    Bonjour à tous,


    Je planche sur des examens et j'aimerais donc si possible un maximum d'aide à ce niveau:

    Je cherche à exporter la liste d'utilisateurs d'un dossier ou de tous les dossiers de Active Directory avec SQL server 2005 dans un fichier Excel (Suite Bureautique Excel 2007 plus!)


    Pour cela j'ai cherché beaucoup de tutoriels complets en vain, j'ai des tutoriels incomplets qui bloquent sur une requête SQL . . .


    J'ai créé le serveur lié sous Excel, j'ai donné un nom, donné l'adresse du fichier excel qui est sur mon bureau du poste de travail, paramétré les droits etc . . . mais nada . . .


    Je suis donc désespéré sachant que les examens sont dans 20 jours . . .


    Merci de me donner une aide même approximative.


    Cordialement, Feldunost.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Si je comprends bien, tu utilises Excel pour exécuter une requête SQL Server qui utilise une serveur lié de type AD ?

    Peux-tu poster le code et mieux décrire : messages d'erreur par exemple ?
    Emmanuel T.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Non, ce n'est pas tout à fait ça, je vais expliquer en détail.


    J'ai un serveur Windows serveur 2003 Enterprise, ayant les rôles classiques d'une entreprise classique c'est à dire:

    - Nom de domaine: CfsaAftec.MysqlDomain
    - Serveur DHCP fonctionnel
    - Contrôleur de domaine (AD fonctionnel)
    - Mysql server 2005 opérationnel
    - Mysql management server 2005 express fonctionnel


    Tous les logiciels tiers sont installés, tout fonctionne normalement, maintenant j'importe mon propre arbre et paramètres d'entreprise dont une liste de 670 utilisateurs environ.

    Le nombre de postes atteint les 900 toutes avec leur dénomination respectives.


    Maintenant pour un état global, je veux exporter les utilisateurs et les postes affichés sur Active Directory avec le serveur lié SQL nommé SQLADXLS vers un fichier excel.


    J'ai donc suivi cette manœuvre qui me semble tout à fait normale:



    SQL Server Management Studio (SQL Server 2005)

    1. Dans SQL Server Management Studio, développez Objets serveur dans Explorateur d'objets.
    2. Cliquez avec le bouton droit sur Serveurs liés, puis cliquez sur Nouveau serveur lié.
    3. Dans le volet gauche, sélectionnez la page Général, puis procédez comme suit :
    1. Dans la première zone de texte, tapez un nom pour le serveur lié (SQLADXLS)
    2. Sélectionnez l'option Autre source de données.
    3. Dans la liste Fournisseur, cliquez sur Microsoft Jet 4.0 OLE DB Provider.
    4. Dans la zone Nom du produit, tapez Excel comme nom de la source de données OLE DB.
    5. Dans la zone Source de données, tapez le chemin et le nom de fichier complets du fichier Excel. (C:\Documents and Settings\Administrateur\Bureau\AD.xlsx , il s'agit de la suite bureautique de 2007 plus! )
    6. Dans la zone Chaîne du fournisseur, tapez Excel 8.0 pour un classeur Excel 2002, Excel 2000 ou Excel 97.
    7. Cliquez sur OK pour créer le nouveau serveur lié.


    Mais après aucune indication supplémentaire ne fonctionne, je reste bloqué à ce moment, je sais qu'on peut exporter en VB mais pour les examens je me dois d'utiliser SQL server . . .

    Merci de t'être penché sur mon cas.

  4. #4
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Bonjour,

    Il vous faut aussi un linked server vers votre AD.
    Ceci vous aidera certainement:
    http://codebetter.com/blogs/brendan....2/19/4746.aspx

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Donc ce que j'ai créé était le serveur lié au fichier Excel avec SQL server et je n'avais pas fait le serveur lié avec AD ce qui faisait qu'il n'arrêtait pas de me renvoyer des erreurs . . . .


    Je fais le Linked server pour AD de suite, je te tiens au courant.




    EDIT:

    Le serveur est bien lié et les droits semblent très bien paramétrés pourtant lors de l'exécution de cette commande, elle me retourne une erreur classique:

    Code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE VIEW dbo.vw_AD_USER_INFO
    AS
     
    SELECT * FROM OpenQuery(SQLAD, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://CN=CfsaAftec,CN=MysqlDomain,DC=Users'' where objectClass = ''User''')
     
    GO

    Erreur:

    Msg 7321, Level 16, State 2, Procedure vw_AD_USER_INFO, Line 4
    An error occurred while preparing the query "SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM 'LDAP://CN=CfsaAftec,CN=MysqlDomain,DC=Users' where objectClass = 'User'" for execution against OLE DB provider "ADSDSOObject" for linked server "SQLAD".

    info:

    SQLAD = serveur lié à AD
    SQLADXLS = serveur lié à Excel

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Petit Up, j'ai toute la journée de disponible et j'essaie de trouver la solution pour ce problème :s

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    J'ai fait un test qui fonctionne sur mon laptop. La difficulté était essentiellement le chemin LDAP et je pense que ton chemin n'est pas correct. J'ai précisé le nom du contrôleur de domaine et le domaine lui même, chaque partie étant préfixée par DC.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LDAP://serveur/DC=mydomain,DC=com
    Emmanuel T.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Eh ben je ne savais pas qu'on pouvait donner le chemin de cette manière, je dois mal m'y prendre mais je rencontre la même erreur pour ce chemin :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE VIEW dbo.vw_AD_USER_INFO
    AS
     
    SELECT * FROM OpenQuery(SQLAD, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://CfsaAftec.MysqlDomain/DC=Users,DC=Computers'' where objectClass = ''User''')
     
    GO


    Le CfsaAftec.MysqlDomain c'est le nom de domaine d'Active Directory donc directement le serveur non?

    Ensuite DC c'est les dossiers Users et Ordinateurs de Active Directory vu que on a besoin de ces données . . .



    Y a t-il quelque chose à mettre en place au niveau du LDAP? Je dois ajouter quelque chose à ce niveau?

    Je ne pense pas vu que AD est le LDAP . . . ?

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Tu peux obtenir le nom du serveur et le domaine en regardant les propriétés du poste de travail, sous l'onglet Nom de l'ordinateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM OpenQuery(SQLAD, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://<simplement le nom de ta machine où est l'active dir>/DC=<partie1 du nom de domaine>,DC=<partie2>,DC=etc....'' where objectClass = ''User''')
    Emmanuel T.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE VIEW dbo.vw_AD_USER_INFO
    AS
     
    SELECT * FROM OpenQuery(SQLAD, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://marshall-ff263d/DC=CfsaAftec,DC=MysqlDomain,DC=Users'' where objectClass = ''User''')
     
    GO



    Nom complet de l'ordinateur: marshall-ff263d.CfsaAftec.MysqlDomain
    Domaine: CfsaAftec.MysqlDomain

    Et toujours la même erreur, j'ai à mon avis loupé quelque chose . . .

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM OpenQuery(SQLAD, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://marshall-ff263d/DC=CfsaAftec,DC=MysqlDomain'' where objectClass = ''User''')
    Sans le DC=Users.
    Emmanuel T.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    J'ai copié ta ligne et toujours la même erreur . . .

    Msg 7321, Level 16, State 2, Procedure vw_AD_USER_INFO, Line 4
    An error occurred while preparing the query "SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM 'LDAP://marshall-ff263d/DC=CfsaAftec,DC=MysqlDomain' where objectClass = 'User'" for execution against OLE DB provider "ADSDSOObject" for linked server "SQLAD".


    J'avoue que c'est bizarre . . .



    Et quand je lance seulement ta ligne que tu m'as donnée, ça revient à cette erreur:

    Msg 7321, Level 16, State 2, Line 1
    An error occurred while preparing the query "SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM 'LDAP://marshall-ff263d/DC=CfsaAftec,DC=MysqlDomain' where objectClass = 'User'" for execution against OLE DB provider "ADSDSOObject" for linked server "SQLAD".





    Pour les droits d'exécution j'ai mis que l'exécution se faisait sans contexte de sécurité, en gros pas de problème de droits normalement, je ne vois pas ou est le problème !

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Etant donné que j'ai vraiment besoin que ça fonctionne, je vais poster des screens pour aider un peu vu que les examens approchent et là ça rigole pas vraiment :/










    Si vous avez besoin de plus pour m'aider, dites toujours

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    est-ce que tu peux afficher les propriétés du serveur lié (sécurité) ?
    Emmanuel T.

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Voilà 2 photos de rajoutés (une 3ème était mise mais bug . . . :


    Propriétés serveur lié pour Excel:




    Propriétés serveur lié AD (Securité):






    Les propriétés de sécurité sont les mêmes que ce soit pour AD que Excel, be made without using security context.

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Dans la partie securité,

    coche l'option "Be made using the login's current security context" et relance la requête. Si ce n'est pas suffisant, coche la dernière option et saisie le nom de ton user windows (domaine\user) et son mot de passe.
    Emmanuel T.

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Merci mon roi tu as débloqué la situation, je ne pensais pas que ce serait un souci de droits que je croyais bien paramétrés . . . xD

    Je peux finir à temps !


    Edit: Euh, la commande fonctionne mais après pour exporter sur le fichier excel, il ne trouve pas les données . . .

    J'ai fait ce qui était décrit ici en paramétrant bien comme il faut avec les bons droits mais la 2eme commande ne fonctionne pas

    http://blog.sqlauthority.com/2008/01...cel-datasheet/

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    Bonjour,


    Je reviens toujours ici car l'aide est franchement utile.

    Je suis toujours bloqué au niveau de l'export des utilisateurs, j'arrive à envoyer les requêtes mais aucune donnée ne transite entre AD => SQL => Excel.


    J'ai beau chercher les bonnes commandes SQL . . .


    Il ne me reste que moins d'une semaine pour finir et essayer de comprendre . . .



    Merci.

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    il faudrait poster les retours de commandes ou les messages d'erreur, mais également la requête que tu exécutes. Merci
    Emmanuel T.

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Avril 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    J'ai exécuté quelques requêtes disponibles, elles passent mais ne font rien.


    Je cherche donc les bonnes requêtes à exécuter . . . :s

    Je poste les requêtes exécutées auparavant dès ce soir.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Créer une relation entre deux tables en liste de choix via SQL
    Par myrddin99 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 07/05/2012, 22h44
  2. [XL-2007] Problème de commentaire SQL sur Excel
    Par samia004 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2010, 13h54
  3. Exportation en masse de tables sql vers Excel
    Par Vladek dans le forum Développement
    Réponses: 5
    Dernier message: 12/08/2010, 10h19
  4. Suppression de colonne via SQL sur Access Vba
    Par Benoit Labbey dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/06/2009, 13h39
  5. Réponses: 8
    Dernier message: 14/08/2006, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo