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 :

Active Directory : Liste de tous les attributs d'objet


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Points : 85
    Points
    85
    Par défaut Active Directory : Liste de tous les attributs d'objet
    Bonjour à tous,

    J'ai un petit soucis avec Active Directory.

    Je voudrais avoir la liste complète de tous les attributs pour un objet mais je n'en ai qu'une partie.

    Par exemple, je souhaite obtenir la liste des attributs des objets Computer, je fais ceci :
    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
     
    try
                {
                    DirectoryEntry Ldap = new DirectoryEntry("LDAP://" + ADdomaine, ConfigurationManager.AppSettings.Get("ADuser"), ConfigurationManager.AppSettings.Get("ADpwd"));
                    DirectorySearcher searcher = new DirectorySearcher(Ldap);
                    searcher.Filter = "(objectClass=" + ADtype + ")";
     
                    foreach (SearchResult result in searcher.FindAll())
                    {
     
                        DirectoryEntry DirEntry = result.GetDirectoryEntry();
                        foreach (string property in DirEntry.Properties.PropertyNames)
                        {
                            panelMessage.InnerHtml += DirEntry.Properties[property].PropertyName.ToString() + "=>" + DirEntry.Properties[property].Value.ToString() + "<br>";
                         }
                     }
                 }
                catch (Exception Ex)
                {
                    panelMessage.InnerHtml += "Erreur LDAP : " + Ex.ToString();
                }
    et j'obtiens cela :
    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
    objectClass=>System.Object[]
    cn=>DC1
    distinguishedName=>CN=DC1,OU=Domain Controllers,DC=stage,DC=local
    instanceType=>4
    whenCreated=>15/09/2008 12:45:10
    whenChanged=>15/09/2008 12:48:45
    uSNCreated=>System.__ComObject
    uSNChanged=>System.__ComObject
    name=>DC1
    objectGUID=>System.Byte[]
    userAccountControl=>532480
    badPwdCount=>0
    codePage=>0
    countryCode=>0
    badPasswordTime=>System.__ComObject
    lastLogoff=>System.__ComObject
    lastLogon=>System.__ComObject
    localPolicyFlags=>0
    pwdLastSet=>System.__ComObject
    primaryGroupID=>516
    objectSid=>System.Byte[]
    accountExpires=>System.__ComObject
    logonCount=>20
    sAMAccountName=>DC1$
    sAMAccountType=>805306369
    operatingSystem=>Windows Server 2003
    operatingSystemVersion=>5.2 (3790)
    operatingSystemServicePack=>Service Pack 2
    serverReferenceBL=>CN=DC1,CN=Servers,CN=Premier-Site-par-defaut,CN=Sites,CN=Configuration,DC=stage,DC=local
    dNSHostName=>dc1.stage.local
    rIDSetReferences=>CN=RID Set,CN=DC1,OU=Domain Controllers,DC=stage,DC=local
    servicePrincipalName=>System.Object[]
    objectCategory=>CN=Computer,CN=Schema,CN=Configuration,DC=stage,DC=local
    isCriticalSystemObject=>True
    frsComputerReferenceBL=>CN=DC1,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=stage,DC=local
    nTSecurityDescriptor=>System.__ComObject
    alors que l'objet possède 3 ou 4 fois plus d'attributs.

    Comment puis-je résoudre ça ?

    Merci d'avance.

    Edit :

    Je viens de comprendre une partie. Ce sont les champs renseignés que je ressors et je souhaiterais avoir tous les attributs, même ceux qui sont vides.

  2. #2
    Membre régulier
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Points : 85
    Points
    85
    Par défaut
    Je viens de modifier le code en précisant les attributs à charger mais rien ne change.

    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
                try
                {
                    DirectoryEntry Ldap = new DirectoryEntry("LDAP://" + ADdomaine, ConfigurationManager.AppSettings.Get("ADuser"), ConfigurationManager.AppSettings.Get("ADpwd"));
                    DirectorySearcher searcher = new DirectorySearcher(Ldap);
                    searcher.Filter = "(objectClass=" + ADtype + ")";                
                    searcher.PropertiesToLoad.Add("cn");
                    searcher.PropertiesToLoad.Add("sAMAccountName");
                    searcher.PropertiesToLoad.Add("machineRole");
     
                    foreach (SearchResult result in searcher.FindAll())
                    {
     
                        DirectoryEntry DirEntry = result.GetDirectoryEntry();
                        foreach (string property in DirEntry.Properties.PropertyNames)
                        {
                            panelMessage.InnerHtml += DirEntry.Properties[property].PropertyName.ToString() + "=>" + DirEntry.Properties[property].Value.ToString() + "<br>";
                         }
                     }
                 }
                catch (Exception Ex)
                {
                    panelMessage.InnerHtml += "Erreur LDAP : " + Ex.ToString();
                }
    J'ai préciser 3 attributs cette fois ci et j'obtiens toujours la même liste.
    Est-ce qu'il n'y aurait pas une sorte de cache ou bien est-ce que j'ai oublié quelquechose ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2014, 14h12
  2. [Dojo] 1.5 : où trouver une liste de tous les attributs du contentpane
    Par arsene555 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 17/02/2011, 12h59
  3. Liste de tous les utilisateurs dans Active Directory
    Par SnapStyle dans le forum VBScript
    Réponses: 0
    Dernier message: 27/12/2010, 15h17
  4. Active directory : Comment extraire la liste de tous les contacts?
    Par Asriel01 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 12/07/2007, 12h32
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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