【问题标题】:How to get all users from Exchange with EWS如何使用 EWS 从 Exchange 获取所有用户
【发布时间】:2020-04-09 15:31:12
【问题描述】:

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

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

【问题讨论】:

    标签: soap exchange-server exchangewebservices


    【解决方案1】:

    在 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。

    干杯 格伦

    【讨论】:

    • 非常感谢。 Exchange 2010 是否有任何变通方法可以得到相同的结果?
    • 在 2010 年,您最好使用 LDAP 并直接查看 AD infinitec.de/post/2011/10/25/… EWS 的唯一解决方法是使用组,将您想要返回的所有收件人添加到组,然后使用 ExandGroup
    • @GlenScales 我实际上只是使用 Powershell v2 和 import-possession 直接执行 PSSession,以将所有本地 EMS cmdlet 导入我的本地主机。
    【解决方案2】:

    回应你的一些cmets:

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

    目标如下:

    1. 使用 New-PSSession 创建一个新的交互式会话
    2. 导入该会话以使远程 cmdlet 本地主机。

    .

    $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://YOURFQDNOFTHEEXCHANGESERVERHERE/powershell
    Import-PSSession $session | out-null
    

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

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

    从那时起,我强烈建议您谷歌/搜索 Exchange 2010 powershell commandlet,因为它们是非常有用且功能强大(没有双关语)的工具,可帮助管理 AD 对象、Exchange 对象等。

    【讨论】:

    • 非常感谢您的回答。我不能说我完全理解了你所说的一切,但我认为重要的是,我没有 E2010 的本地设置,只是远程访问它。它是来自某些 Windows 机器的远程访问和来自 JavaScript 应用程序的 EWS 肥皂调用。这就是我所能做的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多