当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

作者:精品下载站 日期:2024-12-14 08:49:41 浏览:13 分类:玩电脑

Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36


Outlook 客户端完全依赖于自动发现服务作为其与 Exchange 服务器的关系的基础结构。
这种依赖性与 Outlook 需要获取创建新邮件配置文件所需的信息的初始阶段以及随后的持续通信过程有关与 Exchange 基础设施。

这一切都始于 Outlook 需要找到充当自动发现端点的实体(即 Exchange CAS 服务器)的步骤。

好消息是自动发现协议可以描述为“自我维护”。进行此描述的原因是,我们作为 Exchange 管理员需要奠定“自动发现基础”,自动发现协议将处理其余所有事情。

自动发现协议知道如何找到他的“自动发现端点”如何获取所需的信息等等。

自动发现协议“自动定位”其自动发现端点的能力基于自动发现客户端可以使用的自动发现方法的“工具箱”。

Outlook 客户端(自动发现客户端)的主要任务只是选择“正确”的方法来实现所需的结果,即定位和联系自动发现端点。

Q1:为什么Outlook客户端需要使用多种自动发现方式?

A1

原因 1 - Active Directory 环境中实现的自动发现方法与非 Active Directory 环境中实现的自动发现方法之间存在重大差异。 Outlook 客户端需要识别其所在的环境,并根据此信息选择所需的自动发现方法。

原因 2 - 在描述为非 Active Directory 环境的场景中,自动发现过程可以通过多种方式实现。这些“方式”中的每一种都是作为特定组织网络环境的解决方案而创建的。即使 Outlook 客户端识别出其位于非 Active Directory 环境中,他也有几个选项来查找自动发现端点。

问题2:Outlook 如何选择“正确的”自动发现方法?

A2:Outlook需要做出的最必要的“决定”是决定他是否位于基于Active Directory的环境中。
如果Outlook“决定”他位于在非 Active Directory 环境中,Outlook 有一个可以使用的方法“列表”以及使用每种不同自动发现方法的预配置顺序。

Q3:在“选择特定自动发现方法”的过程中是否存在需要我们进行干预的特定场景?

A3:答案是“是”。在某些情况下,我们需要取消特定的自动发现方法以提高Outlook客户端的性能,或者使Outlook客户端能够成功完成自动发现过程。

在本文中,我们将回顾以下主题:

  1. Outlook(自动发现客户端)用于选择特定自动发现方法的算法。
  2. 通过添加注册表项“控制”与“选择自动发现方法”过程相关的 Outlook 行为的方法。

自动发现方法分类和工作流程

基于 Active Directory 的环境中的 Outlook 自动发现方法。

让我们从 Outlook 客户端使用的自动发现方法的高级分类开始。

Outlook 客户端编程使用的第一个或“顶级”自动发现方法是“Active Directory 自动发现过程”。

如果 Outlook 安装在配置为加入域的桌面上 + Outlook 客户端位于基于域的环境中(可以访问本地 Active Directory),Outlook 将使用基于查询 Active Directory 的自动发现方法可用 Exchange CAS 服务器的列表。

如果这些条件之一无法满足,Outlook 客户端将“故障回复”到“其他自动发现方法”。

在下图中,我们可以看到“阻止”Outlook邮件客户端使用Active Directory自动发现方法的场景。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

注意 - 在下面的文章中,我们将多次提到术语 - “自动发现端点”。该术语的含义翻译为“实体”(大多数情况下是 Exchange 服务器),可以向自动发现客户端提供所需的自动发现信息。

Outlook 的可用自动发现方法

如前所述,Outlook 有一套自动发现方法,可用于查找可用的自动发现端点。

注意:需要强调的是,虽然 Outlook 可以使用许多自动发现方法,但其中一些自动发现方法不受支持,无法在 Office 365 和 Exchange Online 环境中使用。

  1. Active Directory 环境
    如上所述,Outlook 更愿意访问 Active Directory 以获取可用 Exchange CAS 服务器的列表(图中的数字 1)。
  2. 非 Active Directory 环境

