theflayer
Messages postés125Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention21 juin 2015
-
16 août 2012 à 10:42
theflayer
Messages postés125Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention21 juin 2015
-
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();
theflayer
Messages postés125Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention21 juin 20152 21 août 2012 à 16:50
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
theflayer
Messages postés125Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention21 juin 20152 21 août 2012 à 12:07
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