【问题标题】:How can I find Exchange server version using Java?如何使用 Java 查找 Exchange 服务器版本?
【发布时间】:2011-11-19 20:07:22
【问题描述】:

我有一个连接到几个不同交换服务器的小程序。此小程序的某个部分将使用已提供的凭据启动 Outlook Web Access 会话。其中一台 Exchange 服务器将运行 2003,另一台将运行 2007。登录其中任何一个的代码略有不同,因此我有两种登录方式,具体取决于它是 2007 还是 2003 服务器。如果只知道 IP 地址,有没有一种方法可以使用 Java 找出正在运行的 Exchange Server 的版本?

【问题讨论】:

    标签: java exchange-server


    【解决方案1】:

    如果您只有 IP,您可以尝试调用 Exchange 服务器提供的某些(网络)服务。看起来 Exchange 2007 提供了一些(网络)服务,因此您应该能够找到一个提供版本或登录方法提示的服务。

    我不了解 Exchange 2003,但如果您查找 Exchange 2007 提供的服务但没有找到,则它不是 2007 版本 - 如果您知道您只有 2003 或 2007,那么您现在应该知道此服务器是 Exchange 2003 服务器。

    总结一下:

    • 理想情况下,寻找可以在该 IP 上调用的通用服务(Web 服务或某些套接字)并告诉您版本。
    • 如果没有此类服务,请查找仅由 Exchange 2007 提供的服务(如果可能,请使用更高版本)。然后尝试调用该服务并根据成功/失败确定您是否拥有 2007+ 版本。

    希望对您有所帮助。

    编辑:以下是有关如何使用 Telnet 协议获取 Exchange 服务器版本的一些附加信息:http://www.petri.co.il/remote_version_checking.htm

    对于 telnet 连接,您可以使用 Apache Commons Net

    【讨论】:

    • 我也想到了来自 petri.co.il 的解决方案。 :) 我相信这是最简单的版本检查替代方案。
    • 感谢您的帮助。 Telnet 解决方案有效,但后来我发现它将通过不允许 Telnet 连接的防火墙。我的解决方案是查询OWA登录页面,并检查版权年份。
    【解决方案2】:

    Exchange 2007 提供通过 https://servername/ews/exchange.asmx 公开的 Web 服务。

    如果您在该地址上收到 404,您就会知道它不是 Exchange 2007。

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2011-05-10
      • 2011-11-06
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多