Getting Started

Exchange Server 2013 是第一个 100% 基于 .NET 框架构建的版本,Exchange Server 2013和 Exchange Online 共享相同的代码库,这意味着 Exchange Server 2013 的所有版本和累积更新(CU)都是 Exchange Online 的派生版本。这种做法在 Exchange Server 2016 中继续使用,但在 Exchange 2019 中停止使用,现在 Exchange 2019是一个独立的产品,与 Exchange Online 不同。

从 Exchange 服务器 2013 开始,微软引入了一种基于累积更新或 CU 的全新服务模式。微软每季度发布一次 CU,其中包含修复和新功能。微软不再发布服务包;所有功能现在都包含在 CU 中。由于 CU 的累积特性,CU 包含先前的所有功能和修复。因此,您可以“跳过”多个 CU,例如从 Exchange 服务器 2019 CU 7 跳到 Exchange 服务器 201 9 CU 10。不需要在这些版本之间安装 CU。只有在产品处于主流支持时才会发布 CU。

当发现关键安全问题且产品处于扩展支持时,会发布安全更新 (SU)。SU 也具有累积性,因此 2021 年 03 月的安全更新包含同一 CU 中以前 SU 包含的所有安全更新。SU 也具有 CU 特异性,因此Exchange Server 2019 的 CU9 的 SU 与 Exchange Server 2019 中的 CU8 的 SU 不同。微软通常只发布当前 CU 和上一个 CU 的 SU。对于 HAFNIUM 漏洞,微软破例。

Exchange Server 2019 和 2013、2016在某种程度上非常相似,在某种程度上兼容。多年来,该产品没有发生重大变化,但有很多改进。

改进的第一个领域是安全性,支持 Windows Server Core、TLS 1.2,并阻止Exchange 控制面板和 Exchange 管理外壳的外部访问。

另一个改进的领域是性能和可靠性。Exchange 服务器 2019 的性能改进是通过现代硬件支持(Exchange 服务器20 19 现在支持高达 256 GB 的内存!)、新的搜索引擎(也提高了故障转移时间)和MetaCache 数据库(大型 JBOD 磁盘和 SSD 的组合)实现的。

还有几个客户端改进,例如会议邀请中的“不转发"(do not forward)选项、改进的离线支持(out-of-office)以及删除日历事件(使用PowerShell)的选项。

当然,Exchange 服务器 2007、2010、2013、2016 和 2019 之间存在差异,尤其是在功能方面。但是这些版本也可以很好地协同工作。例如,可以为 Exchange 服务器创建一个负载平衡的数组,其中包含所有三个版本。客户端连接终止在哪个 Exchange 服务器上并不重要;请求会自动代理到正确的邮箱服务器。当将 Exchange 环境升级到 Exchange 服务器 2019时,这非常有用。

Exchange 服务器 2013 和 Exchange 服务器 2016 和 2019 之间有一个主要区别。Exchange 服务器 2013 有两个服务器角色,客户端访问服务器角色和邮箱服务器角色。在 Exchange 服务器 2016 及以上版本中,这两个角色被合并,只有邮箱服务器角色可用。不同的组件仍然存在,但仅在一个服务器角色中可用。边缘传输服务器角色在 Exchange 服务器 2016 和 2019 中仍然可用。

2021年初,有两个版本的Exchange服务器可用:

• Exchange Server 2016 — 对 Exchange Server 2016 的主流支持已于 2020年10月结束,但 Exchange Server 2016 的支持期延长至2025年10月。

•Exchange Server 2019 — 对 Exchange Server 2019 的主流支持将于2024年1月结束,但 Exchange Server 2019 仅将支持延长至2025年10月。

Pro Exchange 2019 Administrator Part 1_Server


• 如果您没有与微软签订批量许可证协议,则无法访问 Exchange server 2019,因此Exchange server 2016 是您在本地部署的唯一选择。

• 在构建全新的 Exchange 环境时,即所谓的“从零开始部署”时,Exchange server 2019 是最佳选择。

• 如果您目前运行 Exchange server 2010 并准备升级,则迁移到 Exchange server 2016。然后,您可以决定迁移到 Exchange server 2019 。

• 如果您在 Exchange server 2010、2013 或 2016 混合环境中已将所有邮箱移动到Exchange Online,请保留一个 Exchange server 2016 服务器用于管理目的。您可以使用免费的“混合许可证”进行此操作。对于 Exchange server 2019,无法使用免费的混合许可证。

• 如果您在 Exchange server 2013 或 2016 上,则可以迁移到 Exchange server 2019。


Exchange Server 2019 Editions

首先,让我们对 Exchange 2019 进行一般性的了解。首先,我们将考虑两个Exchange 2019 版本,并审查它们的功能。然后,我们将比较它们与前几个版本的Exchange 的功能。

• Exchange 2019, Standard Edition — 标准版,但每个邮箱服务器的邮箱数据库数量限制为 5 个。

• Exchange 2019, Enterprise Edition — 企业版,此版本可以在每个邮箱服务器上托管多达 100 个邮箱数据库。

除了每个 Exchange 服务器上的邮箱数据库数量外,两个版本之间没有区别;二进制文件相同。

输入 Exchange 2019 许可证密钥会更改该服务器的最大邮箱数据库限制。除了 Exchange 2019 服务器许可证外,还有一个客户端访问许可证(CAL),每个访问服务器软件的用户或设备都需要 CAL。

有两种类型的CAL可用:

• Standard CAL — 此 CAL 提供标准的电子邮件功能,适用于任何平台。许可证适用于典型的Exchange 和 Outlook 使用。

• Enterprise CAL — 这种更高级的 CAL 提供集成归档、合规功能和信息保护能力等功能。此CAL 是标准 CAL 的附加组件,因此需要同时购买两种许可证!

有关完整概述,请访问Microsoft 许可页面: http://bit.ly/X2019Licensing

注意,Exchange Server 2019 服务器许可证始终是需要的。但是,exchange online p1 或 p2 的 office 365 e1 或 e3 许可证也可以用于 CAL。当在混合环境中使用 exchange server 2016 服务器时,并且所有邮箱都在 exchange online 中,客户可能有资格从微软获得免费的“混合服务器许可证”。


What’s New in Exchange Server 2019?

那么,Exchange服务器2019有哪些新功能和改进呢?有很多新功能,无论是从管理员的角度还是从最终用户的角度来看都很宝贵。让我们在这里讨论一下与以前的Exchange服务器2019版本相比最重要的变化:

• Support for Windows Server 2019 server core — Exchange Server 2019 支持在 Windows Server 2019 上运行,包括桌面体验版和服务器核心版。Windows Server 2019 server core 是 Exchange Server 2019 的推荐操作系统,因为它具有较低的占用空间和改进的安全性。Windows Server 2019 也是 Exchange Server 2019 唯一支持的操作系统。请注意,Exchange server 2016 只支持在 Windows Server 2016(仅支持桌面体验,不支持服务器核心)和 Windows Server 2012 上运行。

• TLS 1.2 — 为了改善客户端到服务器的连接,用于加密客户端和Exchange Server 2019服务器之间流量的默认协议,旧版本仍然可用,但默认情况下已禁用。请注意,这方面的客户端也可以是另一个与 Exchange Server 2019 服务器进行通信的(Exchange)服务器。

• Block external access of ECP and EMS — 在 Exchange Server 2019 中,可以使用客户端访问规则来阻止对 Exchange 控制面板 (ECP) 和 Exchange 管理外壳 (EMS) 的外部访问。基于条件、例外情况和操作,客户端访问规则可帮助您以非常精细的方式控制对 ECP 和 EMS 的访问。

• Improved search infrastructure — Exchange server 2019 的搜索基础结构已得到改进,现在基于 Bing 搜索技术。其代号为“Big Funnel”,您仍可以在 Exchange server 2019 的内部看到。搜索索引不再存储在包含邮箱数据库的磁盘上的单独目录中,而是存储在用户的邮箱中。因此,搜索数据复制始终是最新的,邮箱数据库故障转移要快得多,从而提高了 Exchange server 2019 服务器的性能。

• Modern hardware support — Exchange server 2019 支持最多256 GB内存和最多48个CPU内核。Exchange服务器2019建议的最小内存量为128 GB(尽管它可以在内存较少的情况下运行)。

• MetaCache database — Exchange server 2019 有一个新功能,称为元缓存数据库(MC DB)。该功能使用SSD磁盘来存储来自邮箱数据库的频繁访问数据。邮箱数据库仍然存储在慢速JBOD磁盘上,但频繁访问的数据现在可以缓存在SSD磁盘上。对于每四个(慢速)JBOD磁盘,使用一个SSD磁盘来缓存信息。这大大提高了性能和延迟,这对于远程桌面或Citrix环境非常有利。

• Dynamic database cache — 邮箱数据库信息保存在内存中。虽然这对于活动邮箱数据库很有用,但对于数据库可用性组中的被动邮箱数据库来说意义不大。Exchange的早期版本没有区分这两种情况,因此在被动邮箱数据库上“浪费”了宝贵的内存。Exchange server 2019 具有动态数据库缓存,这意味着被动邮箱数据库使用的内存比活动邮箱数据库少。换句话说,Exchange server 2019 中的活动邮箱数据库可以使用比Exchange server 2016 更多的内存。这也提高了 Exchange server 2019 的整体性能。

• A different look and feel for client interfaces — 从 Exchange server 2010 升级到 Exchange server 2016 起,Outlook Web 应用程序(OWA)有了全新的用户界面,它还带来了 OWA 中的几个新功能,如支持服务器端应用程序,或在浏览器中离线使用。Exchange server 2016 和 Exchange server 2019 还支持Microsoft Teams集成,可以在Microsoft Teams中使用本地日历。这只能在Exchange Online的混合环境中使用。

• Exchange 2019 architecture — Exchange server 以前的版本具有多个服务器角色,从Exchange server 2007和Exchange server 2010中的五个服务器角色到Exchange server 2013中的三个服务器角色。Exchange server 2016和2019只有两个服务器角色:

• Mailbox server role — Exchange server 2016和2019中的邮箱服务器角色是Exchange server 2013邮箱服务器和客户端访问服务器的组合。客户端访问服务器角色不再可用,但在EExchange server 2016 和2019中以客户端访问服务的形式实现。客户端连接到客户端访问服务,然后请求被代理到托管邮箱的正确邮箱服务器。这就像Exchange server 2010或2013中的多角色服务器,但现在在Exchange server 2016或2019中作为默认配置实现。

• Edge Transport server role — 边缘传输服务器角色位于内部 Exchange 2019 环境和 Internet 之间,并充当 SMTP 网关。通常,边缘传输服务器在您的网络的非军事化区 (DMZ)中运行,因此它们不是您内部 Active Directory 环境的成员。它们通常是工作组成员,但可以根据管理目的在 DMZ 中成为专用 Active Directory 的成员。边缘传输服务器通过称为边缘同步的同步机制获取其信息。在早期的 Exchange server 2007 和2010 版本中,边缘传输服务器还用于内容筛选和控制,但在 2021 年,该功能已被Exchange Online Protection(或其他任何内容筛选和控制供应商)等各种云服务接管。

• Managed Availability — 不是 Exchange server 2019 中的新功能,而是在 Exchange server 2013 中引入并在 Exchange server 2019 中得到延续的管理可用性功能。它看起来像是某种“自我修复”功能,负责监控 Exchange server 2019 的所有关键服务。需要时,它将采取适当的操作。管理可用性由探针、监视器和操作组成。探针不断检查某些服务,并将结果反馈给监视器。监视器对探针的结果进行评估。必要时,管理可用性可以执行某些操作。例如,它可以检查 Outlook Web Access (OWA) 是否启动并运行;如果未启动,则可以启动或重新启动 OWA 运行的应用程序池,或者重置 Internet 信息服务(IISRESET)。类似地,管理可用性具有用于邮箱数据库的探针;如果发现邮箱数据库已损坏,管理可用性可以采取行动,自动将该邮箱数据库切换到数据库可用性组(DAG)中的另一个邮箱服务器,并自动重新播种损坏的邮箱数据库。这样,问题可以在最终用户注意到故障之前得到解决,从而减少对帮助台的支持请求。

