Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过不带PowerShell的c#使用Exchange收件人更新服务_C#_Dynamic_Outlook_Add In_Exchange Server - Fatal编程技术网

通过不带PowerShell的c#使用Exchange收件人更新服务

通过不带PowerShell的c#使用Exchange收件人更新服务,c#,dynamic,outlook,add-in,exchange-server,C#,Dynamic,Outlook,Add In,Exchange Server,我正在搜索通过exchange服务器获取动态通讯组的当前成员。动态通讯组基于指定的筛选器。“收件人更新服务”(RUS)根据此筛选器按运行时查找每个联系人。 通过在与经典命令行参数的交互中使用ExchangePowerShell的包装器类,我发现了许多解决问题的信息。但这不是我想要的方式。 我认为应该有一个“ExchangeWeb服务”(EWS)的特殊命令来通过运行时或互操作获取动态成员。我找不到这方面的信息 有没有人有什么想法或信息可以通过c#解决这个问题?DirectoryServices似乎

我正在搜索通过exchange服务器获取动态通讯组的当前成员。动态通讯组基于指定的筛选器。“收件人更新服务”(RUS)根据此筛选器按运行时查找每个联系人。 通过在与经典命令行参数的交互中使用ExchangePowerShell的包装器类,我发现了许多解决问题的信息。但这不是我想要的方式。 我认为应该有一个“ExchangeWeb服务”(EWS)的特殊命令来通过运行时或互操作获取动态成员。我找不到这方面的信息


有没有人有什么想法或信息可以通过c#解决这个问题?

DirectoryServices似乎帮了我的忙。创建指向动态通讯组列表的DirectoryEntry(schema class name=“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
      }
   }
}

请记住,该组的成员可以是普通组或其他动态通讯组,也可以是用户、联系人和公用文件夹。

DirectoryServices似乎可以帮我解决这个问题。创建指向动态通讯组列表的DirectoryEntry(schema class name=“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
      }
   }
}

请记住,组的成员可以是常规组或其他动态通讯组以及用户、联系人和公用文件夹。

这些是Exchange 2003还是2007/2010 DDG?Exchange 2010和Exchange Online(Office 365)这些是Exchange 2003还是2007/2010 DDG?Exchange 2010和Exchange Online(Office 365)