Carnet d’adresse outlook : GAL vs OAB ?

by Stéphane 12. October 2010 22:46

Lors de la mise à jour de l’Active Directory via programmation, j’ai eu la surprise de ne pas voir mes modifications répercutées dans l’address book de mon Outlook.

La raison est finalement relativement simple. Outlook utilise un mode cache. Cela signifie qu’il n’accède pas directement à la Global Address List (GAL) d’Exchange mais à une copie local appelée Offline Address Book (OAB). L’OAB est mis selon une périodicité donnée (ex : une semaine dans ma société).

Pour voir ces modifications « live », il faut :
-    Demander à l’administrateur de mettre à jour l’OAB (coté serveur)
-    Télécharger la mise à jour sur le client Outlook (menu Outils\Envoyer – recevoir\Télécharger le carnet d’adresse)

 

Tags:

Active Directory

Extraire les utilisateurs d'un groupe dans Active Directory

by Stéphane 15. July 2008 22:22

Voici un exemple de code afin d'accèder aux membres d'un groupe dans l'AD ...

                String ADFullPath = LDAP://NomDeLAD;
                DirectoryEntry Ldap = new DirectoryEntry(ADFullPath);
                DirectorySearcher searcher = new DirectorySearcher(Ldap);

                searcher.Filter = "(&(objectClass=group)(cn=" + GroupName + "))";

                SearchResult results = searcher.FindOne();

                if (results != null)
                {

                    DirectoryEntry AdGroup = new DirectoryEntry(results.Path);
                    System.DirectoryServices.PropertyCollection pcoll = AdGroup.Properties;
                    int n = pcoll["member"].Count;

                    for (int l = 0; l < n; l++)
                    {

                        DirectoryEntry AdUser = new DirectoryEntry(ADFullPath + "/" + pcoll["member"][l].ToString());

                        TreeNode tn = new TreeNode(AdUser.Properties["name"].Value.ToString());
                        tvwMembres.Nodes.Add(tn);

                        TreeNode tn1 = new TreeNode(AdUser.Properties["description"].Value.ToString());
                        tn1.ImageIndex = 2;
                        tn1.SelectedImageIndex = tn1.ImageIndex;
                        tn1.ToolTipText = "description";
                        tn.Nodes.Add(tn1);

                        TreeNode tn2 = new TreeNode(AdUser.Properties["sAMAccountName"].Value.ToString());
                        tn2.ImageIndex = 1;
                        tn2.SelectedImageIndex = tn2.ImageIndex;
                        tn2.ToolTipText = "Account Name";
                        tn.Nodes.Add(tn2);

                        TreeNode tn3 = new TreeNode(AdUser.Properties["mail"].Value.ToString());
                        tn3.ImageIndex = 3;
                        tn3.SelectedImageIndex = tn3.ImageIndex;
                        tn3.ToolTipText = "Mail";
                        tn.Nodes.Add(tn3);

                        TreeNode tn4 = new TreeNode(AdUser.Properties["physicalDeliveryOfficeName"].Value.ToString());
                        tn4.ImageIndex = 4;
                        tn4.SelectedImageIndex = tn4.ImageIndex;
                        tn4.ToolTipText = "Office Name";
                        tn.Nodes.Add(tn4);

                        AdUser.Close();
                    }
                    Ldap.Close();
                    AdGroup.Close();

 

Tags: ,

C# | Active Directory


Stéphane Schwartz, Chef de projet (IPMA Level-C) et développeur (MCSD.Net)

Linkedin Twitter

International Project Management Association

Microsoft Certified Technology Specialist Microsoft Certified Application Developer Microsoft Certified Solution Developer

AdSense

Month List

Powered by BlogEngine.NET 2.0.0.36 - Eco Theme by n3o Web Designers