在AD中添加邮件联系人

时间:2009-12-22 10:26:23

标签: c# active-directory

我正在寻找有关如何在AD中创建邮件联系人的一些指导。这是来自SO Q#1861336的后续问题。

我要做的是将大量联系人对象添加到Active Directory中的OU中。我一直在使用CodeProject上的示例,但是他们只展示了如何创建新用户等。

如何使用c#创建联系人?它是否类似于创建新用户但具有不同的LDAP类型属性?

我的计划是运行enable-mailcontact cmdlet powershell脚本,以使Exchange 2010能够在GAL中查看联系人。

正如您在我的问题中所看到的,我通常不会处理c#或Active Directory,所以在我开始使用这个加载的枪之前,任何帮助/指针都会非常有用。

谢谢,

捐赠

1 个答案:

答案 0 :(得分:4)

它类似于创建用户

只是我们“联系”而不是“用户”作为对象

这是一个脏代码(未经测试)

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;
}

希望它可以帮到你