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

C# Discussion :

Modification d'un groupe active directory [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Modification d'un groupe active directory
    Bonjour a tous,

    Je cherche depuis plusieurs jour, comment ajouter un utilisateur à un groupe.
    j'ai suivis plusieurs tutos trouvé sur le site et sur la toile, mais ça ne fonctionne pas

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    DirectoryEntry Ldap = new DirectoryEntry(@"LDAP://serveur3", "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
     
                        if (richTextBox1.Text != "")
                        {
                            for (int i = 0; i < richTextBox1.Lines.Length - 1; i++)
                            {
                                tab[i] = richTextBox1.Lines[i];
                                DirectorySearcher search = new DirectorySearcher(Ldap);
                                search.Filter = "(&(objectClass=group) (cn=" + tab[i] + "))";
                                SearchResult results = search.FindOne();
     
     
                                string group = results.Path;
     
                                MessageBox.Show(group);
     
                                try
                                {
                                    DirectoryEntry myGroup = new DirectoryEntry(group, "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
                                    myGroup.Properties["Member"].Add("Jean DUPONT");//,CN=Users,DC=xxx,DC=xx,DC=com");
                                    myGroup.Close();
                                }
                                catch (DirectoryServicesCOMException) { }
                             }
                        }
    Si vous avez une idée, je suis preneur.
    Merci d'avance a tous.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    C'est quoi l'erreur ?

    myGroup s'open lors de la déclaration ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Salut,

    Il faut que tu enregistres les modifications si tu veux qu'elles soient prises en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                                try
                                {
                                    DirectoryEntry myGroup = new DirectoryEntry(group, "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
                                    myGroup.Properties["Member"].Add("Jean DUPONT");//,CN=Users,DC=xxx,DC=xx,DC=com");
                                    myGroup.CommitChanges();
                                    myGroup.Close();
                                }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Salut,

    pour le "myGroup.CommitChanges();" je l'ai mit, une erreur lors de la copie du code ici.

    Pour ce qui est de l'erreur, ben j'en ai tous simplement aucune, mais quand je regarde dans mon groupe si il m'a ajouté l'utilisateur, il n'y ai pas

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Oui, je pense qu'il ne trouve pas ton groupe..
    Il faut procédé comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                                    DirectoryEntry myGroup = new DirectoryEntry("LDAP://serveur3/"+group, "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
                                    myGroup.Properties["Member"].Add("Jean DUPONT");//,CN=Users,DC=xxx,DC=xx,DC=com");
                                    myGroup.CommitChanges();
                                    myGroup.Close();

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    En faite quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
                                DirectorySearcher search = new DirectorySearcher(Ldap);
                                search.Filter = "(&(objectClass=group) (cn=" + tab[i] + "))";
                                SearchResult results = search.FindOne();
     
     
                                string group = results.Path;
    C'est pour récupérer le chemin exacte. (la variable group me renvoie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LDAP://serveur3/CN=Group,CN=Users,DC=xxx,DC=xx,DC=com
    Parce que à la base je faisais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DirectoryEntry Ldap = new DirectoryEntry(@"LDAP://serveur3/CN=Group,CN=Users,DC=xxx,DC=xx,DC=com", "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
    Ce qui revient au même.
    Mais ce qui est bizarre c'est qu'il ne me renvoi pas d'erreur

  7. #7
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Citation Envoyé par theflayer Voir le message
    Mais ce qui est bizarre c'est qu'il ne me renvoi pas d'erreur
    L'utilisateur est créé?

    Autant pour moi pour le chemin, mais si l'user est créer le problème vient de la récupération du chemin...

    Si le chemin est correct tu peux essayé comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                                   DirectoryEntry myGroup = new DirectoryEntry(group, "Administrateur", "Mon_Pass", AuthenticationTypes.Secure);
                                   DirectoryEntry user = myGroup.Children.Add("CN=Jean Dupond", "user");
                    //Les propriétés à attribuer [...]
                                   user.CommitChanges();

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    T'inquiete y'a pas de soucis,

    ca me fait telment plaisir d'avoir du soutien, je suis entrain de craquer depuis hier .

    Pour ceci :

    DirectoryEntry user = myGroup.Children.Add("CN=Jean DUPONT", "user");

    j'avais trouvé sur le forum cette méthode.
    Mais elle me fait la même chose, c'est à dire que ça ne me renvoie aucune erreur, mais que ça ne m'ajoute pas l'utilisateur.

    Oui je suis sur qu'il est bien créé, car c'est un utilisateur qui fonctionne sur mon domaine et qui travaille en ce moment même.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    J'avais oublié d'enlever le catch..

    Quand je l’enlève, il me renvoi avec cette méthode, une exception DirectoryServiceComException : Violation de nom

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    par hasard, c'est pas le fait d'essayer de créer un utilisateur qui existe déjà qui fait planter?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Avec la deuxième méthode peut être, mais pas avec la première, j'ajoute un utilisateur sur la properties "member" du groupe.

    Pour google, j'ai telment passer de temps à chercher , qu'on est devenu intime

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 196
    Points : 197
    Points
    197
    Par défaut
    essaie de t'inspirer de cette page pour tester une autre méthode : http://msdn.microsoft.com/fr-fr/libr...4%28v=vs.90%29.

    J'espère que ça marchera.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Désolé de la réponse tardive , ma réponse précédente à été supprimer. Je ne savais pas que les liens était interdit.

    Pour mon problème je l'ai résolu avec un tuto trouver sur le net, modifier pour mon utilisation.
    Ne pouvant vous donnez le lien je vais donc vous copier le tout..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    public static void AddToActiveDirectory(string UserName, string login, string password, string Nom, string Prenom , string Societe, string mail )
        {
          try
          {
            //string sUserPath = "LDAP://OU=Membres,OU=TestOu,DC=MachineDomain,DC=Fr";
            string sUserPath = ConfigurationSettings.AppSettings["ADUserPath"];
     
            // on passe les params de login /password d'un compte NT à pouvoir sur AD
            DirectoryEntry entry = new DirectoryEntry(sUserPath, 
                 ConfigurationSettings.AppSettings["ADAdminLogin"],
                 ConfigurationSettings.AppSettings["ADAdminPassword"]);e
     
            // On cré le user avec ses propriétés
            //--------------------------------------------
            DirectoryEntry user = entry.Children.Add("cn=" + UserName, "user");
            user.Properties["sAMAccountName"].Add(login);  //compte NT
            user.Properties["sn"].Add(Nom);
            user.Properties["givenName"].Add(Prenom);
            user.Properties["description"].Add("Membre ajouté le " + DateTime.Now.ToLongDateString());
     
            //propriétés supplémentaires
            //--------------------------------------------
            user.Properties["displayName"].Add(Nom + " " + Prenom + "[" + Societe + "]");
            user.Properties["userPrincipalName"].Add(string.Format("{0}@{1}", login, ConfigurationSettings.AppSettings["ADDomain"]));   // Mail de login
            user.Properties["Mail"].Add(mail);
            user.Properties["Company"].Add(Societe);
     
            user.CommitChanges();
     
            // On doit d'abord sauver l'utilisateur pour ensuite lui affecter un password
            user.Invoke("SetPassword", new object[] {password} );
     
            // on crée un compte de base et on l'active ADS_UF_NORMAL_ACCOUNT
            user.Properties["userAccountControl"].Value = 0x200; 
            user.CommitChanges();
     
            //On fait une référence au groupe NT
            //string LDAPDomain = "LDAP://CN=GroupeTest,OU=Membres,OU=TestOu,DC=MachineDomain,DC=Fr";
            string LDAPDomain = System.Configuration.ConfigurationSettings.AppSettings["ADGroupePath"];
     
            DirectoryEntry Group= new DirectoryEntry(LDAPDomain,
              ConfigurationSettings.AppSettings["ADAdminLogin"],
              ConfigurationSettings.AppSettings["ADAdminPassword"]);
     
     
            //on ajoute l'utilisateur au groupe
            Group.Invoke("Add",new Object[]{user.Path.ToString()});
            Group.CommitChanges();
     
            Group.Close();
            user.Close();
     
          }
          catch( Exception exception )
          {
            Console.WriteLine( exception.Message );
          }
    Voila merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2009, 22h06
  2. Lister les membres d'un groupe active directory
    Par Ludo75 dans le forum VBScript
    Réponses: 1
    Dernier message: 18/06/2008, 18h08
  3. Modification du téléphone dans active directory
    Par antoine85 dans le forum ASP
    Réponses: 5
    Dernier message: 06/05/2008, 23h15
  4. [Sharepoint 2007] Groupes Active Directory introuvable
    Par Enthau dans le forum SharePoint
    Réponses: 2
    Dernier message: 21/04/2008, 17h14
  5. Réponses: 0
    Dernier message: 19/03/2008, 20h24

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