当然,Exchange 2019中还有更多的新功能,但这些是最重要和有趣的功能。


What Has Been Removed from Exchange Server

Exchange Server 的每个新版本都会引入新功能,但同时也会停用、弃用或以其他形式提供某些功能。Exchange 2019 中最重要的更改或停用的功能包括:

• Unified Messaging server role — 统一消息(UM)服务器角色已从 Exchange server 2019 移除,但在 Exchange server 2016 中仍然可用。

• Client Access server role — 在 Exchange 2016 和 2019 中不再提供客户端访问服务器角色,取而代之的是在邮箱服务器角色上运行的客户端访问服务。

• MAPI/CDO library — 当从 Exchange server 2013 迁移到 Exchange server 2019 时,您将看到 MAPI/CDO 库不再可用。MAPI/CDO 库的功能已被 Exchange Web Services (EWS)、Exchange ActiveSync (EAS) 或 REST API 取代。

• RPC/HTTP — RPC/HTTP(也称为 Outlook Anywhere)在 Exchange 服务器 2019 中被弃用,取而代之的是 MAPI/HTTP。

• Cluster administrative access points for DAGs — Exchange 2019中的数据库可用性组不再支持故障转移群集管理访问点。

从 Exchange server 2010 迁移到 Exchange server 2016 时,以下功能将被停用:

• Support for Outlook 2003 and older — 在 Exchange 2016 中不支持 Outlook 2003。它不仅不受支持,而且无法运行。Outlook 2003 依赖于系统文件夹、空闲/忙碌和公共文件夹中的脱机地址簿分发文件夹,而这些系统文件夹已被停用。

• RPC/TCP access for Outlook clients — 在 Exchange 2013 及更高版本中,不再支持Outlook 客户端的传统 RPC/TCP 访问。所有 Outlook 客户端都只能使用MAPI/HTTP 或 Outlook Anywhere 进行连接,尽管后者也即将被弃用。但是,当将邮箱从 Exchange Server 2010 迁移到 Exchange Server 2016 时,客户端将重新连接并从 RPC/TCP 切换到 MAPI/HTTP 或 Outlook Anywhere 。

• Exchange Management Console and Exchange Control Panel — 在 Exchange server 2010 中,Exchange管理控制台(EMC)是管理 Exchange 环境的主要图形用户界面。在 Exchange server 2013 及以上版本中,该界面被 Exchange 管理中心(EAC)和 Exchange 管理外壳(EMS)取代。Exchange server 2010 管理员需要适应新的管理工具。管理 Exchange 2013及以上版本的首选方式是 EMS。EMS 包含所有可配置选项。EAC 可用于配置Exchange 2013 以及更高版本,但缺少详细信息。


Integration with Active Directory

Active Directory是Exchange服务器2019的基础,Active Directory存储Exchange的大部分配置信息,无论是服务器/组织配置还是启用邮件的对象。

Microsoft Windows Active Directory目录服务(ADDS)最好被描述为森林(forest);这是目录服务中的最高级别,也是实际的安全边界。该森林包含一个或多个Active Directory域;域是资源的逻辑分组,例如用户、组和计算机。一个 Exchange 2019组织绑定到一个森林,所以即使您有一个具有一个 Active Directory 森林和超过 100个 Active Directory 域的环境,也只能有一个 Exchange 组织。

Active Directory 站点在 Exchange 部署中也起着重要作用。一个 Active Directory 站点可以看作是一个位置,具有高带宽和低延迟,例如数据中心或办公室。Active Directory 站点可以包含多个 Active Directory 域,但 Active Directory 域也可以跨越多个 Active Directory 站点。

Exchange 2019 严重依赖 ADDS,这些 ADDS 必须是健康的。ADDS 的最低要求是 Windows 2012 R2 森林功能级别 (Forest Functional Level,FFL) 和 Windows 2012 R2 域功能级别 (Domain Functional Level,DFL)。


Active Directory Partitions

Windows ADDS由三个系统提供的分区组成:

• Schema partition — 架构分区是 Active Directory 中所有对象和属性的蓝图。例如,如果创建新用户,则从Schema中实例化用户对象,填充所需属性,并将用户帐户存储在 Active Directory 数据库中。所有对象和属性都在Schema分区中,因此取决于使用哪个版本。Windows 2019 Active Directory 具有比 Windows 2012 R 2 Active Directory 更新的对象和更新的(更多)属性。当然,对于 Exchange Server 等应用程序也是如此。Exchange 2019 在 Active Directory 中添加了许多新的对象和属性,使其有可能增加功能。因此,每个新的 Exchange Server 版本,甚至是累积更新或服务包,都需要进行Schema更改。

在整个活动目录林中,只有一个架构分区。即使您有一个拥有100个域和250个站点的全球活动目录林,也只有一个架构分区。这个分区在整个活动目录林中的所有域控制器之间进行复制。架构分区的最重要副本在架构主控台(schema master)上运行,通常是安装在林中的第一个域控制器。这个副本是整个活动目录林中唯一的读写副本。

• Configuration partition — 配置分区是存储所有非架构信息(non-schema information)的地方,这些信息在整个活动目录林中都是可用的。配置分区中的信息包括活动目录站点、公钥基础设施、活动目录中可用的各种分区,当然还有关于Exchange服务器的信息。与架构分区一样,只有一个配置分区。它复制到整个活动目录环境中的所有域控制器上,这样所有Exchange服务器都可以访问相同的一组信息。有关Exchange服务器配置的所有信息,如Exchange服务器本身、路由基础结构或Exchange server负责的域数量,都存储在配置分区中。

• Domain partition — 域分区是存储所有域特定信息的地方,每个域有一个分区,所以如果你有100个域在Active Directory林中,有100个单独的域分区。用户对象、联系人以及安全和分发组存储在域分区中。

查看三个Active Directory分区的最佳工具是ADSI Edit MMC(Microsoft管理控制台)管理单元。

在 Windows Server 2019 中,Active Directory 管理中心 (ADAC) 是管理 Active Directory 环境的首选工具,但 Active Directory 用户和计算机 (ADUC) 也可以使用。使用其中任何一个工具都是相对安全的,因为该工具可以防止以 Active Directory 不喜欢的方式对对象进行操作。管理中心的优点是,当启用 Active Directory 回收站时,它可以显示已删除的对象。

Active Directory 站点和服务 (ADSS) MMC 插件从配置分区读取和写入信息。在这里进行的所有更改都可以在林中的所有域中看到;Active Directory 域和信任 MMC 插件也是如此。Schema MMC插件,它通常在具有 schema master role 的域控制器上运行。使用Schema MMC插件,可以对Active Directory模式分区进行更改。

域控制器也安装了 LDIFDE 和 CSVDE 等工具,作为 AD 管理工具的一部分。这些是命令行工具,可用于将对象导入或导出 Active Directory。LDIFDE 还可以用于对 Active Directory schema 进行更改,而 Exchange 2019 安装应用程序使用 LDIFDE 工具来配置Active Directory,以与 Exchange 2019 配合使用。


Active Directory Permissions

活动目录中有三个分区。每个分区都有不同的权限要求,不是每个人都可以访问这些分区。以下是访问每个分区的默认管理员帐户或安全组。

• Schema Admins security group — Schema Admins 对 schema 分区具有完全访问权限。第一个管理员帐户是顶级域名(top-level domain),它是第一个创建的域。为了对schema分区进行必要的更改以安装Exchange Server,所使用的帐户必须是此安全组的成员。此林中的任何其他域管理员默认情况下都不是此组的成员。

• Enterprise Admins security group — Enterprise Admins 对 configuration 分区具有完全访问权限。同样,顶级域中的第一个管理员帐户是此组中的成员,因此可以对配置分区进行更改。由于所有Exchange Server配置信息都存储在配置分区中,因此用于安装Exchange Server的帐户必须是此组中的成员。请注意,Enterprise Admins安全组没有权限对schema分区进行更改。

• Domain Admins security group — Domain Admins 对 Domain 分区具有完全访问权限。如果活动目录环境中有 60 个域,则会有 60 个域分区,因此会有 60 个不同的域管理员安全组。顶级域中的第一个管理员帐户是顶级域中的域管理员安全组的成员。

在活动目录的早期,微软建议在活动目录林中使用多个域,最好有一个空根域。这个空根域是一个没有任何资源的域,它的主要目的是用于活动目录管理。所有资源,如服务器、计算机、用户和组都位于子域中。。它是一种委派模型,顶级域中的管理员帐户对所有活动目录域具有控制权,而其他域中的管理员只在其各自的活动目录域中具有管理权限。这些其他管理员在其他域中没有管理特权,更不用说修改配置分区或架构分区的权限了。

但是,情况已经发生了变化,尽管仍然可以使用空根活动目录域环境,但它不再被积极推荐。现在大多数推荐的是“单森林,单域”环境,除非有严格的法律要求规定使用其他活动目录模型。简而言之,在顶级 Active Directory 域中创建的默认管理员帐户具有足够的权限来安装 Exchange 2019。


Active Directory Sites

在任何 Exchange 服务器部署中,活动目录站点都发挥着重要作用。如前所述,活动目录站点可以被视为具有良好内部网络连接、高带宽和低延迟(即本地局域网)的(物理)位置。办公室或数据中心通常是活动目录站点的良好候选者。

组织可以有多个位置或多个数据中心,从而导致多个活动目录站点。站点通常互连,具有较低带宽、较高延迟的连接。活动目录站点还可以有多个域,但同时,活动目录域可以跨越多个站点。

活动目录站点也是复制边界。活动目录站点中的域控制器几乎立即在同一站点中的域控制器之间复制其信息。如果创建了一个新对象,或者修改了一个对象,则同一站点中的其他域控制器会立即收到通知,并在几秒钟内复制该信息。活动目录站点中的所有域控制器都必须包含相同的信息。

不同活动目录站点之间的域控制器之间交换的信息将在管理员定义的时间表上进行复制。一个典型的时间框架可以是 15 分钟,但这取决于连接类型或用于特定位置的带宽(您不希望复制流量干扰正常生产带宽),这可能需要几个小时。这意味着当对 Active Directory 进行更改时,例如,当安装 Exchange 2019 时,所有信息复制到所有域控制器并使新更改对整个组织可见可能需要大量时间。

Active Directory 站点使用 Active Directory Sites and Services Mmc 插件创建。第一步是在插件中的各个位置定义网络子网,然后将实际Active Directory 站点与网络子网相关联。例如,阿姆斯特丹站点的数据中心具有 IP 子网 10.38. 96.0/24,而伦敦站点的数据中心具有 IP 子网10.83.4.0/24 。

类似于伦敦或阿姆斯特丹的数据中心(与 Active Directory 站点相对应)的位置可以是“面向 Internet”或“非 Internet 面向”,该描述符表示该位置是否具有 Internet 连接。这对于 Exchange 2019 非常重要,因为它决定了命名空间如何配置以及外部客户端如何连接到不同位置的邮箱。

如果阿姆斯特丹的数据中心具有 Internet 连接,而伦敦的数据中心没有 Internet 连接,则所有来自 Internet 的客户端首先连接到阿姆斯特丹的 Exchange 2019 服务器。如果用户的邮箱在伦敦,则客户端请求将被代理到伦敦的 Exchange 2019 服务器。

但是,如果伦敦的数据中心也有互联网连接,并且Exchange服务器也进行了相应的配置,那么总部位于伦敦的客户端可以从阿姆斯特丹的互联网访问Exchange 2019服务器,尽管请求将被重定向到伦敦的Exchange 2019服务器上,从而直接连接到伦敦的服务器。

