OVH Cloud OVH Cloud

Problème d'ajout de Groupe AD

2 réponses
Avatar
François Gaumond
Bonjour,

j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
l'exécute j'ai toujours une erreur :

"Une violation de contrainte s'est produite." Normalement cette exception
est lancée si je tente de faire de quoi de non permi sur Active Directory.
Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.

Merci beacuoup !

public string AjouterGroupe()
{
DirectoryEntry ouAjout;
DirectoryEntry leDomaine;
DirectorySearcher domSearch;

try
{
leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);

//Recherche du OU tout dépendant de son format en entré
domSearch = new DirectorySearcher(leDomaine);
if (ou.StartsWith("OU="))
{
domSearch.Filter = "(" + ou + ")";
}
else
{
domSearch.Filter = "(OU=" + ou + ")";
}
domSearch.SearchScope = SearchScope.Subtree;
SearchResult result = domSearch.FindOne();
if (result != null)
{
ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
if (ou.StartsWith("OU="))
{
ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
return "Le OU n'existe pas dans le domaine";
}
}
DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
monGrp.Properties["Description"].Add(nom);
monGrp.Properties["groupType"].Value =
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
monGrp.CommitChanges();
return "";
}
catch (Exception e)
{
return e.Message;
}
}

2 réponses

Avatar
François Gaumond
Oui et il n'y a pas de problème a créer un OU, un user, etc.

"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de
news:
Tu te connectes bien avec les droits d'administrateur du domaine sur ton


AD ?

A+

LEBRUN Thomas

"François Gaumond" a écrit :

> Bonjour,
>
> j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
> utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
> l'exécute j'ai toujours une erreur :
>
> "Une violation de contrainte s'est produite." Normalement cette


exception
> est lancée si je tente de faire de quoi de non permi sur Active


Directory.
> Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
>
> Merci beacuoup !
>
> public string AjouterGroupe()
> {
> DirectoryEntry ouAjout;
> DirectoryEntry leDomaine;
> DirectorySearcher domSearch;
>
> try
> {
> leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
> laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
>
> //Recherche du OU tout dépendant de son format en entré
> domSearch = new DirectorySearcher(leDomaine);
> if (ou.StartsWith("OU="))
> {
> domSearch.Filter = "(" + ou + ")";
> }
> else
> {
> domSearch.Filter = "(OU=" + ou + ")";
> }
> domSearch.SearchScope = SearchScope.Subtree;
> SearchResult result = domSearch.FindOne();
> if (result != null)
> {
> ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
> }
> else
> {
> if (ou.StartsWith("OU="))
> {
> ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
> ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
> }
> else
> {
> return "Le OU n'existe pas dans le domaine";
> }
> }
> DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
> monGrp.Properties["Description"].Add(nom);
> monGrp.Properties["groupType"].Value > > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
> ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
> monGrp.CommitChanges();
> return "";
> }
> catch (Exception e)
> {
> return e.Message;
> }
> }
>
>
>


Avatar
François Gaumond
La solution est très simple et je suis vraiment bête de ne pas y avoir pensé
avant :

il faut définir la propriété sAMAccountName et le tout fonctionne no.1

encore une fois un gros merci à adsiedit.msc l'utilitaire oar excelence
lorsque l'on programme avec AD

"François Gaumond" a écrit dans le message de
news:
Bonjour,

j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
l'exécute j'ai toujours une erreur :

"Une violation de contrainte s'est produite." Normalement cette exception
est lancée si je tente de faire de quoi de non permi sur Active Directory.
Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.

Merci beacuoup !

public string AjouterGroupe()
{
DirectoryEntry ouAjout;
DirectoryEntry leDomaine;
DirectorySearcher domSearch;

try
{
leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);

//Recherche du OU tout dépendant de son format en entré
domSearch = new DirectorySearcher(leDomaine);
if (ou.StartsWith("OU="))
{
domSearch.Filter = "(" + ou + ")";
}
else
{
domSearch.Filter = "(OU=" + ou + ")";
}
domSearch.SearchScope = SearchScope.Subtree;
SearchResult result = domSearch.FindOne();
if (result != null)
{
ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
if (ou.StartsWith("OU="))
{
ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
return "Le OU n'existe pas dans le domaine";
}
}
DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
monGrp.Properties["Description"].Add(nom);
monGrp.Properties["groupType"].Value > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
monGrp.CommitChanges();
return "";
}
catch (Exception e)
{
return e.Message;
}
}