在非 Active Directory 环境中,Outlook 使用的第一种自动发现方法是 Outlook 将从收件人电子邮件地址“提取”到 SMTP 域名并向 DNS 服务器查询“映射 ” 到主机名。

例如,如果收件人名称为 - [email protected],Outlook 将查询 DNS 服务器,查找名为 - 的自动发现端点autodiscover.o365info.com

如果该主机名没有 IP 地址,或者主机没有“响应”Outlook 连接尝试,Outlook 将尝试使用命名约定查找其他主机名 - 自动发现 + SMTP 域名
在我们的示例中 - autodiscover.o365info.com(图中的数字 2) 。

如果主机响应但无法使用 HTTPS 协议进行通信,Outlook 将尝试使用 HTTP 重定向方法。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

如果 Outlook 使用自动发现 + SMTP 域名无法找到主机名,或者主机不是自动发现端点,则下一个方法是查找包含该名称的 SRV 记录自动发现端点的。

如果 Outlook 无法使用 SRV 记录方法找到主机名,Outlook 将检查本地自动发现配置文件 - 位于特定桌面上的静态文件(图中的数字 3)。

注意:Office 365 和 Exchange Online 环境不支持两种自动发现方法(图中的数字 3)。

最后一个自动发现方法只能由 Outlook 2013 客户端使用,描述为 - 最后一个已知的正确 URL

在此自动发现方法中,如果 Outlook 邮件客户端设法找到“过去”自动发现端点的名称,Outlook 将尝试使用保存在其“缓存”中的名称(编号4 ) 图中)。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

无法创建新的 Outlook 邮件配置文件。

如果我们需要“使用”自动发现服务来创建新的 Outlook 邮件配置文件,并且所描述的所有自动发现方法都无法提供所需的结果 - 定位并连接自动发现端点,结果是 - 无法创建新的 Outlook 邮件配置文件。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

在“解决无法创建新的 Outlook 邮件配置文件的问题”的场景中,Outlook 的“错误消息”并不那么清晰。

在这种情况下,Outlook 显示的错误消息是:

与您的邮件服务器的加密连接不可用。单击“下一步”尝试使用未加密的连接

在下面的屏幕截图中,我们可以在 Outlook 2013 中看到一条错误消息

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

Outlook错误消息中的“问题”在于它无法帮助我们了解或理解问题的真正原因是什么。

注意 - 在“无法创建新的 Outlook 邮件配置文件”的故障排除场景中,我们需要使用 ExRCA 等工具,本文将对此进行回顾:Microsoft 远程连接分析器 (ExRCA) |自动发现故障排除工具|第 2#4 部分 |第 22 部分#36

我们想要控制 Outlook 自动发现设置的场景。

Outlook 邮件客户端可以使用的自动发现方法已预先编程到 Outlook 中。在某些情况下,我们需要禁用特定的 Outlook 自动发现方法。

从技术上讲,如果我们想要更改 Outlook 客户端使用的默认自动发现过程或方法,则可能存在耦合情况。

场景 1:迁移到 Office 365 |阶段迁移

云迁移场景,其中一些 Exchange On-Premise 邮箱被迁移到云(Exchange Online)中,我们希望防止内部邮件客户端连接到位于 Exchange On-Premise 的“旧邮箱”服务器。

当我们使用阶段迁移选项将 Exchange On-Premise 邮箱迁移到云 (Exchange Online) 时,我们可以看到类似的场景。

在这次迁移过程中,用户邮箱并不是“移”到云端,而是将邮箱复制到云端。结果是用户将拥有两个邮箱 - 一个邮箱位于 Exchange 本地服务器中,另一个邮箱位于 Exchange Online。

在这种情况下,我们需要实施一个解决方案,阻止 Outlook 客户端连接到其 Exchange 本地邮箱,而是“直接”连接到其 Exchange Online 邮箱。

实现此“重定向”的正式方法是使用 PowerShell 脚本,该脚本会将 Exchange 本地服务器转换为合同,并将收件人的 Microsoft 电子邮件地址添加到代表收件人的“新联系人”中。