此外,通过Exchange组织的SMTP消息路由部分基于Active Directory站点,在刚才给出的示例中,这并不难做到,但如果您有一个包含数十个Active Directory站点的环境,除非另有配置,否则SMTP路由将遵循Active Directory站点结构。例如,在路由的枢纽和分支模型(hub-and-spoke model for routing)中就是这种情况。


Exchange Server 2019 Architecture

在 Exchange 2013 中,有三种所谓的“构建块(building blocks)”可用

• Client Access server

• Mailbox server

• Edge Transport server

在 Exchange 2013 中,已经建议将客户端访问和邮箱服务器合并为多角色服务器。在Exchange 2016 中,强制执行多角色服务器,并在 Exchange server 2019 中继续执行。在 Exchange 2019 中,有两个块可用:

• Mailbox server — 正如前面所解释的那样,Exchange 2019邮箱服务器包含以前的客户端访问和邮箱服务器角色,但现在是服务:

• Client Access service — 客户端访问服务(CAS)是所有客户端连接的服务器。CAS由两部分组成:客户端访问前端(CAFE)和前端传输服务(FETS)。CAS执行客户端请求的身份验证,查找客户端邮箱的位置,并代理或重定向客户端请求到实际客户端邮箱所在的适当邮箱服务器。Exchange 2019中的CAS有时也被称为“前端”。

• Mailbox service — 邮箱服务是实际存储邮箱数据的组件。客户端不直接访问邮箱服务;所有请求都通过 CAS 路由。Exchange 2019 中的邮箱服务有时也被称为“后端”。对于 OWA 等客户端,SMTP 传输编码始终在后端进行。

• Edge Transport server — 边缘传输服务器充当您内部 Exchange 环境和 Internet 之间的 SMTP 网关,通常位于外部网络中。当使用边缘传输服务器时,所有消息都通过此服务器路由。使用边缘传输服务器不是强制性的;许多客户已经决定不使用边缘传输服务器,而是使用第三方解决方案,或将 SMTP 消息直接从云消息解决方案路由到邮箱服务器。


Exchange 2019 Client Access Services

客户端访问服务 (CAS) 仅执行客户端请求的身份验证; 身份验证后, 客户端请求将被代理到目标邮箱所在的邮箱服务器, CAS 本身不执行与邮件数据相关的任何处理。根据微软说法,其连接是无状态的,但连接不是真正的无状态,因为 SSL 连接在 CAS 终止,然后处理。如果 CAS 离线,所有连接终止,必须在另一个 CAS 上重新设置 (在真正的无状态设置中不会发生这种情况)。微软称之为“无状态”的原因是 Exchange 2019 CAS 上没有持久存储。

客户端连接从 CAS 代理到托管用户邮箱的邮箱服务器. 这可以是同一台服务器, 但也可以是在同一组织中的另一台 Exchange 2019 服务器。与邮箱服务器的通信协议与客户连接的协议相同,因此当客户端使用 HTTP 连接到CAS 时,HTTP 请求将被代理到正确的邮箱服务器。唯一的区别是使用的端口。客户端使用端口 443 连接到 CAS;CAS 使用端口 444 连接到邮箱服务器。对于其他协议(如 POP3、IMAP4 和 SMTP)也是如此。下图显示了两台具有 Exchange 服务的 Exchange 2019 服务器。

Pro Exchange 2019 Administrator Part 1_服务器_02

如前所述,CAS 是一个“薄(thin)”服务,不会从会话中存储任何信息,除了各种协议日志(如 Autodiscover、Outlook Anywhere 或 IIS 日志)之外。无论是常规客户端请求还是 SMTP 请求都是如此。

负责处理 CAS 上 SMTP 消息的前端传输服务本身不会在服务器上存储消息,而是将 SMTP 消息直接传递到目标收件人的邮箱所在的适当邮箱服务器,或者传递到收件人位于较低级别邮箱服务器的较低级别 Hub Transport 服务器。前端传输服务不检查消息内容。


Exchange 2019 Mailbox Services

邮箱服务是处理所有消息的地方。客户端连接到 CAS,但请求将被代理或重定向到适当的邮箱服务。所有消息渲染都在邮箱服务器上进行。

SMTP传输也位于邮箱服务器上,由三个单独的服务组成:

• The Transport service (传输服务)

• The Mailbox Transport Delivery service(邮箱传输交付服务)

• The Mailbox Transport Submission service(邮箱传输提交服务)

Transport服务处理组织内的所有SMTP消息流,例如路由、排队、分叉、消息分类和内容检查。值得注意的是,Transport服务从不直接与邮件箱数据库通信。

Transport服务与邮件箱数据库之间的通信由 Mailbox Transport Delivery服务和 Mailbox Transport Submission 服务执行。这些服务直接连接到邮件箱数据库,以从邮件箱数据库中传递或检索消息。与 Front-End Transport 服务一样,Mailbox Transport Delivery 和 Mailbox Transport Submission 服务不会在邮件箱服务器上排队任何消息;Transport服务会在邮件箱服务器上排队信息。

当然,最重要的部分是运行在邮箱服务器上的邮箱组件。信息存储,或存储过程,负责处理所有邮箱事务,并将这些事务存储在邮箱数据库中。该数据库不是像SQL服务器那样的关系数据库;它运行在自己的引擎上,即可扩展存储引擎或ESE。ESE数据库引擎在过去25年中已经完全优化,用于与Exchange Server一起使用,因此它的性能非常好,非常可靠。ESE数据库是一个使用数据库、日志文件和一个检查点文件的事务数据库。

Exchange Replication服务是另一个在邮箱服务器上运行的重要服务。此服务负责将邮件箱数据从一台邮件箱服务器上的邮件箱数据库复制到另一台邮件箱服务器上运行的邮件箱数据库。相互之间复制数据的邮件箱服务器的集合称为数据库可用性组,或 DAG。一个DAG 可以占用多达 16 个Exchange 2019邮箱服务器。每个邮箱数据库有 1 个活动邮箱数据库副本,最多可能有 16 个邮箱数据库副本。始终有 1 个活动邮箱数据库复制副本和多达 15 个被动邮箱数据库副本。

注意,Exchange Server 2019 DAG 只能包含 Exchange Server 2019 mailbox servers 。添加以前版本的 Exchange 是不支持的,也不会起作用。

与早期版本相比,Exchange 2019中的数据库得到了极大的改进,例如:

• Exchange 2010每个邮箱每秒生成0.1个I/O (IOPS)。

• Exchange 2013每个邮箱产生0.07 IOPS。

• Exchange 2016 和 2019 为每个邮箱产生 0.044 IOPS。

因此,与Exchange 2010相比,Exchange服务器2019产生的IOPS不到50%,这使得现在可以在一个物理磁盘上存储多个数据库,包括其日志文件。

注意:只能在高可用性环境中将Mailbox数据库及其日志文件存储在一个磁盘上。

IOPS下降情况如下图:

Pro Exchange 2019 Administrator Part 1_服务器_03


Exchange Server 2019 Management

管理 Exchange 2019 环境有两种选择:

Exchange Admin Center — 于 HTML 的图形用户界面,提供管理 Exchange 2019 环境的最基本选项。

Exchange Management Shell — 在 Windows PowerShell 上运行的命令行界面,管理 Exchange 2019 环境时提供所有详细信息选项。


Exchange Admin Center

Exchange 管理中心(EAC)是用于管理 Exchange 2019 环境的基于 Web 的管理门户。可以从内部网络以及外部网络管理 EAC。从安全角度考虑,建议禁用对 EAC 的外部访问。可以通过类似 https://sh-ex01/ecp 或 https://webmail.contoso.com/ecp 的 URL 访问 EAC。

当与 EAC 一起工作时,所有操作都会转换为 PowerShell 命令,然后执行。EAC 有一个命令日志选项,因此您可以查看执行了哪些命令。这对于学习 PowerShell 和了解幕后发生了什么非常有帮助。

Pro Exchange 2019 Administrator Part 1_邮件_04

顶级菜单中的选项卡是上下文相关的。换句话说,当功能窗格中的不同功能被选择时,它们会改变。所有操作都与一个图标相关联。下表描述了每个图标。

Pro Exchange 2019 Administrator Part 1_邮件_05

Exchange管理中心一次最多只能列出 500 个对象,如果您想查看未在“详细信息”窗格中列出的对象,则需要使用“搜索和筛选”选项来查找这些特定对象。在 Exchange 2019 中,从 Exchange 管理中心列表视图中可查看的大约 20,000 个对象。此外,还包括分页功能,因此您可以分页查看结果。在“收件人”列表视图中,您还可以配置页面大小并将数据导出到 CSV 文件。

当您从列表视图中选择对象时,有关该对象的信息将显示在“详细信息”窗格中。在某些情况下(例如,对于邮箱),“详细信息”窗格包括快速管理任务。例如,如果您导航到“收件人”,然后转到“邮箱”并从列表视图中选择一个邮箱,则“详细信息”窗格将显示启用或禁用该邮箱存档的选项。还可以使用“详细信息”窗格批量编辑多个对象。

只需按下 CTRL 键,选择您要进行批量编辑的对象,并使用“详细信息”窗格中的选项。例如,选择多个邮箱可让您批量更新用户的联系人和组织信息、自定义属性、邮箱配额、Outlook Web App 设置等。


Exchange Management Shell

Exchange 管理外壳(EMS)是Exchange Server管理的核心。在这里,你可以配置Exchange Server的每一个小细节。EMS并不是什么新鲜事物,它的第一个版本随Exchange Server 2007一起出现,并且多年来EMS变得越来越重要。仍然有一些功能只能通过使用EMS进行管理,而不能通过EAC进行管理,例如客户端访问规则。

EMS运行在Windows PowerShell之上,因此它可以使用PowerShell中可用的所有功能,如流水线(pipelining)、格式化输出(formatting output)、保存到本地磁盘、对输出排序或使用过滤技术。


PowerShell

许多微软服务器应用程序都有自己的管理外壳,而且所有这些都运行在 Windows PowerShell 之上;不管你喜不喜欢,PowerShell 是 Windows 管理和运行在Windows 之上的应用程序的行业标准。而且不仅仅是微软在用 PowerShell 管理他们的应用程序;第三方供应商也在为他们的产品编写 PowerShell 插件。这些例子包括惠普的 EVA 存储管理解决方案;VMware 的虚拟化平台;以及 KEMP 的负载平衡解决方案

PowerShell 的第一个版本是 Windows 2003 的可下载插件,但 Windows Server 2008 是第一个自带 PowerShell 的操作系统。

PowerShell是一个命令行外壳和脚本环境,它使用的是 .NET 框架。但是PowerShell不是基于文本的,它是基于对象的,因此它支持良好的功能,如管道,格式化或重定向输出。所有对象都有属性或方法,可以在PowerShell中访问和使用。

我们要讨论的最后一个功能是附加模块,例如Server Manager、Active Directory 和 Exchange module 。


Object Model

虽然PowerShell是一个命令行界面,但它使用的是基于 .NET Framework的面向对象模型。这意味着您使用的是对象,而不是常规命令提示符或类Unix shell环境中的普通文本。

由于返回对象,因此可以使用与对象相关的方法对其进行操作,或者可以检查某些属性和属性。例如,您可以使用以下命令请求有关Exchange服务器的信息:

> Get-ExchangeServer –Identity SH-EX01

虽然它作为文本返回到控制台,但它是一个对象,你可以这样处理它,例如:

(Get-ExchangeServer –Identity EXCH01).AdminDisplayVersion

这将返回 Exchange 服务器上的 AdminDisplayVersion 属性。或者,当移动邮箱时,您想检查正在等待处理的邮箱数量,可以使用以下命令:

(Get-MoveRequest -MoveStatus Queued).count

所以,命令的输出是一个对象,你可以继续使用这个对象。这样,你可以使用一个命令的输出(对象)作为另一个命令的实际输入,这种方法称为管道。这种方法在管理Exchange环境时经常使用。


