【问题标题】:How to get DAG info from MS Exchange Server 2010 using LDAP Query from AD?如何使用 AD 中的 LDAP 查询从 MS Exchange Server 2010 获取 DAG 信息?
【发布时间】:2012-01-15 00:18:27
【问题描述】:

我想了解用于获取有关 Exchange Server 的更多信息的 LDAP 查询。 我有兴趣了解有关数据可用性组、有关它们的统计信息和复制状态等的更多信息。 我知道有一些 CmdLets,但我想避免使用 PowerShell。

我想知道从 Active Directory for Exchange Server 获取相同信息的任何可能方式。

【问题讨论】:

  • 如果您不想要 powershell,那么最好删除它的标签;)
  • 您能否详细说明您要检索的信息?也许给你不想使用的 CmdLets。
  • @JBlanc,我知道 Get-DataAvalabililtyGroup、Get-DataAvailabilityGroupNetwork 等 cmdlet。但出于某种原因,我想使用 LDAP 从 AD 获取相同的信息。你知道我该怎么做吗?
  • 感谢 Bali,删除了 PowerShell 标记并为 AD 添加了一个 :-)

标签: active-directory exchange-server exchange-server-2010 ldap-query


【解决方案1】:

这是个好主意!

全部都在下面的配置分区中:

CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=xx,DC=xx。

下面的 C# 代码将检索服务器角色,应该可以帮助您入门。

角色信息来自here

        using (DirectoryEntry de = new DirectoryEntry("LDAP://RootDSE"))
        {
            var NamingContext = de.Properties["configurationNamingContext"][0];
            using (DirectoryEntry de_NC = new DirectoryEntry("LDAP://" + NamingContext))
            {
                using (DirectorySearcher ds = new DirectorySearcher(de_NC))
                {
                    ds.PropertiesToLoad.Add("cn");

                    ds.Filter = "(&(objectCategory=msExchExchangeServer)(msExchCurrentServerRoles:1.2.840.113556.1.4.803:=2))";
                    Output("Mailbox Role Servers:", ds, "cn");

                    ds.Filter = "(&(objectCategory=msExchExchangeServer)(msExchCurrentServerRoles:1.2.840.113556.1.4.803:=4))";
                    Output("CAS Role Servers:", ds, "cn");

                    ds.Filter = "(&(objectCategory=msExchExchangeServer)(msExchCurrentServerRoles:1.2.840.113556.1.4.803:=16))";
                    Output("Unified Messaging Role Servers:", ds, "cn");

                    ds.Filter = "(&(objectCategory=msExchExchangeServer)(msExchCurrentServerRoles:1.2.840.113556.1.4.803:=32))";
                    Output("Hub Transport Role Servers:", ds, "cn");

                    ds.Filter = "(&(objectCategory=msExchExchangeServer)(msExchCurrentServerRoles:1.2.840.113556.1.4.803:=64))";
                    Output("Edge Transport Role Servers:", ds, "cn");
                }
            }
        }


    static void Output(string Titel, DirectorySearcher ds, string Property)
    {
        Console.WriteLine(Titel);
        SearchResultCollection src = ds.FindAll();
        foreach (SearchResult RoleServer in src)
        {
            Console.WriteLine(RoleServer.Properties[Property][0].ToString());
        }
        if (src.Count < 1)
            Console.WriteLine("---");

        Console.WriteLine();
    }

【讨论】:

  • (DirectoryEntry de = new DirectoryEntry("LDAP://RootDSE") 此行将提供当前域的信息。如果我需要查找不同域的相同信息怎么办?(我有其他域的用户名和密码)。任何帮助表示赞赏。
猜你喜欢
  • 2012-10-02
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多