当我们创建新的 Outlook 邮件配置文件时,自动发现过程会将 Outlook 客户端“引导”到 Exchange 本地服务器,而 Exchange 本地服务器会将 Outlook 客户端重定向到云端(Exchange Online)。

主要问题是,如果由于某种原因我们无法激活或使用特定的 PowerShell;我们需要另一种方法来“告诉”Outlook 如何寻址 Exchange Online 服务器而不是 Exchange 本地服务器。

在这种情况下,我们可以使用的解决方法是通过阻止 Outlook 邮件客户端连接 Exchange 本地服务器来实现。

如果我们想要更多进程,请防止 Outlook 使用 LDAP 查询选项,其中 Outlook 要求现有 Exchange CAS 服务器的列表,然后访问 Exchange 本地服务器。

我们希望阻止 Outlook 执行 SCP 自动发现方法的过程将仅应用于其邮箱已迁移到云的收件人,而不适用于仍需要访问其 Exchange On-Premise 的现有组织 Exchange 客户端邮箱。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

注意:此问题的正式解决方案是使用 Microsoft PowerShell 脚本,该脚本将 Exchange On-Premise 邮箱转换为将 Outlook 邮件客户端自动发现请求重定向到其“云邮箱”,但很多时候,此解决方案没有实施。

场景 2:迁移到 Office 365 |割接迁移

在邮件迁移(例如直接转换迁移)中,100% 的 Exchange On-Premise 邮箱迁移到云。

我们大多数人不知道的小秘密是,内部 Outlook 邮件客户端将允许使用 LDAP 查询启动自动发现过程,请求现有 Exchange CAS 服务器的列表,并在下一步中尝试与主机通信从 Active Directory 发送作为答案的姓名。

在大多数情况下,“以前的 Exchange On-Premise”已关闭或未连接,Outlook 邮件客户端将浪费宝贵的时间来实现这个“无用的过程”。

在这种情况下,我们可以设置一个特定的注册表项,以阻止 Outlook 邮件客户端执行基于 LDAP 查询的默认自动发现方法。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

场景3:阻止自动发现方法访问根域名

由未加入域的“外部自动发现客户端”或 Outlook 客户端实现的自动发现方法是“提取”收件人的 SMTP 域名
电子邮件地址,并使用此 SMTP 域作为自动发现端点主机名。

例如,如果收据电子邮件地址是 - [email protected],则 Outlook 客户端将尝试查找名为 - o365info.com
在某些情况下,我们希望阻止这种自动发现方法,因为主机名已经“附加”到公司网站,并且我们希望防止 Outlook 客户端浪费宝贵的资源时间执行了这个“无用的过程”。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

Outlook 自动发现设置注册表项。

使用操作系统注册表,我们可以控制 Outlook 邮件客户端实现的自动发现方法。

在本节中,我们将回顾这些注册表项以及如何手动或使用简单的批处理文件添加和更新此项,在下一节中,我们将研究如何使用组策略和 Office ADMX 文件来控制这些注册表项。

Outlook 使用的自动发现方法有:

  • SCP查找
  • HTTPS根域查询
  • HTTPS 自动发现域查询
  • HTTP重定向方法
  • SRV记录查询
  • 本地 XML 文件
  • Outlook 配置文件中的缓存 URL(Outlook 2013 的新增功能)

这些自动发现方法中的每一种都可以通过使用注册表设置进行控制。

默认情况下不配置与 Outlook 自动发现方法相关的注册表项,我们需要添加此注册表项。

每个注册表项\值都是为了阻止或禁用特定 Outlook 自动发现方法而创建的。

注册表键路径

我们需要用于添加所需的 Outlook 注册表项的注册表路径是:

HKEY_CURRENT_- USER\Software\Microsoft\Office\x.0\Outlook\Autodiscover

X.0 文件夹代表特定的 Outlook 版本。

在下图中,我们可以看到Office 365环境支持的Outlook版本。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

例如,如果我们需要添加一个注册表项来更改 Outlook 2013 的默认自动发现方法,则需要使用以下注册表路径:

HKEY_CURRENT_- USER\Software\Microsoft\Office\Outlook\Autodiscover

Outlook 自动发现可用的注册表项