Pipeline

您可以将管道视为一系列连接的管道段,所有项目或对象都通过每个段。每个段都有自己的功能或目的,并且可以更改对象。要创建新的管道,可以使用管道运算符“|”与各种命令结合使用。管道的最简单形式是使用Get命令与Set命令结合使用,例如:

Get-Mailbox | Set-Mailbox

在这个命令中,在 Get-Mailbox 和 Set-Mailbox 命令之间创建了一个管道。Get-Mailbox 命令检索一个或多个邮箱对象,并将这些对象通过管道发送到 Set-Mailbox 命令,该命令可以对邮箱对象进行某些更改。

您可以使用各种 Get 命令从 Exchange 中检索对象,并且实际上可以看到您是否有正确的对象。然后,您可以将它们传递到相应的 Set 命令,然后完成。


Objects and Members

PowerShell中的每个对象都有成员,成员可以是属性或方法。属性是具有值的东西,例如邮箱的名称。方法是对对象执行的操作,例如配置邮箱属性。

要查看特定邮箱的所有成员,可以使用以下命令:

Get-Mailbox Administrator | Get-Member

Pro Exchange 2019 Administrator Part 1_邮件_06

Formatting

可以使用以format动词开头的cmdlet将输出格式化为控制台上显示的格式。

• Format-List — 缩写为FL,用于显示某个对象的所有属性。要检索管理员邮箱的所有属性,请使用Get-Mailbox-Identity | FL 。

• Format-Table — 缩写为FT,可用于检索对象的某些属性。例如,Get-Mailbox命令仅返回Name、Alias、ServerName和ProhibitSendQuota属性。要检索Name、Alias、Database 和 ArchiveState,可以使用类似于Get-Mailbox-Identity Administrator | FT -Property Name、Alias、Database、ArchiveState的命令。

• Format-Wide — 这个命令的缩写是FW,只显示对象的一个属性。通常,它只显示对象的默认属性;对于邮箱,这是它的名称,但您可以使用-Property选项选择另一个属性。

除了这些格式化动词,您还可以使用 PowerShell 中的 -Wrap 和 -AutoSize 参数来格式化 Format-Table 命令的输出,如控制台所示。 -Wrap 选项不会截断列中的输出,而是将其列中的所有输出包裹起来,从而显示整个属性。 -AutoSize 选项根据列中显示的数据更改列的宽度。

需要注意的是,PowerShell 期望第一个列是最重要的,随后的列的重要性逐渐降低。因此,当有太多信息要显示时,甚至可以从输出中删除后面的列。如果出现这种情况,您可以通过使用 -Property 选项重新排序属性来更改控制台上显示的信息的顺序。

通常,命令的输出显示在控制台上。可以使用 PowerShell 中的 Out 动词将输出重定向到其他位置。在 PowerShell 中,以下选项可用:

• Out-Host — Out-Host选项将输出重定向到控制台,这是默认选项。您可以使用-Paging选项一次只显示有限数量的信息。您可以使用<SPACE>在控制台上查看另一页信息。

• Out-Null — Out-Null选项会立即丢弃任何信息,而不显示在控制台上。但是,任何错误消息或更具体地说,从错误流输出的输出将显示在控制台上。

• Out-Printer — 输出打印机选项将任何输出直接重定向到打印机。如果没有提供打印机名称,则使用默认打印机;否则,可以使用类似于 Out-Printer -Name “HP LaserJet 1200 Series PCL 5” 的命令。

• Out-File —  Out-File 命令经常用于将任何输出重定向到本地硬盘上的(Unicode)文件。如果需要纯 ASCII 编码的文件,可以使用 -Encode ASCII 选项,例如,Out-File -FilePath C:\Logging\Mailboxes.txt -Encode ASCII。

• Out-GridView — Out-GridView选项将对象输出到图形呈现的网格中,用户可以在其中执行有限的额外搜索和排序。请注意,GridView允许选择,这些选择将通过管道传递以进行进一步处理。


Grouping

组织输出的另一个有用的参数是 GroupBy 控件。难以查看的长输出列表提供了基于属性的输出分组选项。例如,可以从 Active Directory 中检索所有用户,并根据其公司属性的值对输出进行分组,如下所示:

Get-User | Format-Table –Property Name,SamAccountName,Company `
–Sort Company -GroupBy Company


Filtering

您还可以使用-Filter参数过滤Get-User命令的输出。例如,要将公司属性设置为“Fourth Coffee”的所有用户的邮箱启用,请键入以下命令:

Get-User –Filter {Company –eq "Fourth Coffee"}

如果您想更具体一些,例如,对于公司属性设置为“Fourth Coffee”且部门属性设置为“Marketing”的所有用户启用邮箱,请输入以下命令:

Get-User –Filter {(Company –eq "Fourth Coffee") -AND (Department –eq "Marketing")}

简而言之,-Filter选项可用于以下操作:

• -and

• -or

• -not

• -eq (equals)   等于

• -ne (does not equal)   不等于

• -lt (less than)   小于

• -gt (greater than)   大于

• -like (compare strings by using wildcard rules)   使用通配符规则比较字符串

• -notlike (compare strings by using wildcard rules)


Conversion

可以将对象转换为特定格式,例如 HTML 或 CSV。如果只想收集数据或想使用 Excel 等应用程序对其进行处理,这可能很有用。例如,要收集一个简单的邮箱列表并将其信息导出到 CSV 文件,以便在 Excel 中导入,请键入以下 cmdlet:

Get-Mailbox | Select DisplayName, PrimarySmtpAddress | Export-CSV `
-Path C:\Install\Mailboxes.csv -NoTypeInformation

当将输出导出到 CSV 文件时,PowerShell 将对象类型写入 CSV 文件的第一行,类似于 #TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox

Pro Exchange 2019 Administrator Part 1_邮件_07

-NoTypeInformation 选项阻止输出文件中的此行。转换 cmdlet 还有一个对应的导入cmdlet,即 Import-CSV,它允许您导入以特定格式存储的信息。


Variables

使用变量并不是 PowerShell 特有的,但是每个命令行界面或脚本引擎都可以使用变量,PowerShell 也不例外。

如前所述,PowerShell 使用对象,您可以将对象存储在变量中,以便稍后使用。这可以在 PowerShell 脚本中使用,也可以在命令行中使用。只要 PowerShell 窗口是打开的,对象就会一直存在,或者直到它被销毁。

变量以$字符开头,后跟任何您想要的名称。当然,使用易于识别的名称是个好习惯。

要创建一个名为$AdminMailbox的变量,并将管理员邮箱对象存储在其中,可以使用以下命令:

$AdminMailbox = Get-Mailbox –Identity Administrator

邮箱对象现在存储在变量$AdminMailbox中,可以直接使用,也可以稍后使用。要查看变量的内容,可以在PowerShell窗口中键入其名称:

$AdminMailbox

您可以看到,输出与常规的 Get-Mailbox 命令相同。要查看存储在此变量的对象的属性和方法,您可以请求它们,就像请求常规对象一样:

$AdminMailbox | Get-Member

还可以将多个对象存储在变量中。要将所有在服务器 SH-EX01 上运行的邮箱存储在名为 $Mailboxes 的变量中

$Mailboxes = Get-Mailbox –Server SH-EX01

要对所有这些邮箱做“某事”,您可以在 PowerShell 中创建一个条件循环,如下所示:

$Mailboxes = Get-Mailbox –Server AMS-EXCH01
ForEach ($Mailbox in $Mailboxes){Do Something with each $Mailbox}

也可以使用系统环境变量,例如您正在使用的服务器的名称。要使用名为$ServerName的变量并将其填充为服务器的名称,可以使用以下内容:

$ServerName = $env:COMPUTERNAME

要检索您登录的 Active Directory 域的名称,并创建用于配置 OWA 虚拟目录的FQDN,可以使用以下命令:

$Domain = $env:UserDnsDomain
$FQDN = "webmail." + $Domain

与许多编程环境一样,通常有更多的方法来完成任务。例如,前面的最后一个 cmdlet 也可以用:

$FQDN = "webmail.$Domain"

双引号允许嵌入变量,这些变量将在运行时用其值替换。

$FQDN = 'webmail.' + $Domain

单引号与双引号类似,除了单引号会逐字解释里面的内容,不会在运行时替换变量。

您还可以使用 Read-Host 命令在 PowerShell 控制台上请求用户输入,并将其与“webmail”字符串结合起来创建 FQDN:

$Domain = Read-Host "Please enter your external domain name"
$FQDN = "webmail." + $Domain

通过使用这些变量,可以像这样设置 OWA 虚拟目录:

Get-OWAVirtualDirectory –Server $ServerName | Set-OWAVirtualDirectory`
 –ExternalURL "https://$FQDN/owa" -InternalURL "https://$FQDN/owa"

在这个例子中,看到管道技术与使用变量的结合。


Additional Modules

使用附加模块,例如,如果您想安装远程服务器管理工具(e Remote

Server Administration Tools),可以使用以下命令:

Import-Module ServerManager
Install-WindowsFeature RSAT-ADDS

要安装 IIS Web 服务器(e IIS web server),可以使用类似下面的命令:

Import-Module ServerManager
Install-WindowsFeature Web-Server

注:在 Windows Server  2016 和 2019 中,服务器管理器模块(Server Manager module)是自动加载的。

另一个有趣的模块是 Active Directory 模块,可以使用以下命令加载:

Import-Module ActiveDirectory

当加载 Active Directory 模块时,将在 PowerShell 中提供以下选项:

• Account management

• Group management

• Organizational unit management

• Search and modify objects in Active Directory

• Forest and domain management

• Domain Controller management

• Operations Master management

在“Accounts Organization Unit”中的“OU=Users”中创建一个名为“Sarah Summertime”的新用户,可以使用以下类似命令:

Import-Module ActiveDirectory
New-ADUser –SamAccountName Sarah –Name "Sarah Summertime" –GivenName Sarah `
–SurName Summertime –AccountPassword (ConvertTo-SecureString –AsPlainText "Pass1word" –Force) `
–Enabled $TRUE –Path "OU=Users,OU=Account,DC=Proexchangeadmin,DC=COM

注意到使用了 Convertto-SecureString,因为 AccountPassword 参数不接受任何明文密码作为输入。此外,需要 AsplainText 和 Force 将明文转换为安全字符串。

要了解有关 Active Directory 中所有 PowerShell 管理的完整概述,您可以在http://bit.ly/ADPowershell 上查看 Microsoft TechNet 页面的“使用 PowerShell 的 Active Directory 管理”。

另一个经常使用 PowerShell 进行 Exchange 管理的模块是 Web 管理模块。使用此模块,您可以在 Exchange 2019 服务器上管理网站及其属性。例如,要加载 Web 管理模块并清除 OWA 虚拟目录上的 SSL 卸载标志,您可以使用以下命令:

Import-Module WebAdministration
Set-WebConfigurationProperty -Filter //security/access -name sslflags `
-Value "None" -PSPath IIS:\ -Location "Default Web Site/OWA"

最后一个模块是Exchange模块,Exchange管理Shell(EMS)最好通过开始菜单上的EMS图标启动。这将确保二进制文件正确加载。基本上是PowerShell被启动,一个特殊的Exchange管理脚本被加载,会话连接到Exchange 2019服务器。这可以是您登录的本地Exchange服务器,也可以是另一个服务器,只要它处于同一个Active Directory站点即可。即使连接到本地,这也被称为Remote PowerShell。


Remote PowerShell

当您在 Exchange 服务器上打开 EMS 时,它将在本地服务器上运行,并且您需要访问服务器的控制台。但是,也可以使用远程 PowerShell,从而将本地 Windows PowerShell 实例连接到远程位置的 Exchange 服务器。工作站不必在同一个域中;如果使用适当的凭据和身份验证方法,它将起作用。有了这种功能,现在管理位于建筑物其他部分的 Exchange 2019 服务器就像管理位于国家其他部分的数据中心的服务器一样容易。不用说,如果您使用非域连接客户端进行远程 PowerShell,则无法使用Kerberos。为此,必须更改 PowerShell 虚拟目录的身份验证为基本身份验证。

