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___