分享

Exchange自动发现故障分析

 tycoondeng 2022-06-25 发布于广东

      在早期版本的Microsoft Exchange(Exchange 2003 SP2或更早版本)和Outlook(Outlook 2003或更早),你需要手动配置所有用户配置文件来访问Exchange。而从Exchange2007和Outlook 2007版本开始,Autodiscover 服务可以让你快速的配置Outlook以及一些移动设备,自动发现服务使用用户的电子邮件地址和密码来自动配置用户的邮箱配置文件,简化了用户电子邮件的配置过程。自动发现服务的客户端提供了以下信息:

    1. 用户的显示名称

    2. 独立的内部和外部连接设置

    3. 用户的邮箱服务器的位置

    4 .各种管理功能,如忙/闲信息,统一消息等

    5. Outlook Anywhere的服务器设置
     当用户的Exchange信息发生变化时,Outlook会自动重新配置使用的自动发现服务的用户的配置文件。

自动发现服务工作原理(假设用户email地址为user@contoso.com)

  当您在部署客户端访问服务器角色时,安装进程会在IIS的默认网站下创建一个名为autodiscover的虚拟目录,此目录指向到client accessautodiscover文件夹。此虚拟目录用来处理outlook客户端和windows mobile设备的自动配置信息的请求。同时安装进程会在活动目录中安装一个service connection point(SCP,中文名字为“服务连接点”)。安装程序将自动发现 SCP 对象置于以下容器中:

CN=Autodiscover,CN=Microsoft Exchange,CN=Services,

[Configuration Naming Context]

SCP 对象包含林的自动发现服务 URL 的权威列表。

SCP 对象包含 ServiceBindingInfo 属性,该属性具有 https://mail. /autodiscover/autodiscover.xml 格式的客户端访问服务器的 FQDN,其中 mail 是客户端访问服务器的 FQDN

OK,下面我们来看自动发现服务具体是如何工作的。我们分两种情况来介绍。

第一种情况:客户端在公司内部且已经加入域(客户端可以直接连接到DC)

该种场景下,客户端和DC之间是可以通讯。 outlook会去DC中查找SCP,SCP中的servicebindinginfo属性即是对应的url(每个客户端访问服务都会有一个scp,同样有一个url)。客户端会按顺序向返回的url列表进行post请求和验证,如果成功返回200,则连接成功。如下图:

下图展示了公司内网中自动发现的工作模式

image

我们可以看到在此回复的信息中含有配置客户端所需要的信息。Outlook客户端根据此信息进行用户的配置,OAB 的下载,忙闲信息的同步等等。

我详细看一下此xml信息可以发现分为三部分:

<type>EXCH<type>部分:客户端在公司内网(internal)的配置信息

<type>EXPR<type>部分:outlook anywhere配置信息

<type>WEB<type>部分:客户端在external时的配置信息

第二种情况:用户没有加入域或用户不在公司内部(无法直接连接DC)

该场景是客户端无法直接连接DC。 首先客户端还是会试着首先寻找SCP,但结果是失败的,因为它连接不到DC。

此时,客户端会依次尝试连接以下地址:(注意以下地址的特点)

https:///autodiscover/autodiscover.xml

https://autodiscover./autodiscover/autodiscover.xml

http:///autodiscover/autodiscover.xml

http://autodiscover./autodiscover.xml

直到返回成功的信息。如果这四个连接尝试全部失败,则用户不能下载到OAB,忙闲信息,OOF也不能正常工作。我们会看到如下错误信息:

-------------------------------------------------------------------------

16:51:59 Microsoft Exchange 脱机通讯簿

16:51:59 未下载脱机通讯簿文件。找不到服务器(URL)。

16:51:59 0X8004010F

------------------------------------------------

我们可以在打开outlook调试模式的环境下看到整个详细的执行过程。开启outlook调试模式过程:工具-选项-其他-高级选项-启用日志(疑难解答)。

备注:

1. 我们可以看到outlook首先会尝试以SSL进行加密的连接,这就要求autodiscover service服务器的web站点有一个证书,在exchange的安装过程中会自动生成一个证书,但此证书不是根信任机构颁发的,所以outlook客户端在此过程中会收到一个警告提示,如图(5)所示。为了避免客户端出现此警告框,我们可以申请一个由根证书信任机构所信任的证书,或者在域中部署企业根证书,并把此根证书安装到所有客户端的根信任证书颁发机构中。

      

 2. 通过此过程我们也可以看出,我们需要在企业外部的DNS(公网的dns)中新增加一条A记录名为autodiscover并解析到到client access server

3. Autodiscover虚拟目录是不可以直接通过IE去访问的,如果我们通过https://autodiscover./autodiscover/autodiscover.xml会发现以下返回信息(如图6),这就表示自动发现服务是正常的。

image 

直接通过IE请求autodiscover虚拟目录返回的信息

此环境中的自动发现服务工作原理如下图所示:

image
5 outlook客户端在联系自动发现服务时出现的证书无效提示

2. 通过此过程我们也可以看出,我们需要在企业外部的DNS(公网的dns)中新增加一条A记录名为autodiscover并解析到到client access server

3. Autodiscover虚拟目录是不可以直接通过IE去访问的,如果我们通过https://autodiscover./autodiscover/autodiscover.xml会发现以下返回信息(如图6),这就表示自动发现服务是正常的。

<img title="image" border="0" alt="image" src="http://img./vcimg/static/loading.png" "605 height="166" data-src="http://img1.51cto.com/attachment/201209/6/396778_1346908849H4Ua.png" style="box-sizing: border-box; border-width: 0px; border-style: solid; border-color: rgb(229, 231, 235); --tw-border-spacing-x:0; --tw-border-spacing-y:0; --tw-translate-x:0; --tw-translate-y:0; --tw-rotate:0; --tw-skew-x:0; --tw-skew-y:0; --tw-scale-x:1; --tw-scale-y:1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness:proximity; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width:0px; --tw-ring-offset-color:#fff; --tw-ring-color:rgb(59 130 246 / 0.5); --tw-ring-offset-shadow:0 0 #0000; --tw-ring-shadow:0 0 #0000; --tw-shadow:0 0 #0000; --tw-shadow-colored:0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; display: block; vertical-align: middle; height: auto;">

直接通过IE请求autodiscover虚拟目录返回的信息

关于自动发现服务的几个常用命令:

1. 创建新的自动发现服务的虚拟目录:

New-AutodiscoverVirtualDirectory -Websitenate <websitename> -BasicAuthentication:$true -WindowsAuthentication:$true

2. 删除一个自动发现服务虚拟目录

Remove-AutodiscoverVirtualDirectory -Identity " MyServerautodiscover(autodiscover.contoso.com)"

3. 测试自动发现服务的配置

Test-OutlookWebServices -ClientAccessServer "CASServer01" 4. 设置证书主体名称

Set-OutlookProvider EXPR -CertPrincipalName 'msstd:mail.’

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章