要使用带有 Exchange 2019 的远程 PowerShell,请确保工作站(或服务器)支持远程签名脚本。由于安全限制,此功能默认情况下被禁用。您可以通过以提升的权限打开PowerShell 命令提示符并输入以下命令来启用对远程签名脚本的支持:

Set-ExecutionPolicy RemoteSigned

下一步是创建一个会话,该会话将连接到远程 Exchange 服务器。当创建会话时,可以将其导入 PowerShell:

$Session = New-PSSession –ConfigurationName Microsoft.Exchange `
–ConnectionUri "https://Exch04.proexchangeadmin.com/PowerShell" `
-Authentication Kerberos
Import-PSSession $Session

注意:在使用 Kerberos 身份验证时,只能使用 FQDN 连接到特定的邮箱服务器。此外,使用 https 连接到特定的邮箱服务器需要有效的 SSL 证书。在使用 Kerberos 身份验证的情况下,无法使用 webmail.proexchangeadmin. com 这样的通用 FQDN,除非服务主体名称 Service Principal Name (SPN) 已注册到该系统。如果没有注册,则必须使用基本身份验证。

工作站上的PowerShell现在将使用默认的SSL连接连接到远程Exchange服务器,并且,如果RBAC允许,所有Exchange cmdlets都将可用。

要结束远程 PowerShell 会话,请输入以下命令:

Remove-PSSession $session

注意:也可以使用 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 命令来设置Exchange会话。虽然结果看起来相似,但它们并不相同。这确实可以连接,但它绕过了RBAC 配置,并且不受支持。

上面的示例来自一个 Windows 10 工作站,该工作站也是同一个 Active Directory 域中的成员。要从非域工作站连接到远程 Exchange 2019,不能使用Kerberos 身份验证。相反,必须使用基本身份验证。

第一步是在 PowerShell 会话中创建一个变量 $Credential,其中包含远程会话的用户名和密码。当使用 Get-Credential 命令时,将出现一个弹出窗口,要求为远程Exchange 环境提供用户名和密码。填写凭据后,以下命令将创建一个新会话,该会话将设置与 Exchange 环境连接。

$Credential 变量用于将凭据传递到 Exchange 环境,然后将会话导入 PowerShell:

