我在Exchange 2010 SP2服务器上使用EWS
我似乎找不到任何用于检索交换服务器中所有用户(邮箱/别名)的完整列表的命令/文档
这个问题已被问过几次,但我没有看到任何答案
感谢
答案 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);
}
}
干杯 格伦