我们可以使用的可用注册表项是:

  • 排除ScpLookup
  • 排除HttpsRootDomain
  • 排除HttpsAutodiscoverDomain
  • 排除HttpRedirect
  • 排除SrvRecord
  • 首选LocalXML
  • 排除LastKnownGoodURL(仅适用于 Outlook 2013)

我已附上每个 Outlook 注册表选项的说明,如组策略说明中所示:

  • “排除 SCP 对象查找”- Outlook 不会对具有自动发现信息的服务连接点 (SCP) 对象执行 Active Directory 查询。
  • “根据您的主 SMTP 地址排除根域查询”- Outlook 不使用您的主 SMTP 地址的根域来查找自动发现服务。
    例如,您选择此选项 Outlook 不使用以下 URL:
    https:///autodiscover/autodiscover.xml
  • “排除自动发现域的查询”- Outlook 不使用自动发现域来查找自动发现服务。例如,Outlook 不使用以下 URL:
    https://autodiscover./autodiscover/autodiscover.xml
  • “排除 HTTP 重定向方法” - 如果 Outlook 无法通过以下任一 HTTPS URL 访问自动发现服务,则 Outlook 不会使用 HTTP 重定向方法:
    https:///autodiscover/autodiscover.xml https://autodiscover./autodiscover/autodiscover.xml
  • “排除 DNS 中的 SRV 记录查询”- Outlook 不使用 DNS 中的 SRV 记录查找来查找自动发现服务。
  • “排除最后一个已知的正确 URL”- Outlook 不使用最后一个已知的正确自动发现 URL。

在下面的屏幕截图中,我们可以看到一个场景示例,其中我添加了与 Outlook 自动发现方法相关的所有可用注册表项。

请注意,此注册表项仅在 Outlook 2013 客户端中实现,因为注册表文件夹版本为“15.0”。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

在下面的屏幕截图中,我们可以看到与 SCP 自动发现方法相关的注册表项示例。
我们看到的值是 - ExcludeSCPlookup

数字“1”用于激活该选项(如果我们使用值“0”,这将关闭特定的注册表设置)。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

使用批处理文件添加\更新自动发现注册表设置

为了让您的生活更简单,我创建了一个批处理文件,它将自动为所有 Outlook 支持的版本创建和添加自动发现注册表设置:Outlook 2007、Outlook 2010 和 Outlook 2013。

为了您的方便,我准备了一个批处理文件,它可以更新注册表。
使用批处理文件的好处是我们可以添加额外的配置设置,例如 - 添加所有 Microsoft Office 版本所需的配置,例如如 - Office 2007、2010 和 2013。

我创建的批处理文件 - Add-Outlook-reg-All-Office-versions.bat 将通过添加以下内容来更新注册表所有可用 Office 版本所需的密钥,例如 Microsoft Office 2007 的 12.0 密钥、Microsoft Office 2010 的 14.0 密钥等。

批处理文件使用操作系统内置命令 - REG ADD

在我们的示例中,我使用批处理文件仅添加两个注册表项:

  • 排除SCPlookup
  • 排除HttpsRootDomain

我创建了两个批处理文件:

1. 添加-Outlook-reg-All-Office-versions.bat

此批处理文件将添加所需的注册表项,以防止 Outlook 客户端使用 SCP 和根域名的自动发现方法。

2.删除-Outlook-reg-All-Office-versionsns.bat

附加批处理文件 - Remove-Outlook-reg-All-Office-versionsns.bat 将“恢复”我们使用之前的批处理文件添加的配置设置。

在下面的截图中,我们可以看到Add-Outlook-reg-All-Office-versions.bat 的内容 文件。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

激活将添加所需注册表项的批处理文件非常简单:

您所需要做的就是保存批处理文件 - Add-Outlook-reg-All-Office-versions.bat 在本地磁盘上,并将批处理文件拖放到 CMD 中。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

运行 Add-Outlook-Reg-All-Office-versions.bat 批处理文件后,我们可以看到,现在创建了三个“注册表文件夹”:12.0、14.0、15.0 和 16.0