$Credential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri "https://webmail.proexchangeadmin.com/PowerShell" `
-Authentication Basic -Credential $Credential
Import-PSSession $Session

注意:如果您想使用远程 PowerShell 进行基本身份验证,请不要忘记在 PowerShell 虚拟目录上启用基本身份验证。通过互联网使用远程 PowerShell 是可行的,但从安全角度来看,不建议这样做。

这些示例适用于 Active Directory 域管理员,他们自动启用了远程管理选项。要为远程管理启用另一个帐户,您可以使用以下命令:

Set-User <username> -RemotePowerShellEnabled $True

Virtualization

虚拟化的 Exchange Server2019 服务器完全受支持,在虚拟化 Exchange Server 2019 时,对虚拟机管理程序平台有一些特定要求,但这些是更一般的要求或建议。对存储、内存和高可用性解决方案也有更具体的要求。


Requirements for Hardware Virtualization

Exchange Server 2019 完全支持以下虚拟化解决方案之一:

•  具有 Hyper-V 或 Microsoft Hyper-V 的任何版本的 Windows Server。

• 经过微软服务器虚拟化验证计划 Microsoft Server Virtualization Validation Program(SVVP)验证的任何第三方虚拟机管理程序解决方案。有关 SVVP 的更多信息,请访问 http://bit.ly/ExSVVP

对于 Exchange 服务器 2019,它必须安装在 Windows Server 2019 上,但这与在裸金属上部署 Exchange Server 2019 没有什么不同。

当然,对 Exchange 服务器进行测试最多的虚拟化平台是 Hyper-V。微软 Exchange 团队每天都在测试数以千计的Exchange 服务器,所有这些服务器都在 Microsoft Azure、Office 365 和本地运行Hyper-V。由于同属一家公司,因此有一个密切的跨组工程关系,并且 Exchange 团队、Windows 团队和 Hyper-V 团队之间有一个直接的反馈回路。许多建议都是直接针对 Hyper-V 的,但它们也适用于其他虚拟化解决方案。

Exchange Server 2019 也可以安装在微软 Azure 上。如果用于 Exchange 数据库及其事务日志文件的所有存储卷都配置为 Azure 高级存储,则支持此功能。


The Virtualization Host

虚拟化主机上不应安装其他软件。此外,Hyper-V 主机本身不应配置为域控制器!唯一可以在 Hyper-V 主机上被支持和安装的软件是管理软件,如 System Center Configuration Manager (SCCM) 客户端、System Center Operations Manager (SCOM ) 客户端和 Virtual Machine Manager (SVMM) 代理、备份客户端或 Microsoft Endpoint Protection (防病毒) 客户端。


Virtual Processors

当使用服务器虚拟化时,在虚拟化主机上有给定数量的处理器和处理器内核,以及几乎无限数量的虚拟处理器。但是,您不能分配无限数量的处理器周期,因此,您必须注意虚拟处理器的数量,即分配给虚拟机的处理器,以及虚拟化主机上的逻辑处理器或实际处理器的数量。

Microsoft Exchange产品团队支持虚拟到逻辑处理器比率为2:1。换句话说,当您的虚拟化主机安装有八个处理器内核时,您不应该在该主机上使用超过16个虚拟处理器内核。2:1的比率是Exchange产品团队正式支持的,但他们推荐的比率实际上是1:1。

当涉及到虚拟化主机上的处理器时,还有一种称为超线程的东西。这是英特尔的并行多线程(SMT)的实现,用于提高处理器内部指令的并行处理能力。虽然启用超线程时核心数量加倍,但性能不会同时加倍。然而,启用超线程时,性能确实会增加,尽管不会超过约20%。

超线程技术可以提高性能,但您必须注意两种情况:

• 在 Windows Server 2019 裸机上运行 Exchange server 2019 时启用超线程(不进行虚拟化)会给处理器和 Windows 处理它们的方式添加了一层复杂性。这可以增加Exchange server 2019 服务器使用的内存量,每个核心大约增加 2 GB。鉴于超线程仅将性能提高 20%,因此可能会导致性能损失。

• 在运行 Exchange server 2019 时启用超线程确实会提高性能,因为处理器的复杂性对客户机操作系统是“隐藏”的。不过,请记住,启用超线程只会使性能提高 20%。在设计时,请计算未启用超线程的处理器核心数。

更多信息可以在 http://bit.ly/HyperThreadingStory 上找到。启用超线程以提高性能看起来很诱人,但也有缺点。超线程会带来安全风险,包括推测执行和旁路漏洞。为了防止这种风险,客户可能需要禁用超线程。更多信息可以在微软支持网站 http://bit.ly/HyperthreadingVulnerabilities 上找到。


Storage Requirements for Virtual Machines

在存储方面,有两种方式。一种是虚拟化主机本身使用的存储,这是虚拟化主机的操作系统安装的地方,另一种是虚拟机使用的存储解决方案。后者是虚拟硬盘。



Virtualization Host Storage

虚拟化主机上有多种存储解决方案。首先,运行虚拟化软件的操作系统使用的磁盘。通常,该操作系统有两个磁盘,配置为 RAID-1 设置,因此磁盘是镜像的。这些磁盘应该是你能得到的最快的磁盘,最好是固态硬盘(SSD)。在任何时候,你都必须确保该操作系统位于与虚拟机不同的磁盘上。

数据磁盘是虚拟机存储的磁盘;这些磁盘可以是:

• Direct-attached storage (DAS) — 当使用直接附加存储(DAS)时,数据磁盘位于虚拟化主机本地。这些磁盘也应该是快速磁盘,最好采用 RAID-10 配置,提供最佳的性能和冗余。

• iSCSI storage — 当使用 iSCSI 时,磁盘(LUN)会呈现给虚拟化软件,该软件可以像访问本地磁盘一样访问它们。值得注意的是,iSCSI 磁盘也可以通过网络连接从虚拟机内部访问。

• SAN storage — 当使用SAN时,虚拟化主机通常使用光纤通道(FC)解决方案来访问磁盘(LUN)。这是一个快速和冗余的解决方案,但同时成本高昂。

在运行虚拟化的 Exchange 2019 服务器时,这三种解决方案均得到全面支持。这些存储解决方案都是块级存储解决方案 (block-level storage solutions)。主机“拥有(owns)”存储解决方案上的文件系统,因此可以控制存储解决方案。

将虚拟磁盘存储在 NAS 解决方案中是不支持的。将虚拟磁盘存储在 SMB 3.0共享中是支持的,但前提是 SMB 3.0 分享由块级存储解决方案支持。因此,在虚拟Exchange 服务器方面,块级存储是关键!

在正常的物理环境中,最佳实践是将 Windows 操作系统存储在一个磁盘上,而将邮箱数据库文件存储在另一个磁盘或磁盘组上。当然,在虚拟化 Exchange 服务器时也没有什么不同。但是,您必须小心地将包含 Windows 操作系统的实际虚拟硬盘和邮箱数据库文件存储在虚拟化主机的单独硬盘上。这在虚拟化的 Exchange 服务器中提供了最佳的性能;但是,如果磁盘出现故障,您将只丢失一个,要么是操作系统,要么是邮箱数据库。如果您丢失了一个,只要有备份可用,它总是可以恢复的。这很可能是一项相当艰巨的工作。

Virtual Hard Disks

虚拟机使用虚拟硬盘。在Hyper-V中,这些是VHDX文件;在VMware中,它们是VMDK文件。这些是大型单个文件,其中保存了虚拟机中的操作系统或数据,并保存在前面提到的三种存储解决方案之一上。还要注意,这些文件应该位于保存虚拟化主机操作系统的磁盘之外。在Hyper-V中,有四种类型的虚拟硬盘可用:

• Fixed size

• Dynamically expanding

• Differencing disk

• Pass-through disk


Fixed Disks

固定大小的虚拟磁盘是预先创建和完全分配的虚拟磁盘。如果您创建了一个 100 GB 的固定大小的虚拟磁盘,则虚拟化主机的存储解决方案上会创建一个大小为 100 GB 的 VHDX 文件。是的,创建 VHDX 文件并填充它需要时间,但可以避免以后出现性能问题。此外,由于在创建实际虚拟机之前预先创建了磁盘,因此在使用其他类型的VHDX 文件时,您不会遇到“磁盘已满”的情况。

固定大小的虚拟硬盘是虚拟化 Exchange 2019 解决方案中支持的唯一虚拟硬盘。


Dynamically Expanding Disks

一个动态扩展的虚拟磁盘预先创建好,但是在创建时它不包含任何数据,因此在初始创建之后只有几兆字节。

当数据存储到这种类型的虚拟磁盘上时,也就是说,当操作系统安装到这种磁盘上,或者当位于该磁盘上的邮箱数据库在扩展时,它就会自动扩展。然而,当磁盘扩展时,尽管它很小,但会有性能惩罚。更重要的是,当你使用这种类型的虚拟磁盘时,会有严重的风险过度使用底层磁盘。你不会是第一个,当然也不会是最后一个,使用动态扩展磁盘却发现它已满,虚拟机已停止工作的人。

因此,动态扩展磁盘不支持在生产环境中运行 Exchange 2019,但对于实验室环境,这是一个很好的解决方案,因为它将为您节省大量磁盘空间。


Differencing Disks

差异磁盘是一个有趣的解决方案,因为它由两个虚拟硬盘组成,这两个虚拟硬盘以父子关系链接在一起。第一个磁盘被称为“父”磁盘,这通常是最重要的磁盘。该磁盘以只读方式使用,这意味着数据从该磁盘读取,但从不向该磁盘写入。因此,它永远不会改变,并且通常存储实际虚拟硬盘的存储位置。在差异磁盘的情况下,您不能丢失这个磁盘。

第二个磁盘被称为“子”磁盘,这是一个读写磁盘。数据从子磁盘读取,但数据也可以存储在磁盘上。可以根据相同的父磁盘创建多个差异磁盘。如图 所示,Diff 1、2 和 3 VHDX。

Pro Exchange 2019 Administrator Part 1_邮件_08

想象一下,您创建了一个带有 Windows 服务器 2019 的虚拟机,它被完全配置并可以运行。您关闭了虚拟机,并基于此 VHDX,创建了一个新的差异磁盘。您的下一步是根据此差异磁盘创建一个新的虚拟机。当新的 VM 启动时,配置将从父磁盘读取,但所有更改都将写入子磁盘,使父磁盘保持不变。这样,您可以返回到最初关闭第一个虚拟机时的状态。您已经创建了一个时间点机制。

更棒的是,在创建差异磁盘之前,您可以使用 sysprep 实用程序来准备虚拟机进行全新的“mini setup”。当您基于 sysprepped VHDX 创建新的差异磁盘时,您可以根据 sysprep 的mini setup创建新的虚拟机。因为您可以根据使用相同的预配置父分区,您可以在几分钟内创建多个新的虚拟机。如果您将父VHDX文件存储在一个硬盘上,将子VHDX文件存储在另一个硬盘上,您也可以获得可接受的性能。

缺点是,微软不支持Exchange Server场景中的差异磁盘。主要原因是Exchange Server不知道后台发生了什么。当删除差异磁盘时,您可以恢复到以前的状态,但Exchange Server不知道这一点。尽管如此,差异磁盘仍然是实验室和测试环境的绝佳解决方案,因为它们允许您快速创建多个虚拟机进行测试。


Pass-Through Disks

直连磁盘不是真正的虚拟硬盘,因为它不是以 VHDX 或 VMDK 文件的形式存储,不像前面提到的虚拟磁盘类型,但是直连磁盘可以被虚拟机使用。直连磁盘可以是物理磁盘,也可以是直接呈现给虚拟机 SCSI 适配器的 SAN 上的 LUN。有时,直连磁盘也被称为“原始磁盘(raw disk)”。

Memory Requirement for Virtual Machines

在任何虚拟机管理程序平台上,您可以使用动态内存;此功能的名称可能不同。与将固定数量的内存分配给虚拟机不同,内存动态地分配给虚拟机。也就是说,根据虚拟机内的工作负载,虚拟机使用的内存量可能会有所不同。在 Hyper-V 动态内存中,以下内存分配可用:

• Minimum RAM — 最小 RAM,这是在启动时分配给虚拟机的内存量。

• Maximum RAM— 最大 RAM,这是运行时可以分配给虚拟机的最大内存量。您可以将此设置为极高的值,但它永远不会超过 Hyper-V 主机的物理内存量。

• Memory buffer — 内存缓冲区,为虚拟机保留的一小部分可配置内存,用于内存突发。

第四个设置是关于内存权重的。这决定了在重新分配内存时虚拟机的重要性。权重越高,意味着越重要,因此内存分配得越好。

当启动虚拟机时,它会获得分配的最小内存量,但一旦需要,就会向虚拟机分配更多内存;随着时间的推移,您将看到内存量的稳定。但是当其他虚拟机需要更多内存时,超管需要从某些虚拟机回收内存。

当超管回收内存时,虚拟机内部会执行一个称为气球膨胀的过程,以回收虚拟机内部任何未使用的内存页面。但是当没有可用页面时,虚拟机内部的内核会开始向磁盘分页以回收内存。正如您所知道的,分页通常会对服务器性能产生巨大影响。

微软内部的测试表明,当从Exchange邮箱服务器回收内存时,RPC平均延迟计数器会急剧增加。当这种情况发生时,用户会立即遇到性能问题。下图中(动态内存启用后,RPC 平均延迟大幅增加)您可以看到当可用字节减少时,RPC平均延迟增加。

Pro Exchange 2019 Administrator Part 1_Server_09

动态内存对于在临时基础上需要内存提升的应用程序很有用,例如 Web 服务器或文件服务器。Exchange 不需要内存提升;它始终需要所有内存。因此,在任何 Exchange 服务器版本上使用动态内存在生产环境中不受支持。


High Availability Solutions

对于虚拟化的 Exchange 2019 环境中的高可用性解决方案,基本上有两种解决方案:

• Host clustering — 主机群集,这是一种解决方案,其中虚拟化主机形成群集,其中虚拟机作为集群资源创建。当主机失败时,虚拟机将被移动到群集中的另一个主机。请注意,当主机失败时,虚拟机也将崩溃,并在其他集群节点上执行冷启动。当计划迁移发生时,虚拟机将从一个集群节点逐渐移动到另一个集群节点,没有任何停机时间。

• Guest clustering — 虚拟机集群,这是一种解决方案,其中多个虚拟 Exchange Server 2019 服务器在数据库可用性组 (DAG) 中运行。当虚拟化主机失败时,该主机上的 DAG 成员将失败,DAG 的另一个虚拟机将接管 Exchange 服务,不会对用户造成任何停机时间。

当使用主机集群时,微软完全支持Live Migration和类似第三方技术,如VMware的VMotion。所有Exchange服务器版本都完全支持这些技术。请注意,所有第三方供应商都应通过SVVP计划验证其解决方案,如前所述。微软可以支持Exchange Server,但不能支持这些第三方解决方案,因此,您必须确保在这些解决方案上运行Exchange Server得到这些第三方供应商的充分支持。

微软不支持任何其他使用点时间(point-in-time)或保存状态技术(saved state technology)的迁移解决方案,包括Hyper-V快速迁移解决方案。“保存状态”是指虚拟机“休眠”的状态。虚拟机被关闭,其内存内容保存在磁盘上的单独文件中。当机器返回服务时,从文件中读取内存内容,虚拟机返回移动前的状态。当涉及到交换(任何版本)时,这是不支持的。

当您在基于主机的群集解决方案上运行Exchange服务器时,重要的是要意识到,您仍然有一个Exchange服务器的副本。也就是说,在主机级别上存在冗余,但在Exchange级别上不存在冗余。如果虚拟机内的Exchange服务器失败,您最终会得到一个高可用性的虚拟机和一个Exchange服务器。如果Exchange服务器中的冗余很重要,建议您使用基于主机的群集解决方案中的数据库可用性组。这样,您就可以在Hypervisor级别和Exchange级别上抵御故障。Exchange Server 虚拟化的信息可参考 http://bit.ly/VirtualX2019


Sizing Virtual Exchange Servers

虚拟化是一个非常酷的解决方案,但CPU资源不会凭空出现,虚拟化层有开销。例如,对于Hyper-V,您必须计算额外的10%的CPU开销。对于第三方解决方案,您必须遵循供应商在其虚拟化解决方案中的处理器开销指南。

在虚拟化时,最好的建议是使用Exchange 2019服务器角色要求计算器。您将在此要求计算器中找到两个用于虚拟化的选项:服务器角色虚拟化选项(the Server Role Virtualization option)和Hypervisor CPU调整因子(Hypervisor CPU Adjustment factor)。

其他需要考虑的重要因素是本部分早些时候提出的内存建议;还要注意,存储与以前一样重要。存储应针对 IO 延迟和高可用性进行优化,适用于主机集群和客户机集群。

Designing Your Exchange Server 2019 Environment

当您要为任何数量的用户部署 Exchange 2019 时,您必须对 Exchange Server 环境进行适当的设计。您必须对所有业务和法律要求进行清点,并将这些要求写在设计文档中。结合用户要求,例如用户数量(即邮箱)、邮箱大小等,您可以根据适当的设计决策创建 Exchange 2019 环境的设计。如果您没有这样做,当运行 Exchange 2019 环境时,您很可能会遇到容量问题。业务、法律和用户要求包括以下问题的答案:

• 平均邮箱大小是多少?

• 你的备用策略是什么?

• 如果您有备份,您需要保留这些备份多长时间,您是否需要在离线位置存储备份?

• 正常营业时间是多少?

• 你的服务级别协议(SLA)是什么样的?在你的SLA中,你将定义你对以下问题的答案:

• 是否需要 24x7,还是 5x12 就可以了?

• 创建备份需要多长时间,更重要的是,恢复数据需要多长时间,以及可以恢复什么类型的数据(例如,邮箱或项目级别)?

• 如果发生紧急情况,您允许丢失多少数据,或者是否允许恢复初始空邮箱,数据将随着时间的推移恢复 ?

• 恢复邮箱、邮箱数据库或整个 Exchange 2019 服务器需要多长时间?

• 消息有保证的送达时间吗?

• 什么是用户并发性?也就是说,同时有多少用户在线?

在设计适当的 Exchange 2019 环境时,您需要回答一些问题。这些问题与您作为Exchange 管理员所习惯回答的问题不同,例如“我的服务器需要多少内存?”或“我的 Exchange 2019 服务器的磁盘配置如何?”

在我们虚构的ProExchangeAdmin.com 公司中,我们有 2000 名用户,我们预计每个用户需要 5GB 的邮箱,并且为了高可用性,我们将在数据库可用性组中使用三台 Exchange 2019 服务器。


Exchange 2019 Server Role Requirements Calculator

确定 Exchange 2019 服务器大小的最佳工具之一是 Exchange 2019 服务角色要求计算器。这基本上是由 Microsoft Exchange 产品组创建的电子表格,它将基于您提供的要求执行 Exchange 2019 部署的计算,您必须为此提供输入。Exchange 2019 的计算器也可以通过 https://aka.ms/excalc 单独下载。

打开计算器后,您将看到一个 Excel 电子表格,其中包含 9 个选项卡。第一个选项卡是您输入要求的地方,这些要求将用作实际设计的输入。

• If you are virtualizing your Exchange servers - 是否虚拟化解决方案

• How many Mailbox servers you will use - 将使用多少个邮箱服务器

• How many mailboxes in your environment - 在您的环境中有多少邮箱

• How many messages sent and received per mailbox each day - 每天每个邮箱发送和接收的邮件数量

• How large the mailbox size - 邮箱大小

• The backup architecture - 备份体系结构,传统的备份是基于VSS的,无论是硬件VSS解决方案还是软件VSS解决方案。在您的网络中运行着一个备份服务器,在Exchange服务器上运行着备份客户端。Exchange Native Data Protection是另一种保护信息的方式,有时也被称为“无备份”环境。

在我们的 ProExchangeAdmin 环境中( 假设 2 台 Exchange 2019 服务器设计,用于 2000 个邮箱的 ProExchangeAdmin 环境),要求基于 HP DL380 Gen10 服务器,配备双 Intel Xeon Gold 6242,运行速度为 2.8 GHz。这些数据被输入到需求计算器中,如表所示:

Pro Exchange 2019 Administrator Part 1_服务器_10

这些是 Requirements Calculator 首页上最重要的设置;在此处,所有其他要求都可以保持其默认设置。

当您在 Requirements Calculator 中输入所有数据后,您可以转到第二选项卡以查看角色要求。在此工作表中,您将根据刚刚输入的内容找到Exchange 2019 服务器的大小。

注:给定服务器的SPECint2017值可以从www.spec.org获取。

您会发现邮箱数量、邮箱数据库数量、产生的 IOPS 以及 Exchange 服务器所需的内存量等,结果列在下表中。

Pro Exchange 2019 Administrator Part 1_服务器_11

正如你所看到的,根据需求计算器,Exchange 2019需要相当多的资源;另一方面,可以说,这个计算是一个最坏的情况,在这种情况下,所有资源都达到了最大压力。在现实生活中,Exchange 201 9使用的资源可能少得多。

因此,这些 Exchange 2019 服务器使用 14 个邮箱数据库。“需求计算器”中的“卷需求”选项卡显示了邮箱数据库的数量和用于存储邮箱数据库的卷数。由于 Exchange 2019 在同一卷上支持多个邮箱数据库,因此只使用了 7 个卷,邮箱数据库分布在这 7个卷上。

在我们的示例中,三个 RAID-5 配置的磁盘用于创建此恢复卷。因此,总共有 11 个 4 TB 的物理磁盘用于存储 2000 个大小为 5 GB 的邮箱。服务器本身使用两个 RAID-1 配置的磁盘用于操作系统和 Exchange 2019 服务器软件。此分布的图形表示如下图所示。

Pro Exchange 2019 Administrator Part 1_邮件_12

对于较小的 Exchange 服务器,驱动器号可用于存储邮件数据库的磁盘。对于较大的环境,建议使用挂载点。在使用挂载点时,使用以下结构:

• C:\ExchDbs\Disk1

• C:\ExchDbs\Disk2

• C:\ExchDbs\Disk2

• C:\ExchDbs\Disk3

• Etc.

在使用挂载点时,还可以使用 AutoReseed 和 metacache 数据库等特性。

微软有一篇关于 Exchange 2013规模设定的优秀白皮书,名为“Ask the Performance Guy: Sizing Exchange 2 013Deployments”,可以在 http://bit.ly/X2013Sizing 找到。微软发布了 Exchange 2016 更新,名为“Ask the Performance Guy: Sizing Exchange 16 Deployments”,可以在 http://bit.ly/X2016Sizing 找到。


Hardware Requirements

以下是受支持的Exchange Server 2019部署的最低要求:

• 英特尔或AMD的X64架构。

• 邮箱服务器至少128 GB RAM。

• 边缘传输服务器至少64 GB RAM。

• 至少30GB的可用空间,用于安装Exchange 2019。(为每个UM语言包添加500 MB。所有磁盘必须使用NTFS或ReFS文件系统格式化。)

• 一个500 MB的硬盘,用于存储传输队列数据库。

有关所有Exchange 2019要求的完整和最新概述,请访问Microsoft文档中的Exchange Server系统要求,网址为 http://bit.ly/Ex2019Requirements 


Software Requirements

Exchange Server 2019 可以安装在以下 Windows 操作系统上:

• Windows Server 2019 Datacenter Edition, both Desktop Experience and Server Core

• Windows Server 2019 Standard Edition, both Desktop Experience and Server Core

Exchange Server 2019 仅支持 Windows Server 2019。它不会在 Windows Server 2016上工作。同时,Exchange Server 2016 不支持 Windows Server 2019。Exchange Server 2016 仅支持 Windows Server 2016 和 Windows Server 2012 r2。此外,Exchange Server 2019 不支持 Windows Server 2016 Server Core。

Exchange 2019 Management Tools 可以安装在以下 Windows 操作系统上:

• Windows Server 2019 Datacenter Edition

• Windows Server 2019 Standard Edition

• Windows 10, 64-bit edition

对于 Active Directory,可以确定以下要求:

• 域控制器必须是 Windows 2012 R2 或更高版本。

• Active Directory 功能级别必须为 Windows 2012 R2 或更高版本。

• Exchange Server 2019安装的Active Directory站点应至少有一个可写的域控制器,该域控制器还应持有全局目录服务器(Global Catalog server)。

Exchange 2019 支持多个 DNS 命名空间场景,尽管这些要求多年来一直没有改变。以下命名空间可用于 Exchange 2019:

• Contiguous namespace - 相邻命名空间,这是一个正常的命名空间,其中环境中的所有域名都是邻接的。例如,根域将是 proexchangeadmin.com,子域将是emea.proexchangeadmin.com、na.proexchangeadmin.com或asia.proexchangeadmin.com。再深入一级,将是prod.emea.proexchangeadmin.com和rnd.na.proexchangeadmin.com。

• Noncontiguous namespace - 非相邻命名空间,Active Directory 森林中的不同树没有相似的名称。例如,Active Directory 森林中的一个树可以是 proexchangeadmin.com,而同一个 Active Directory 森林中的另一个树可以是 Exchange2019.nl,第三个树可以是Exchangelabs.nl。它们在一个森林中形成单独的域树。

• Single-label domain - 单标签域是一个不包含 DNS 后缀的域名,例如,没有 .com、.net、.org 或.corp。一个正常的域名是 proexchangeadmin.com,但单标签域是proexchangeadmin。单标签域受 Exchange 2019 支持,但微软不建议使用单标签域。

• Disjoint namespace - 不相交命名空间是指服务器的主 DNS 后缀与 Active Directory 域的 DNS 名称不匹配的命名空间。例如,您可以在 Active Directory 域 emea.proexchangeadmin.com 中拥有一个名为 AMS-EXCH01 的 Exchange 服务器,其主 DNS 后缀为 research. proexchangeadmin.com。

若要了解支持的 DNS 名称空间和附加资源,请参阅 http://bit.ly/ExNamespace 中有关 Microsoft 服务器产品的 DNS 名称空间规划支持文章。

请注意,支持在域控制器上安装 Exchange 2019,但不推荐这样做。推荐的方式是在活动目录域中的成员服务器上安装 Exchange 2019 。


Installing the Exchange Server

Exchange 2019 的一个要求是,它只能安装在 Windows Server 2019 上。这可以是GUI 版本(“桌面体验”)或 Server Core;两者都支持。虽然对于更传统的Windows GUI 管理员来说,管理起来比较困难,但我总是建议使用 Server Core,因为其占用空间和攻击面较小。Windows 2019 Server Core 和桌面体验的先决条件相似,差别只是在需要添加桌面体验的信息。

在决定是否使用服务器核心或桌面体验时,请特别注意。在 Windows 2019 中,安装后无法在两者之间切换。

Exchange 使用多个磁盘进行操作。当然,系统盘和启动盘(C:\ 驱动器)是必需的,但还有用于存储 SMTP 队列数据库和邮箱数据库的磁盘。对于小型部署,您可以使用常规的邮箱数据库磁盘驱动器号,但对于较大的部署,建议使用挂载点,以避免驱动器号耗尽。此外,在使用挂载点时,您还可以利用一些有趣的功能,例如 AutoReseed(Exchange 2013 及更高版本)和 MetaCache 数据库(Exchange 2019)。

我们将使用 D:\ 驱动器作为存储 SMTP 传输数据库和 SMTP 日志文件的驱动器,将 Z:\ 驱动器分配给 DVD 驱动器。邮箱数据库将存储在配置为挂载点的磁盘上,位于C:\ExchDbs\Disk1、C:\ExchDbs\Disk2、C:\ExchDbs\Disk3 等位置。重点将放在Windows 2019 Server Core 上,因为它比Windows 2019 Desktop Experience 更复杂。


Disk Configuration

要将驱动器字母 Z: 分配给 DVD 驱动器,请使用以下 PowerShell 命令:

Get-WmiObject -Class Win32_volume -Filter "DriveType=5" | Select `
-First 1 | Set-WmiInstance -Arguments @{DriveLetter="Z:"}

