Modifier les groupes d'un utilisateur dans Active Directory [Résolu]

theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 16 août 2012 à 10:42 - Dernière réponse : theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention
- 21 août 2012 à 16:50
Salut tous le monde,

Petite question,

je crée un utilisateur dans mon active directory mais certain points ne fonctionne pas.
-Le premier point est au niveau du login, il y en a 2 :

-le premier se nomme Nom d'ouverture de session de l'utilisateur (celui qui m’intéresse)
-Le second Nom d'ouverture de session de l'utilisateur (Antérieur à Win 2000) (celui qu'il me remplit)

Second problème ce sont mes groupes, quand je rajoute la ligne user.Properties["memberOf"].Add("Mon_Groupe");

Cela me renvoie une exception , comme quoi le serveur ne veut pas traiter cette action. Si je ne la met pas, mise a part le problème du login ça fonctionne parfaitement. Voici mon code :



     DirectoryEntry Ldap = new DirectoryEntry(@"LDAP://serveur3", "Administrateur", "Mon_Pass");
                    DirectoryEntry user = Ldap.Children.Add("CN=" + sPrenom_b + " " + tNom.Text.ToUpper() +", CN=Users", "User");
                    user.Properties["sAMAccountName"].Add(tIdentifiant.Text.ToLower());
                    user.Properties["sn"].Add(tNom.Text.ToUpper());
                    user.Properties["givenName"].Add(sPrenom_b);
                    user.Properties["Mail"].Add(tMail.Text.ToLower());
                    user.Properties["Company"].Add("Ma_Boite");
                    user.Properties["description"].Add("Compte créé le : " + DateTime.Now.ToLongDateString());
                    user.CommitChanges();

                    user.Invoke("SetPassword", new object[] { tNom.Text.ToLower() });
                    user.Properties["userAccountControl"].Value = 0x0200; //active le compte avec le mode choisit (voir doc)
                    //user.Properties["memberOf"].Add("Mon_Groupe");
                    user.CommitChanges();



Merci de votre aide.
Afficher la suite 

2 réponses

Répondre au sujet
theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 21 août 2012 à 16:50
+3
Utile
 string LDAPDomain = "LDAP://serveur3/CN=" + groupes + ",CN=Users,DC=xxx,DC=xx,DC=com";
                    DirectoryEntry Group = new DirectoryEntry(LDAPDomain, "Administrateur", "Mon_Pass");

                    //on ajoute l'utilisateur au groupe
                    Group.Invoke("Add", new Object[] { user.Path.ToString() });
                    Group.CommitChanges();
                    Group.Close();


Voila comme ça, ça fonctionne !! J'ajoute l'utilisateur au groupe juste après l'avoir crée.






-La constante d'une personne est la variable d'une autre.
-Il y a deux manières d'écrire des programmes sans erreurs. Seule la troisième marche
-Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l'a pas
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de theflayer
theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 21 août 2012 à 12:07
0
Utile
Salut, je reviens vers vous , car je n'ai toujours pas de solution.

j'ai essayé de m'y prendre autrement en essayant de modifier le groupe plutôt que l'utilisateur, mais ça n'est pas beaucoup plus efficace.


                    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.
Merci


-La constante d'une personne est la variable d'une autre.
-Il y a deux manières d'écrire des programmes sans erreurs. Seule la troisième marche
-Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l'a pas
Commenter la réponse de theflayer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.