在安装了 SP1 的 Exchange 2010 上。邮箱角色在一台服务器上,CAS 在另一台服务器上。我需要知道我的客户端使用哪个版本的 Outlook 进行连接,但此服务器是托管的,并且所有客户端都是通过 HTTP (Outlook Anywhere) 进行 RPC 的。
Get-LogonStatistics 可以给我 ClientVersion,但它只能针对邮箱角色服务器运行并显示 3585.0.33038.1 之类的版本和 CAS 服务器主机名的 ClientName。
关于如何查找通过 RPC over HTTP 使用的 Outlook 客户端版本 (2003/2007/2010/2011),还有其他想法吗?
答案1
只要您可以从日志中提取用户代理字符串......
对于 Outlook 2007+(我有一段时间没用过 Office 2003 了,我记不清了),它们都有自己的用户代理,因此您可以通过 Google 查找更多详细信息。我发现像 user-agent-string.info 这样的网站很有用(或任何其他网站,我与该网站没有任何关系,但在我搜索时似乎首先出现)。
我知道 Office 2007 会在字符串的某个地方包含“Office 12”,通常是结尾。以下是 Office 2010 的一些示例:
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0;Trident/4.0;InfoPath.2;MSOffice 14)Microsoft Office/14.0(Windows NT 5.1;Microsoft Outlook 14.0.4536;Pro;MSOffice 14)
您可以看到 MSOffice 14 就是您将看到的 Office 2010。您可能还会发现更多。我知道,对于我工作中的一位客户来说,他有大量 Mac 用户通过 RPC over HTTP 连接到他的 Exchange 服务器,并且在监控时我们发现您甚至可以找到 MS Office 2011 的特定版本(我猜是考虑到某些主要更新?我不是 MS 人)