要查看 Windows 2019 服务器上可用的磁盘,您可以使用 PowerShell 中的 Get-Disk 命令。

Get-Disk

Pro Exchange 2019 Administrator Part 1_服务器_13

磁盘号0是引导和系统磁盘;磁盘号1将用于存储SMTP队列数据库,该数据库将位于驱动器D:\ 。

要使此磁盘联机并初始化,请使用以下PowerShell命令:

Get-Disk -DiskNumber 1 | Initialize-Disk -PartititionStyle GPT
New-Partition -DiskNumber 1 -UseMaximumSize
Add-PartitionAccessPath -DiskNumber 1 -PartitionNumber 2 -AccessPath D:
Get-Partition -DiskNumber 1 -PartitionNumber 2 | Format-Volume `
-FileSystem NTFS -NewFileSystemLabel "Queue Database" `
-AllocationUnitSize 65536 -Confirm:$false

Pro Exchange 2019 Administrator Part 1_服务器_14

对于格式化将在挂载点中保存邮箱数据库的磁盘,过程类似。

在PowerShell中使用Add-PartitionAccessPath命令时,-AccessPath选项的值将是“C:\ExchDbs\Disk1”,而不是驱动器号。要运行的PowerShell命令集为:

MD C:\ExchDbs\Disk1
Get-Disk -Number 2 | Initialize-Disk -PartititionStyle GPT
New-Partition -DiskNumber 2 -UseMaximumSize
Add-PartitionAccessPath -DiskNumber 2 -PartitionNumber 2 -AccessPath "C:\ExchDbs\Disk1"
Get-Partition -Disknumber 2 -PartitionNumber 2 | Format-Volume `
-FileSystem NTFS -NewFileSystemLabel "Disk1" -AllocationUnitSize 65536 `
-Confirm:$false

注:除了 MD 命令,还可以使用 C:\ExchDbs\Disk1 -ItemType Directory 命令。


Installing Prerequisite Software

在Windows 2019上安装Exchange 2019邮箱服务器时,需要必备的Windows功能以及其他运行时:

• Windows Server Roles and Features and the Active Directory Remote Server Administration Tools (RSAT-ADDS)

• .NET Framework 4.8 (Exchange 2019 CU4 and higher, earlier versions of Exchange server 2019 were running on .NET Framework 4.7.2)

• Visual C++ Redistributable Package for Visual Studio 2012

• Visual C++ Redistributable Package for Visual Studio 2013

• Microsoft Unified Communications Managed API 4.0 Core Runtime

注:在 Windows Server 2016 上安装 Exchange Server 2016 时,必须安装相同的先决条件软件。在开始安装之前,Windows 服务器应完全打补丁。

安装任何必备软件的最简单方法是使用PowerShell。使用管理帐户访问Windows 2019服务器,在具有提升权限的PowerShell命令窗口中执行以下命令:

# To download the .NET Framework 4.8
New-Item C:\Install -ItemType Directory
Start-BitsTransfer -Source "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" `
-Destination C:\Install
# To download the Visual C++ Redistributable Package for Visual Studio 2012
 New-Item C:\Install\VS2012 -ItemType Directory
Start-BitsTransfer -Source "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe" `
-Destination C:\Install\2012
# To download the Visual C++ Redistributable Package for Visual Studio 2013
New-Item C:\Install\VS2013 -ItemType Directory
Start-BitsTransfer -Source "https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe" `
-Destination C:\Install\2013
# To download the Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
Start-BitsTransfer -Source "http://download.microsoft.com/download/2/C/4/2C47A5C1-A1F3-4843-B9FE-84C0032C61EC/UcmaRuntimeSetup.exe" `
-Destination C:\Install

Windows 2019 桌面体验版仅需要下载 Microsoft 统一通信管理 API 4.0、Core Runtime 64 位版本。对于 Windows 2019 服务器核心版本(Windows 2019 Server Core),在 Exchange 2019 安装介质中的“\UCMARedist”文件夹中提供 Microsoft Unified Communications Managed API 4.0的特殊服务器核心版本(Server Core version)。

因此它们需要存储在单独的目录中或在下载后重命名。要安装先决条件软件,请使用以下 PowerShell 命令:

Start-Process -FilePath "C:\Install\ndp48-x86-x64-allos-enu.exe" -ArgumentList "/q" -Wait
Start-Process -FilePath "C:\Install\2012\vcredist_x64.exe" -ArgumentList "/q" -Wait
Start-Process -FilePath "C:\Install\2013\vcredist_x64.exe" -ArgumentList "/q" -Wait

For Windows Server 2019 Desktop Experience:

Start-Process -FilePath "C:\Install\UcmaRuntimeSetup.exe" -ArgumentList "/q" -Wait

For Windows Server 2019 Server Core:

Start-Process -FilePath "Z:\UcmaRedist\setup.exe" -ArgumentList "/q" -Wait

