2012-06-26 60 views
1

我正在尋找通過Exchange服務器獲取動態通訊組的當前成員。動態通訊組基於指定的過濾器。 「收件人更新服務」(RUS)根據此過濾器通過運行時查找每個聯繫人。 我發現很多信息來解決這個問題,在經典命令行參數的交互中使用交換PowerShell的包裝類。但這不是我想要的方式。 我認爲應該有一個「Exchange Web服務」(EWS)的特殊命令來通過運行時或互操作獲取動態成員。我無法找到關於此的一些信息。通過c#使用Exchange收件人更新服務,無需PowerShell

有沒有人有一個想法或一些信息,通過C#解決這個問題?

+0

這些Exchange 2003或2007/2010 DDG是否? –

+0

Exchange 2010和Exchange Online(Office 365) –

回答

1

DirectoryServices似乎爲我做了詭計。創建指向動態通訊組列表一個DirectoryEntry(架構類名=「msExchDynamicDistributionList」),然後使用「msExchDynamicDLBaseDN」和「msExchDynamicDLFilter」屬性搜索成員:

using (var group = new DirectoryEntry("LDAP://CN=MyGroup,OU=MyOU,DC=company,DC=com")) 
{ 
    string baseDN = (string)group.Properties["msExchDynamicDLBaseDN"].Value; 
    string filter = (string)group.Properties["msExchDynamicDLFilter"].Value; 

    using (var searchRoot = new DirectoryEntry("LDAP://" + baseDN)) 
    using (var searcher = new DirectorySearcher(searchRoot, filter, propertiesToLoad)) 
    using (var results = searcher.FindAll()) 
    { 
     foreach (SearchResult result in results) 
     { 
     // Use the result 
     } 
    } 
} 

記住成員可以是常規組或其他動態通訊組以及用戶,聯繫人和公共文件夾。

相關問題