【问题标题】:Programmatically create a Distribution Group in Active Directory以编程方式在 Active Directory 中创建通讯组
【发布时间】:2009-11-25 00:12:21
【问题描述】:

我在这里有一个运行 Exchange 2007 的 Windows 域,我需要以编程方式创建新的邮件列表。

据我目前收集到的信息,Exchange 邮件列表只是普通的 AD 组,所以我主要需要担心与 AD 的交互。我使用 System.DirectoryService 命名空间来查询 AD,但我不确定在这里创建通讯组的正确方法是什么。特别是它必须启用邮件并显示在 Outlook 通讯簿中,所以我不知道是否需要调用一些魔法来确保 Exchange 接收到新组?

任何指针?

【问题讨论】:

    标签: c# .net active-directory exchange-server


    【解决方案1】:

    创建 Exchange 分发列表所需的魔法是 PowerShell,因此您需要深入了解 cmdlet 的精彩世界。 ;-)

    您可以使用System.DirectoryServices(如果您使用的是 .NET 3.5 到System.DirectoryServices.AccountManagement,则更容易)在 Active Directory 中创建通讯组,添加成员等,然后使用 Enable-DistributionGroup-cmdlet邮件启用组。

    您还可以使用New-DistributionGroup-cmdlet 同时创建组并启用邮件。

    基本上,PowerShell cmdlet 所做的是在 Active Directory 组上设置一堆 Exchange 属性,例如 proxyAddresses 等。您可能会“手动”设置其中的一些(即通过使用 System.DirectoryServices),但您可能会弄错其中的一些。支持(如 Microsoft Support-supported)方式是通过调用 cmdlet。

    你可能最好在谷歌上搜索如何从你的 .NET 程序中调用 PowerShell(我还没有找到一篇关于它的真正好的文章,但是一旦你掌握了它就很简单了)-MSDN has a sample and a section让你开始。

    【讨论】:

    • 谢谢。我希望有一种方法可以做到这一点,而无需访问实际的交换服务器,但我想我必须这样做。
    • 代码无需在 Exchange 服务器上运行。您可以在任何服务器上安装 Exchange 管理控制台(包括您需要的 PowerShell cmdlet)。您用于创建通讯组列表的用户帐户必须是 Exchange 收件人管理员组的成员。
    • 哇,谢谢,这是有用的信息!在我的组织中获取用户帐户相当容易,但在生产服务器上安装东西却不是这样,因此在我“拥有”的服务器上安装该管理控制台非常棒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2012-08-31
    • 2011-03-05
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    相关资源
    最近更新 更多