注:安装 .net Framework 4.8 无人值守将自动重新启动服务器。

当安装先决软件时,可以安装先决的 Windows Server 角色和功能。必须使用PowerShell 进行安装。

要在 Windows 2019 Server Core上安装 Windows Server 角色和功能,请使用以下命令:

Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-PowerShell, WAS-Process-Model, Web-Asp-Net45, `
Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Metabase, Web-Mgmt-Service, `
Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, RSAT-ADDS, Telnet-Client

在 Windows 2019 桌面体验上安装 Windows Server 角色和功能,请使用以下命令:

Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, `
WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, `
Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, `
Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS, Telnet-Cli

注: Telnet-Client 不是任何版本的 exchange 的先决条件,但它是一个非常有用的工具,用于基本的 exchange 故障排除,当 Exchange 服务器被配置为数据库可用性组的成员时,Failover-Clustering 功能也应包含在两个命令中。


Installing the Exchange 2019 Mailbox Server

当安装先决条件软件和服务器角色和功能,并且 Windows 服务器更新补丁完全修补后,可以安装 Exchange 2019 邮箱服务器。

在安装 Exchange 之前,需要准备好 Active Directory。这包括三个不同的连续步骤:

• Prepare the Schema partition

• Prepare the Configuration partition

• Prepare the Domain partition


Prepare the Schema partition

为 Exchange 2019 准备 Schema partition,请使用属于 Schema Admin 安全组的帐户登录。然后,打开具有提升权限的命令提示符,并输入以下命令:

Z:\Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

Pro Exchange 2019 Administrator Part 1_Server_15

你怎么知道这行得通?首先,如果你在控制台上没有看到任何错误消息,就可以确定它正确地工作了。

你还可以在活动目录模式中检查 Exchange 版本,这在升级 Exchange 部署时也很重要。打开 ADSI Edit 并导航到ms-Exch-Schema-Version-PT 。打开它的属性并检查 rangeUpper 属性。对于 Exchange 2019 C U2 及以上版本,它应该有一个值为 17001;对于 Exchange 2019 的 CU8 和 CU9,它应该有一个值为 17002 。

Pro Exchange 2019 Administrator Part 1_服务器_16

也可以使用以下命令通过 PowerShell 检查 Schema version:

$Root = [ADSI]"LDAP://RootDSE"
([ADSI]("LDAP://CN=ms-Exch-Schema-Version-Pt," + $Root.schemaNamingContext)).rangeUpper

这将返回 rangeUpper 属性的值。下表列出了所有Exchange 2019版本的Active Directory的Schema、Configuration和Domain分区版本。

Pro Exchange 2019 Administrator Part 1_Server_17

要查看所有版本的最新列表,请在 http://bit.ly/ExADVersions 上查看微软文档中的Active Directory 版本信息。


Prepare the Configuration Partition

当为 Exchange 准备 Active Directory Schema 分区并且所有更改在整个森林中复制完毕后,您可以继续准备 Active Directory Configuration 分区。该分区包含有关整个 Exchange 配置的信息。

配置分区可以使用以下命令准备,在提升的命令提示符中启动,并使用 Enterprise Admins 安全组中的帐户:

Setup.exe /PrepareAD /OrganizationName:<Name> /IAcceptExchangeServerLicenseTerms

如果您的组织中没有安装过Exchange ,则必须运行此命令,包括 /OrganizationName 选项。这将在 Active Directory 配置分区中创建 Exchange 组织,并将保存有关Exchange 部署的所有信息。

您可以使用ADSI Edit检查配置分区的版本。ADSI Edit中,打开配置分区,导航到 CN=Microsoft Exchange, CN=Services, CN=Configuration, DC=Domain, DC=Com 并检查objectVersion属性的值。

Pro Exchange 2019 Administrator Part 1_服务器_18

也可以使用以下命令通过 PowerShell 检查:

$Root = [ADSI]"LDAP://RootDSE"
([ADSI]("LDAP://CN=<OrganizationName>,CN=Microsoft Exchange,CN=Services," + $Root.configurationNamingContext)).objectVersion

此步骤还在Active Directory根域中创建一个名为CN=Microsoft Exchange System Objects的隐藏容器。在此阶段,它只包含一个名为 Exchange Install Domain servers 的安全组和另一个名为 Monitoring Mailboxes 的容器,该容器仍然是空的。只有在Active Directory用户和计算机中选择“查看高级功能”时,此容器才可见。

在Active Directory域的CN=Users容器中,有9个帐户将在安装第一个Exchange服务器时用作系统邮箱。

为Exchange准备配置分区时,在CN=Services,CN=Configuration, DC=<your domain>,DC=Com下会创建一个名为CN=Microsoft Exchange的Exchange容器,如果以前版本的Exchange已经提供了该功能,则会使用最新信息进行更新。

CN=Microsoft Exchange容器包含多个其他特定于Exchange的容器和对象:

• CN=Address Lists Container

• CN=AddressBook Mailbox Policies

• CN=Addressing • CN=Administrative Groups

• CN=Approval Applications

• CN=Auth Configuration

• CN=Availability Configuration

• CN=Client Access

• CN=Connections

• CN=ELC Folders Container

• CN=ELC Mailbox Policies

• CN=ExchangeAssistance

• CN=Federation

• CN=Federation Trusts

• CN=Global Settings

• CN=Hybrid Configuration

• CN=Mobile Mailbox Policies

• CN=Mobile Mailbox Settings

• CN=Monitoring Settings

• CN=OWA Mailbox Policies

• CN=Provisioning Policy Container

• CN=Push Notification Settings

• CN=RBAC

• CN=Recipient Policies

• CN=Remote Accounts Policies Container

• CN=Retention Policies Container

• CN=Retention Policy Tag Container

• CN=ServiceEndpoints

• CN=System Policies

• CN=Team Mailbox Provisioning Policies

• CN=Transport Settings

• CN=Workload Management Settings

• CN=UM AutoAttendant Container

• CN=UM DialPlan Container

• CN=UM IPGateway Container

• CN=UM Mailbox Policies

可以使用ADSI Edit查看这些容器,最后四个UM容器仅适用于Exchange 2013和Exchange 2016,在为Exchange 2019准备Active Directory时不会创建。

CN=Transport Settings容器包含有关Exchange传输的信息,这些信息必须在整个林中可用:

• CN=Accepted Domains

• CN=ControlPoint Config

• CN=DNS Customization

• CN=Interceptor Rules

• CN=Malware Filter

• CN=Message Classifications

• CN=Message Hygiene

• CN=Rules

• CN=MicrosoftExchange329e71ec88ae4615bbc36ab6ce41109e

准备配置分区时,将在Active Directory林的根域中创建一个名为Microsoft Exchange Security Groups 的组织单位(如果不存在),并创建以下通用安全组(Universal Security Groups):

• Compliance Management

• Delegated Setup

• Discovery Management

• Exchange Servers

• Exchange Trusted Subsystem

• Exchange Windows Permissions

• ExchangeLegacyInterop

• Help Desk

• Hygiene Management

• Managed Availability Servers

• Organization Management

• Public Folder Management

• Recipient Management

• Records Management

• Server Management

• View-Only Organization Management


Prepare the Domain Partition

在安装 Exchange 2019 之前的最后一步准备工作是准备活动目录域分区,该命令应在 Active Directory 中的每个域中运行,该域包含启用邮件的收件人。使用 /PrepareAllDomains 选项准备所有域。

Setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms

您可以通过在ADSI编辑器中导航到Active Directory中的CN=Microsoft Exchange System Objects 容器来检查 Active Directory 域分区的版本,并检索 objectVersion 属性。

Pro Exchange 2019 Administrator Part 1_服务器_19

也可以使用以下命令通过 PowerShell 检查:

$RootDSE= ([ADSI]"").distinguishedName
([ADSI]("LDAP://CN=Microsoft Exchange System Objects,$RootDSE")).objectVersion


Exchange 2019 Unattended Setup

当使用Windows 2019 Desktop Experience 时,可以使用GUI安装Exchange 2019。当使用Windows 2019 Server Core 时,这当然是不可能的,并且总是使用无人值守的设置。

安装应用程序接受几个参数:

• /Mode — 定义安装所使用的操作。选项为 install, remove, upgrade

• /Roles — 定义将要安装的Exchange服务器角色。选项包括 Mailbox 和EdgeTransport 。与Exchange 2013不同,Exchange 2016 和 Exchange 2019 仅支持 multi-role,不再接受ClientAccess选项。

• /MdbName — 将在此服务器上创建的第一个邮件数据库的名称。

• /DbFilePath — 邮件箱数据库文件的路径和名称。

• /LogFolderPath — 邮件数据库事务日志文件的位置。

• /InstallWindowsComponents — 安装Exchange服务器需要的Windows组件。这些组件也可以作为先决条件软件安装的一部分进行安装。

• /IAcceptExchangeServerLicenseTerms — 表示您同意微软的许可条款。

要在不进行干预的情况下安装 Exchange 2019 邮箱服务器,请从命令提示符运行以下命令:

Setup.exe /Mode:Install /Roles:Mailbox /MdbName:"MDB01" /DbFilePath:"C:\
ExchDbs\Disk1\MDB01.edb" /LogFolderPath:"C:\ExchDbs\Disk1\LogFiles" /
InstallWindowsComponents /IAcceptExchangeServerLicenseTerms

Pro Exchange 2019 Administrator Part 1_Server_20

当服务器重新启动时,可以配置 Exchange server 2019 服务器了。


Exchange 2019 Graphical Setup

与使用命令行进行无人值守的安装不同,还可以使用 GUI 版本的 Exchange 安装程序。GUI设置会自动准备Active Directory partition ,您可以通过双击安装介质上的 setup.exe 启动 GUI 设置,也可以从命令行启动 setup.exe,不带任何参数。显示的第一个窗口是检查更新窗口。您可以在线检查任何更新,然后单击“下一步”继续。

Pro Exchange 2019 Administrator Part 1_邮件_21

跟随向导,接受许可协议,为使用报告选择推荐的设置,在服务器角色选择窗口时,选择必须安装的服务器角色。

服务器角色是互斥的。当选择邮箱服务器时,边缘传输角色会自动变灰。此外,当选择邮箱角色时,管理工具会自动包括在内。在先决条件服务器角色和功能没有预先安装时,请检查“自动安装Windows服务器角色和功能”复选框。即使服务器角色和功能已经安装,以防某个服务器角色或功能意外没有安装。

Pro Exchange 2019 Administrator Part 1_邮件_22

Exchange 的默认安装位置是 C:\Program Files\Microsoft\Exchange Server\V15,但也可以使用其他位置。

注:Exchange 2019 仍然使用 v15 文件夹,与 exchange 2016 和 exchange 2013 相同。这是因为 exchange 2019 主要版本号仍然是 15(确切地说是 15.2.x),而exchange 2016 是 15.1.x,exchange 2013 是 15.0.x。

Exchange 2013 及更高版本带有内置的反恶意软件扫描功能,该功能由 Exchange 服务器上的传输代理提供。反恶意软件会扫描传输中的邮件,但不扫描任何邮件数据库或文件系统。请注意,进行反恶意软件扫描时,Exchange 服务器必须能够下载签名文件。这些文件可以从 Internet 或本地文件共享下载。禁用恶意软件扫描的设置自动设置为否。

Pro Exchange 2019 Administrator Part 1_邮件_23

在向导结束时,安装程序将执行先决条件检查,以查看是否满足安装 Exchange 2019 的所有先决条件。有时,先决条件检查将生成警告消息。如果没有生成错误,请单击安装以开始安装Exchange。Exchange的安装由14个不同的步骤组成,从准备Active Directory开始,如图所示。

Pro Exchange 2019 Administrator Part 1_Server_24

安装完成后,建议先重新启动服务器,然后继续进行配置。当服务器重新启动时,可以配置 Exchange server 2019 服务器。