2009-12-22 12 views
2

Je cherche un peu de guidence sur la façon de créer des contacts de messagerie dans AD. Ceci est une suite à la question de SO Q#1861336.l'ajout d'un contact de messagerie dans AD

Ce que j'essaie de faire est d'ajouter un chargement d'objets contact dans une unité d'organisation dans Active Directory. J'ai utilisé les exemples sur CodeProject, mais ils montrent seulement comment créer un nouvel utilisateur, etc.

Comment créer un contact en utilisant C#? Est-ce similaire à la création d'un nouvel utilisateur mais avec des attributs de type LDAP différents?

Mon plan est d'exécuter ensuite le script powershell enable-mailcontact cmdlet pour permettre à Exchange 2010 de voir le contact dans la liste d'adresses globale.

Comme vous pouvez le voir par mes questions, je ne traite généralement pas avec C# ou Active Directory donc toute aide/pointeurs serait vraiment utile avant de commencer à jouer avec ce pistolet chargé.

Merci,

Grant

Répondre

4

il est similaire à la création utilisateur

vient de nous "contact" au lieu de "utilisateur" comme un objet

ici est un code sale (non testé)

public string CreateContact(string ldapPath, string userName, 
    string userEmail) 
{ 
    try 
    { 
     string oGUID = string.Empty; 
     string connectionPrefix = "LDAP://" + ldapPath; 
     DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix); 
     DirectoryEntry newUser = dirEntry.Children.Add 
      ("CN=" + userName, "contact"); 
     newUser.Properties["DisplayName"].Value = userName; 

     //important attributs are 
     newUser.Properties["targetAddress"].Value = "SMTP:" + userEmail; 
     newUser.Properties["mailNickname"].Value = userName; 

     // I'm still trying to figureout what shoud I use here! 
     newUser.Properties["showInAddressBook"].Value = ???; 

     newUser.CommitChanges(); 
     oGUID = newUser.Guid.ToString(); 
     dirEntry.Close(); 
     newUser.Close(); 
    } 
    catch (System.DirectoryServices.DirectoryServicesCOMException E) 
    { 
     //DoSomethingwith --> E.Message.ToString(); 

    } 
    return oGUID; 
} 

espérons qu'il vous aidera