如何让所有用户与EWS形成Exchange

时间:2016-03-03 20:13:28

标签: soap exchange-server exchangewebservices

我想通过EWS从xchange服务器获取所有用户。我已经想出如何获得所有房间和所有约会。但我特别需要所有用户,因此我可以从我的应用程序中获得CRUD用户。这甚至可能吗?我没有在网上找到任何例子。请告知如何实现这一目标。

soap请求如何查找用户CRUD操作?

2 个答案:

答案 0 :(得分:2)

在Exchange 2013及更高版本上,您可以将FindPeople操作与您要访问的地址列表的GUID一起使用(例如,对于使用GAL的guid的全局地址列表)。

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Header>
        <RequestServerVersion Version="Exchange2013_SP1" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
      </soap:Header>
      <soap:Body>
        <FindPeople xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
          <IndexedPageItemView MaxEntriesReturned="100" Offset="0" BasePoint="Beginning" />
          <ParentFolderId>
            <AddressListId Id="5c90c254-2463-4256-bf52-60d82e6baa44" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
          </ParentFolderId>
        </FindPeople>
      </soap:Body>
    </soap:Envelope>

然后,您可以使用偏移

将结果分页

这样做的一个问题是,您无法使用EWS获取所需的GUID,您需要在Exchange命令行管理程序中使用Get-GlobalAddressList cmdlet https://technet.microsoft.com/en-us/library/aa996579(v=exchg.160).aspx,它将返回请求所需的GUID。 / p>

干杯 格伦

答案 1 :(得分:1)

回应你的一些评论:

使用Exchange 2010的一种好方法(此方法在我的网络中运行,我们运行E2010)是通过与安装了Exchange管理工具的集线器交换服务器进行交互式Powershell会话,运行PowerShell版本2.0。

目标如下:

  1. 使用New-PSSession创建新的交互式会话
  2. 导入该会话以使远程cmdlet成为本地主机的本机。
  3. $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://YOURFQDNOFTHEEXCHANGESERVERHERE/powershell
    Import-PSSession $session | out-null
    

    然后,您将能够使用Exchange命令行管理程序/ EMC可用的内容(cmdlet),就像您远程登录到Exchange服务器本身一样。

    此方法直接从Exchange管理工具安装目录本身提取,这是Exchange命令行管理程序实际将模块/函数/扩展cmdlet功能导入常规PowerShell主机的方式。

    从那时起,我强烈建议您使用google / search Exchange 2010 powershell命令行开关,因为它们非常有用且功能强大(无双关语)工具可帮助管理AD对象,Exchange对象等。