none
Avoir ou afficher la liste de toutes les propriétés possibles d'un utilisateur d'active directory RRS feed

  • Question

  • Bonjour,

    au cours de mon projet je doit changer les propriétés de n'importe quel utilisateur de l'active directory (AD).
    j'ai trouvé le moyen de changer une propriété d'un user, mais je doit déjà la connaître.

    • Est ce qu'il y a une fonction qui liste toutes les propriétés possible sur "AD" et si ce n'est pas possible pouvez vous me donner un site qui liste toutes les propriétés??
    • Est-il possible de changer n'importe quel propriété d'un utilisateur??
    • Ya t-il d'autres contraintes que je n'ai pas pris en compte??

    merci d'avance pour votre aide :)



    vendredi 4 avril 2014 13:46

Réponses

  • Bonjour,

    Non, il n'est pas possible de coder plus de 1400 propriétés mais il est possible de récupérer les propriétés et de savoir si cette propriété est modifiable ou pas.

    exemple VB.net :

    Imports System.DirectoryServices

            Dim oRoot As New DirectoryEntry("LDAP://DC=xxx,DC=xxx,DC=xxxx")
            Dim oSearcher As DirectorySearcher = New DirectorySearcher(oRoot)
            Dim oResult As SearchResult
            oSearcher.Filter = "samaccountname=userbidon"
            oResult = oSearcher.FindOne()
            For Each PropCollect In oResult.GetDirectoryEntry().Properties.PropertyNames
                Console.WriteLine(PropCollect)
    
            Next

    Il est possible a partir du code de faire des modifications si elles sont modifiables dans le cas contraire elles sont accessible uniquement en lecture (ne pas oublier un bloc Try)

    Exemple C#

                DirectoryEntry oRoot = new DirectoryEntry("LDAP://DC=xxx,DC=xxx,DC=xxxx");
                DirectorySearcher oSearcher  = new DirectorySearcher(oRoot);
                SearchResult oResult;
                oSearcher.Filter = "samaccountname=userbidon";
                oResult = oSearcher.FindOne();
    
                foreach (object PropCollect in oResult.GetDirectoryEntry().Properties.PropertyNames)
    	            {
                        Console.WriteLine(PropCollect);
    	            }


    Cordialement,



    • Modifié Troxsa mercredi 9 avril 2014 12:22
    • Marqué comme réponse ahmedmahdi mercredi 9 avril 2014 12:51
    mercredi 9 avril 2014 12:13

Toutes les réponses

  • Bonjour,

    Je m'y connais un peu, mais c'est limité ...

    je dirais qu'il me semble que toutes les propriétés ne sont pas forcement accessible  quand on liste les properties mais elle reste en accessible quand on connais son petit nom.

    Le site internet ou vous pouvez trouvé les informations sur les propriétés :

    http://msdn.microsoft.com/en-us/library/ms675090.aspx

    toutes les propriétés ne sont pas en écriture mais elle reste consultable et d'autre ne sont pas du tout consultable (il me semble)

    Voulez vous du code pour récupérer les propriétés ? 


    Cordialement,

    samedi 5 avril 2014 10:31
  • merci pour ton aide qui est très précieuse.

    en fait mon programme que doit être en mesure de modifier toutes propriété modifiable d'un utilisateur enregistrer.

    y a t'il un moyen ou une fonction qui pourrais me les listés (j'imagine qu'il y en a) parce que j'imagine mal Microsoft ne pas penser à cette éventualité.

    merci d'avance :)

    dimanche 6 avril 2014 11:28
  • Je dirais que le meilleur moyen et le plus rapide de trouvé toutes les propriétés modifiable serait de creer un utilisateur bidon dans AD et de parcourir toutes les propriétés (par code) de l'utilisateur puis de les modifiées.
    il faudra faire une sorte de log qui dira que tel ou tel propriété est modifiable ou pas.

    Personnellement je n'ai pas de code dessus ... mais cela ne doit pas être compliqué a faire.


    Cordialement,

    dimanche 6 avril 2014 13:55
  • C'est chaud de coder et tester en dur plus de 1400 propriétés.

    je pense que le moyen le plus rapide est plutôt de chercher le moyen de les listés.


    lundi 7 avril 2014 07:44
  • Bonjour

    Avez-vous des nouvelles pour nous?

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 9 avril 2014 08:50
  • Bonjour,

    pour ma 1ère question j'ai trouvé une réponse que sur la 2ème partie.

    pour la 2ème question j'ai eu un peu près la réponse.

    pour la 3ème je ne sais pas si j'ai connaissance tous les paramètres.

    mercredi 9 avril 2014 11:12
  • Bonjour,

    Non, il n'est pas possible de coder plus de 1400 propriétés mais il est possible de récupérer les propriétés et de savoir si cette propriété est modifiable ou pas.

    exemple VB.net :

    Imports System.DirectoryServices

            Dim oRoot As New DirectoryEntry("LDAP://DC=xxx,DC=xxx,DC=xxxx")
            Dim oSearcher As DirectorySearcher = New DirectorySearcher(oRoot)
            Dim oResult As SearchResult
            oSearcher.Filter = "samaccountname=userbidon"
            oResult = oSearcher.FindOne()
            For Each PropCollect In oResult.GetDirectoryEntry().Properties.PropertyNames
                Console.WriteLine(PropCollect)
    
            Next

    Il est possible a partir du code de faire des modifications si elles sont modifiables dans le cas contraire elles sont accessible uniquement en lecture (ne pas oublier un bloc Try)

    Exemple C#

                DirectoryEntry oRoot = new DirectoryEntry("LDAP://DC=xxx,DC=xxx,DC=xxxx");
                DirectorySearcher oSearcher  = new DirectorySearcher(oRoot);
                SearchResult oResult;
                oSearcher.Filter = "samaccountname=userbidon";
                oResult = oSearcher.FindOne();
    
                foreach (object PropCollect in oResult.GetDirectoryEntry().Properties.PropertyNames)
    	            {
                        Console.WriteLine(PropCollect);
    	            }


    Cordialement,



    • Modifié Troxsa mercredi 9 avril 2014 12:22
    • Marqué comme réponse ahmedmahdi mercredi 9 avril 2014 12:51
    mercredi 9 avril 2014 12:13
  • merci pour ton aide :)

    au moins c'est possible de récupérer les propriété dynamiquement.

    merci encore :)

    mercredi 9 avril 2014 12:51