每个文件夹都包含 Outlook 自动发现密钥

  • 排除SCP查找
  • 排除HttpsRootDomain

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

组策略和自动发现设置

在上一节中,我们回顾了手动或使用批处理文件添加 Outlook 自动发现密钥的选项。

此方法适用于小型环境或特定用户的桌面。
在企业环境中或如果我们想要更新大量用户桌面的自动发现设置,我们需要一种更有效的方法。

在这种情况下,我们可以使用Active Directory组策略的强大选项。

默认情况下,Active Directory 组策略不包含与特定 Outlook 邮件客户端设置相关的组策略。

好消息是,Microsoft 使我们能够下载和安装 Office ADMX 文件,其中包括每个 Microsoft Office 不同应用程序(例如 Word、Outlook 等)的大量办公设置。

使用 Microsoft Office ADMX 文件

步骤 1:下载 ADMX 文件

第一步是下载所需的 ADMX 文件。
每个 Microsoft Office 版本都使用 ADMX 文件的成瘾版本。

您可以根据您的office版本,通过以下链接下载所需的ADMX文件:

  • Office 2021/2019/2016 管理模板文件 (ADMX/ADML) 和 Office 自定义工具
  • Office 2013 管理模板文件 (ADMX/ADML) 和 Office 自定义工具
  • Office 2010 管理模板文件(ADM、ADMX/ADML)和 Office 自定义工具下载

步骤 2:将 ADMX 文件复制到 Active Directory GPO 文件夹

我们需要将 ADMX 文件复制到特殊的 SYSVOL 文件夹。我们将复制到此特定文件夹的 ADMX 文件将被复制到所有其余的域控制器。

为了能够找到此“GPO 文件夹”,请在“运行”菜单中键入内部 Active Directory 域名的名称。在我们的示例中 - o365info.lcoal

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

使用以下路径查找所需的 GPO 文件夹:

\Active Directory 域名\SYSVOL\Active Directory 域名\Policies\

例如:
\o365info.local\SYSVOL\o365info.local\Policies\

ADMX 文件应保存在名为 - PolicyDefinitions 的特殊文件夹中

在路径中创建一个新文件夹并将其命名 - PolicyDefinitions

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

最后一步是将 ADMX 文件复制到 PolicyDefinitions 文件夹

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

步骤 3 - 选择所需的自动发现值

所有步骤复杂后,ADMX 文件的“内容”将作为 Outlook 现有 GPO(组策略)的一部分出现。

为了能够使用 GPO 管理 Outlook 自动发现设置,编辑现有组策略或创建新组策略。

在 - 用户配置 ==> 管理模板:从中央存储检索的策略定义(ADMX 文件)( Microsoft Outlook 2013 -帐户设置 > Exchange

我们可以选择禁用的第一个 GPO 设置名为 -“根据 Active Directory 主 SMTP 地址自动配置配置文件

此策略设置控制加入 Active Directory 环境中的域的用户是否可以更改在 Outlook 中设置帐户时使用的主 SMTP 地址。

如果启用此策略设置,用户可以通过输入配置文件名称来创建新的配置文件。不使用新建帐户向导创建的配置文件。创建配置文件时不会出现任何用户界面,这可能会导致用户认为计算机已崩溃。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

包含所有现有 Outlook 自动发现方法的 GPO 设置,名为:禁用自动发现

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

在下面的屏幕截图中,我们可以看到我们可以选择的所有可用选项。

请注意,我们创建的设置是为了禁用 Outlook 自动发现过程的默认行为。选择所需的配置有点令人困惑,因为我们实际上是在“启用”一个将“禁用某些东西”的设置。

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

在下面的屏幕截图中,我们可以看到我们想要关闭以下 Outlook 自动发现方法的场景示例:

  • 排除 SCP 对象查找 (ExcludeScpLookup)
  • 根据您的主 SMTP 地址排除根域查询 (ExcludeHttpsRootDomain)
  • 排除 DNS 中的 SRV 记录 (ExcludeSrvRecord)

[玩转系统] Outlook 自动发现决策流程 |选择正确的自动发现方法 |第 14 部分#36

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