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 :

Mise à jour active directory


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Mise à jour active directory
    Bonjour tout le monde,

    Alors voilà, je suis en train de developper une application me permettant de mettre à jour le chemin de profil des utilisateurs itinérants. Le problème est que je ne dois modifier la propriété profilePath que pour les utilisateurs itinérant, c'est-à-dire ceux qui ont déjà une valeur pour cette propriété. Seulement je ne vois pas comment ne récupérer que ces derniers. Voici donc ce que j'ai fait:

    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
     
    DirectorySearcher directorySearcher = new DirectorySearcher(ldap);
     
    directorySearcher.SearchScope = SearchScope.Subtree;
     
    directorySearcher.Filter = "(ObjectCategory=user)"; 
     
    foreach (SearchResult result in directorySearcher.FindAll())
    {
    // On récupère l'entrée trouvée lors de la recherche
     DirectoryEntry directoryEntry = result.GetDirectoryEntry();
     
    if (directoryEntry.Properties["ProfilePath"].Value.ToString() != "")
    {
    // Pour l'instant j'ajoute mes infos dans une arraylist...                                        
    users.Add(directoryEntry.Properties["SamAccountName"].Value.ToString() + ";" + directoryEntry.Properties["ProfilePath"].Value.ToString());
    }
    Le problème s'est qu'il plante lorsqu'il tombe sur un utilisateur pour lequel la propriété ProfilePath n'est pas rempli.
    Je pensais faire quelque chose au niveau du filtre et mettre un truc du genre:
    directorySearcher.Filter = "(&(ObjectCategory=user)(ProfilePath!=null))";
    pour ne récupérer que mes utilisateurs itinérant mais cela ne marche...

    En espérant avoir été clair et en vous remerciant de votre aide

    ___TrankiLou___

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!string.IsNullOrEmpty(directoryEntry.Properties["ProfilePath"].Value.ToString()))
    {
    // Pour l'instant j'ajoute mes infos dans une arraylist...                                        
    users.Add(directoryEntry.Properties["SamAccountName"].Value.ToString() + ";" + directoryEntry.Properties["ProfilePath"].Value.ToString());
    }
    ou plus simple:

    if (directoryEntry.Properties["ProfilePath"] != null)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Salut Thomas,

    je te remerci de t'interresser à mon problème.
    Donc j'ai essayé ta solution en mettant
    directoryEntry.Properties["ProfilePath"] != null
    mais cela me renvoi comme erreur:
    "La référence d'objet n'est pas définie à une instance d'un objet"
    Ca me parait bizarre que je ne puisse pas tester si cette propriété est vide...

    Si tu as une autre idée je suis prenneur car je suis un peu coincé pour l'instant

    ++

    ___TrankiLou___

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Re!

    En fait tu y étais presque Thomas!!
    Donc pour tester si la propriété "chemin du profil" d'un utilisateur est non remplie il suffisait de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(directoryEntry.InvokeGet("ProfilePath") != null)
    en revanche je ne comprend pas trop pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(directoryEntry.Properties["ProfilePath"].Value.ToString() != "")
    me renvoi une erreur...


    Voilà merci a toi



    ___TrankiLou___

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(directoryEntry.Properties["ProfilePath"].Value.ToString() != "")
    te renvoit une erreur car tu essayes d'accéder à la propriété Value mais directoryEntry.Properties["ProfilePath"] n'existe pas....

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    oki oki, je te remerci pour cette petite précision car en effet je n'avais pas très saisi le fonctionnement du "directoryEntry"

    ++

    ___TrankiLou___

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/04/2014, 14h14
  2. Mise à jour du mot de passe Active Directory
    Par katyrd dans le forum Sécurité
    Réponses: 0
    Dernier message: 05/08/2011, 08h35
  3. Mise à jour Active X
    Par Nemehy dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 24/06/2009, 16h03
  4. Réponses: 5
    Dernier message: 22/06/2009, 14h45
  5. mise a jour de l'active directory
    Par fredchips dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 23/05/2007, 12h02

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