在Microsoft Exchange中获取完整的用户列表

时间:2014-09-22 09:21:24

标签: exchange-server exchangewebservices

我在Exchange 2010 SP2服务器上使用EWS

我似乎找不到任何用于检索交换服务器中所有用户(邮箱/别名)的完整列表的命令/文档

这个问题已被问过几次,但我没有看到任何答案

感谢

1 个答案:

答案 0 :(得分:4)

2010年,对于EWS,没有任何操作会返回此项,您只有ResolveName操作和expandgroup操作。因此,在EWS中,您可以使用将所有要返回的用户放入组中的解决方法,然后在该组上使用ExpandGroup。

否则,您应该使用System.DirectoryServices直接使用LDAP,例如http://www.infinitec.de/post/2011/10/25/Searching-the-Global-Address-List-C-Edition.aspx,或使用Exchange命令行管理程序和Get-Mailbox,请参阅http://msdn.microsoft.com/en-us/library/office/ff326159(v=exchg.150).aspx

另一种解决方法是,如果GAL中的100个对象少,则可以使用“SMTP:”和resolveName,例如

        PropertySet cntProp = new PropertySet(BasePropertySet.FirstClassProperties);
        NameResolutionCollection ncCol = service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true, cntProp);
        foreach (NameResolution nc in ncCol) { 
            if(nc.Contact.Alias != null){
                Console.WriteLine("Address : " + nc.Mailbox.Address);
                Console.WriteLine("Alias : " + nc.Contact.Alias);
                Console.WriteLine("Type : " + nc.Mailbox.MailboxType);
            }
        }

干杯 格伦