删除组织中最后一个 Exchange 混合服务器

Jacki

您已将所有邮箱从 Exchange Server 迁移到 Exchange Online。此外,Exchange Server 上不再设置 SMTP 中继。您最终想要删除 Exchange Server,但保留 Active Directory 作为您的权限,因为您并没有完全转向云。在本文中,您将了解如何删除组织中最后一个 Exchange 混合服务器。

开始之前

如果您有一台或多台仅用于收件人管理的 Exchange 服务器(通常称为最后的 Exchange 服务器 (LES)),您现在可以在加入域的计算机上安装更新的工具并关闭最后的 Exchange 服务器。

假设您的组织中有多个 Exchange Server,请确保在阅读本文之前停用所有其他 Exchange Server,并仅保留最后一台 Exchange Server。

重要的:确保您已将所有邮箱迁移到云,并且 Exchange 混合服务器上不再设置 SMTP 中继。

删除最后一个 Exchange 混合服务器即表示您确认以下内容:

  • 您已将所有邮箱和公用文件夹迁移到 Exchange Online(无本地 Exchange 收件人)。
  • 您可以使用 AD 进行收件人管理和云同步,或使用 Microsoft Entra Connect 进行同步。
  • 您不使用或不需要本地 Exchange 管理中心或 Exchange 基于角色的访问控制 (RBAC)。
  • 您只习惯使用 Windows PowerShell 进行收件人管理。
  • 您不需要审核或记录收件人管理活动。
  • 您仅运行一台本地 Exchange 服务器,并且仅用于收件人管理。
  • 您希望在不运行任何 Exchange 服务器的情况下管理收件人。

在此示例中,Exchange Server EX03-2019 是组织中的最后一台服务器。

运行设置-ADServerSettingscmdlet,包括-查看整个森林范围。这将让您查看整个森林中的物体。

Set-AdServerSettings -ViewEntireForest $true

验证本地 Exchange Server 中是否没有可用的邮箱。

Get-Mailbox

验证是否已配置 Exchange Online 租户共存域。

Get-RemoteDomain Hybrid* | Format-List Name, DomainName, TargetDeliveryDomain

出现输出。

Name                 : Hybrid Domain - exoip365.mail.onmicrosoft.com
DomainName           : exoip365.mail.onmicrosoft.com
TargetDeliveryDomain : True

Name                 : Hybrid Domain - exoip365.onmicrosoft.com
DomainName           : exoip365.onmicrosoft.com
TargetDeliveryDomain : False

如果共存域未添加为远程域,您可以使用 New-RemoteDomain 添加它。例如:

New-RemoteDomain -Name 'Hybrid Domain - exoip365.mail.onmicrosoft.com' -DomainName 'exoip365.mail.onmicrosoft.com'

如果未将其设置为目标传递域,您可以使用 Set-RemoteDomain 进行设置。例如:

Set-RemoteDomain -TargetDeliveryDomain: $true -Identity 'Hybrid Domain - exoip365.mail.onmicrosoft.com'

在关闭 Exchange 混合服务器之前,请按照以下步骤在管理服务器上安装 Exchange 管理工具:

  1. 安装.NET框架4.8(需要重新启动)。
  2. 安装适用于 Visual Studio 2012 的 Visual C++ 可再发行组件
  3. 使用 PowerShell 安装 Windows 远程服务器管理工​​具。
Install-WindowsFeature rsat-adds

出现输出。

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Remote Server Administration Tools, Activ...
  1. 下载Exchange Server 2019 CU12 (2022H1)或更新的。

笔记:始终下载最新的 Exchange Server CU 版本。

  1. 在加入域的计算机或服务器上安装 Exchange Server ISO。

笔记:这些管理工具可用于运行 Exchange Server 2013、2016 或 2019 的任何环境。

  1. 双击已安装的 Exchange Server 驱动器以启动向导。
  1. 选择现在不要检查更新
  2. 点击下一个
  1. 安装程序复制安装 Exchange Server 管理工具所需的文件。
  1. 点击下一个
  1. 选择许可协议
  2. 点击下一个
  1. 选择使用推荐设置
  2. 点击下一个
  1. 选择管理工具
  2. 选择自动安装安装 Exchange Server 所需的 Windows Server 角色和功能
  3. 点击下一个
  1. 点击下一个
  1. 等待检查以验证安装是否可以继续。
  1. 点击安装
  1. 正在安装 Exchange 管理工具。
  1. 点击结束
  1. 重新启动管理服务器。
  2. 验证 Exchange 管理工具是否出现在开始菜单中。

步骤 3. 创建收件人管理 EMT 安全组

登录到已安装管理工具的计算机域管理员并打开 Windows PowerShell。

  1. 启动 Windows PowerShell。
  2. 加载收件人管理管理单元。
Add-PSSnapin *RecipientManagement

笔记:每次要管理收件人时,都需要打开PowerShell并加载收件人管理。

  1. 将目录更改为 Exchange Server 脚本文件夹。
cd "C:Program FilesMicrosoftExchange ServerV15Scripts"
  1. 跑步添加 PermissionForEMT.ps1来自 Exchange Server 脚本文件夹。
.Add-PermissionForEMT.ps1

笔记:该脚本创建一个名为“收件人管理 EMT”的安全组。该组的成员具有收件人管理权限。所有没有域管理员权限、需要执行收件人管理的管理员都应添加到此安全组。

  1. 在输出中验证配置是否成功完成。
  1. 开始Active Directory 用户和计算机
  2. 展开领域并导航至用户
  3. 验证收件人管理 EMT出现安全组。
  1. 如果用户没有域管理员权限,请将其添加到您将在其下登录的组中。

笔记:如果您刚刚向该组添加了管理员,则该用户必须注销并返回管理服务器才能使新组成员身份生效。

测试所有收件人管理 cmdlet 并验证您是否在下一步中看到预期结果。

步骤 4. 测试收件人管理

暂时关闭 Exchange 混合服务器以确保所有收件人命令按预期工作。

通过更新的 Exchange 管理工具,域管理员和收件人管理 EMT 组(在上一步中创建)的成员可以使用 Windows PowerShell 来运行以下 cmdlet,而无需运行 Exchange 服务器:

  • 设置邮件用户、获取邮件用户、新建邮件用户、删除邮件用户、禁用邮件用户和启用邮件用户。
  • Set-MailContact、Get-MailContact、New-MailContact、Remove-MailContact、Disable-MailContact 和 Enable-MailContact。
  • 设置远程邮箱、获取远程邮箱、新建远程邮箱、删除远程邮箱、禁用远程邮箱和启用远程邮箱。
  • Set-DistributionGroup、Get-DistributionGroup、New-DistributionGroup、Remove-DistributionGroup、Disable-DistributionGroup 和 Enable-DistributionGroup(不包括 Upgrade-DistributionGroup)。
  • Get-DistributionGroupMember、Add-DistributionGroupMember、Remove-DistributionGroupMember 和 Update-DistributionGroupMember。
  • Set-EmailAddressPolicy、Get-EmailAddressPolicy、New-EmailAddressPolicy、Remove-EmailAddressPolicy 和 Update-EmailAddressPolicy。
  • 设置用户和获取用户。

在管理服务器上以管理员身份运行 PowerShell 并加载收件人管理管理单元。

Add-PSSnapin *RecipientManagement

运行以下命令并确认您得到结果。

Get-RemoteMailbox

测试所有其他收件人 cmdlet 并确认它们正常工作。

笔记:启动 Exchange 命令行管理程序不会连接到 Exchange Server,因为它已关闭,这是预期行为。在运行 cmdlet 之前,必须将收件人管理管理单元加载到 PowerShell 中。

步骤 5. 删除 Exchange 混合服务器配置

如果您打算永久关闭最后一个 Exchange Server,我们建议您使用以下步骤来清理并改善环境的安全状况。

建议阅读:在本地 Exchange 中配置混合现代身份验证

  1. 打开最后一个 Exchange 服务器。
  2. 启动 Exchange 命令行管理程序。
  3. 运行以下命令并确保其未设置为远程。如果它设置为远程并且您想要继续访问公用文件夹,则需要将它们迁移到 Exchange Online。
Get-OrganizationConfig | Format-List PublicFoldersEnabled
  1. 将 MX 和自动发现 DNS 记录指向 Exchange Online,而不是您的本地电子邮件组织。确保更新内部和外部 DNS。
  2. 通过清除条目来删除 Exchange 服务器上的自动发现服务连接点 (SCP)。这确保它不会返回 SCP。
Get-ClientAccessService | Set-ClientAccessService -AutoDiscoverServiceInternalUri $null
  1. 从 Active Directory 中删除混合配置对象,以防止将来重新创建混合配置。
Remove-HybridConfiguration -Confirm:$false
  1. 验证混合配置是否已成功删除。输出将为空。
Get-HybridConfiguration
  1. 从本地禁用 OAuth 配置(如果存在)。
Get-IntraOrganizationConnector | Set-IntraOrganizationConnector -Enabled $false
  1. 如果您禁用了 OAuth,请验证是否已在本地禁用它。已启用列必须显示该值错误的
Get-IntraOrganizationConnector | Format-Table Name,Enabled,TargetAddressDomains
  1. 以管理员身份运行 Windows PowerShell 并连接到 Exchange Online PowerShell。
Connect-ExchangeOnline
  1. 从 Microsoft 365 禁用 OAuth 配置(如果存在)。
Get-IntraOrganizationConnector | Set-IntraOrganizationConnector -Enabled $false
  1. 如果禁用了 OAuth,请验证是否已从 Microsoft 365 禁用它。已启用列必须显示该值错误的
Get-IntraOrganizationConnector | Format-Table Name,Enabled,TargetAddressDomains
  1. 登录到Microsoft 365 Exchange 管理中心
  2. 扩张邮件流程并点击连接器
  3. 删除名为的连接器入境自<unique identifier>出站至<unique identifier>
  4. 扩张组织并点击分享
  5. 删除名为的组织O365 到本地 –<unique identifier>
  6. 如果存在联合信任,请将其删除。
Remove-FederationTrust "Microsoft Federation Gateway"
  1. 查找并删除联合证书(如果存在)。
$fedThumbprint = (Get-ExchangeCertificate | Where-Object {$_.Subject -eq "CN=Federation"}).Thumbprint
Remove-ExchangeCertificate -Thumbprint $fedThumbprint
  1. 删除为 OAuth 创建的服务主体凭据。为此,您需要确定哪个 KeyId 与 Exchange 命令行管理程序中 OAuth 证书的密钥值匹配。
$thumbprint = (Get-AuthConfig).CurrentCertificateThumbprint
$oAuthCert = (dir Cert:LocalMachineMy) | where {$_.Thumbprint -match $thumbprint}
$certType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert
$certBytes = $oAuthCert.Export($certType)
$credValue = [System.Convert]::ToBase64String($certBytes)
  1. 以管理员身份运行 Windows PowerShell 并连接到 Microsoft Graph PowerShell。
Connect-MgGraph -Scopes "Application.Read.All"
  1. 找到与上面找到的 $credValue 相同的 KeyId。使用 Microsoft Graph PowerShell 以租户管理员身份运行以下命令。
$ServiceName = "00000002-0000-0ff1-ce00-000000000000"
$p = Get-MgServicePrincipalByAppId -AppId $ServiceName
$keyId = (Get-MgServicePrincipal -ServicePrincipalId $p.Id).KeyCredentials $true | Where-Object {$_.Value -eq $credValue}).KeyId
  1. 删除服务主体凭据。
Import-Module Microsoft.Graph.Applications
$params = @{
   KeyId = $keyId
}
Remove-MgServicePrincipalKey -ServicePrincipalId $p.Id -BodyParameter $params
  1. 如果您的环境具有现代混合配置,请卸载混合代理。否则,请跳过此步骤。

在安装混合代理的计算机中,打开 Exchange Management Shell 并将目录更改为脚本 C:Program FilesMicrosoft Hybrid ServiceHybridManagement.psm1 的位置,然后导入混合代理 PowerShell 模块。

cd "C:Program FilesMicrosoft Hybrid Service"
Import-Module .HybridManagement.psm1

要删除应用程序,需要 AppId。在 Exchange Online PowerShell 中使用以下任意 cmdlet 来查找 AppId。

Get-OrganizationRelationship ((Get-OnPremisesOrganization).OrganizationRelationship) | Select-Object TargetSharingEpr

复制 AppId 并将其粘贴到以下命令中以删除该应用程序。

Remove-HybridApplication -AppId "163e4562-n126-15c8-a482-422214173012" -Credential (Get-Credential)

通过从运行安装的同一计算机上运行混合配置向导来卸载混合代理,然后选择经典连接。选择经典连接将从计算机和 Entra 卸载并取消注册混合代理。

  1. 关闭最后一个 Exchange 服务器。

步骤 6. Active Directory 清理

如果您打算不再运行本地 Exchange 服务器,我们建议您通过删除不必要的 Exchange 对象来清理 Active Directory。

重要的:此步骤无法撤消。仅当您不想再次运行 Exchange Server 时才继续。

AD 清理可以通过运行清理ActiveDirectoryEMT.ps1管理工具附带的脚本。该脚本会删除系统邮箱、不必要的 Exchange 容器、域和配置分区上的 Exchange 安全组的权限以及 Exchange 安全组。您需要使用域管理员凭据运行此脚本。

在管理服务器上打开PowerShell并转到该目录。

cd $env:ExchangeInstallPathScripts

运行下面的命令。

.CleanupActiveDirectoryEMT.ps1

出现输出。

Removing system mailboxes
Removing un-nesessary Exchange containers in Configuration partition
Removing permissions for Exchange Security Groups on DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=AdminSDHolder,CN=System,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=Configuration,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=Recipient Policies,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=exoip,DC=local
Removing permissions for Exchange Security Groups on CN=Sites,CN=Configuration,DC=exoip,DC=local
Removing Exchange Security Groups container
Removing Exchange System Objects container
Cleanup script completed successfully

您现在可以从 Active Directory 用户和计算机中删除 Exchange 混合 AD 计算机对象。

重要的:不要卸载 Exchange Server!相反,请删除 AD 计算机对象。

每次发布最新的 Exchange Server CU 和 Exchange Server SU 时,您都必须使管理工具保持最新。

Exchange 服务器累积更新

要在管理服务器上安装累积更新,请以管理员身份运行命令提示符。

执行PrepareAD。

E:Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF

升级管理工具角色。

E:Setup.exe /m:Upgrade /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF

如果您之前在环境中执行过 .CleanupActiveDirectoryEMT.ps1,请清理 Active Directory EMT。您必须运行它,因为 /PrepareAD 重新创建了 CleanupActiveDirectoryEMT.ps1 删除的一些对象。

重要的:CleanupActiveDirectoryEMT.ps1 所做的更改无法撤消。仅在没有可用 Exchange 服务器的组织中执行此操作非常重要。

在管理服务器上打开PowerShell并转到该目录。

cd $env:ExchangeInstallPathScripts

运行下面的命令。

.CleanupActiveDirectoryEMT.ps1

Exchange 服务器安全更新

要在管理服务器上安装 Exchange Server 安全更新,请下载安全更新包并运行它以将管理工具角色更新到较新的 SU。无需采取特殊行动。

删除最后一个 Exchange 混合服务器常见问题解答

Exchange Server 2019 管理工具有哪些系统要求?

Exchange 管理工具是轻量级安装,可以安装在任何加入域的 Windows 计算机上。这可以是加入域的工作站。

为什么我们无法卸载最后一个 Exchange 服务器?

卸载最后一个 Exchange Server 将导致各种配置更改,包括从 Active Directory 中删除 Exchange 组织容器,这将使管理工具包无法管理 Exchange 属性。我们建议关闭服务器,如果您愿意,可以将其重新用于其他用途。

如果我们运行 CleanupActiveDirectoryEMT.ps1,是否可以再次安装 Exchange 服务器?

是的。 CleanupActiveDirectoryEMT.ps1 会删除安全组、Exchange 容器和系统邮箱,以便攻击者在发生攻击时不会滥用这些内容。如果稍后需要 Exchange 服务器,则需要准备 Active Directory,然后安装 Exchange Server 2019。您将无法安装旧版本的 Exchange(仅支持添加 Exchange Server 2019)。

我们从未有过 Exchange Server,我们所有的用户都在 Exchange Online 中。我们使用 Active Directory 来配置用户。新的 Exchange Server 2019 管理工具包与我们相关吗?如果是,是否需要安装Exchange服务器才能支持?

此方案支持更新的 Exchange 管理工具,您无需安装 Exchange 服务器即可使用它们。如果您尚未扩展 Active Directory 林,则需要扩展 Active Directory 架构,然后可以在加入域的计算机上安装管理工具。

关闭最后一台 Exchange 服务器是否会产生任何长期问题?

如果您将来不打算使用 Exchange 服务器,则可以关闭并重新格式化最后一台服务器,然后重新利用或回收该计算机。如果您不确定,可以将服务器存档。只是不要卸载 Exchange 服务器。

如果您有一个带有子域的域,其中 Exchange 安装在根域和子域中,并且这些是具有 2 个不同租户的混合配置,会发生什么情况?

这取决于工作站和连接的域。 Exchange 管理工具可用于这两个域中的收件人管理。

我们很久以前就删除(卸载)了最后一个 Exchange 服务器。如果我们使用 Azure AD Connect,我们现在可以安装更新的 Exchange Server 2019 管理工具来帮助我们管理收件人吗?

是的。只需准备 Active Directory 并在加入域的计算机上安装 Exchange 2019 Server 管理工具即可。

当我们安装新的Exchange Server 2019管理工具包时,我们是否应该立即删除最后一个Exchange服务器?

建议关闭最后一台 Exchange 服务器并确保新的管理工具能够为您工作。没有理由急于使用删除脚本删除最后一个服务器。一旦确定不再需要该服务器,您可以使用 CleanupActiveDirectoryEMT.ps1 脚本清理 Active Directory。

我们的组织从未安装任何 Exchange Server 2019 服务器。我们可以使用此解决方案来管理 Exchange 收件人吗?我们需要先安装 Exchange 2019 Server 才能执行此操作吗?

Exchange 2019 管理工具可以安装在当前拥有 Exchange Server 2013 或更高版本的任何组织中。您无需运行 Exchange Server 2019 即可使用管理工具。只需为 Exchange Server 2019 准备 Active Directory(使用 2022 H1 Exchange Server 2019 CU 或更高版本),然后在加入域的计算机上安装管理工具。

我们的组织当前使用最后一台 Exchange 服务器进行用户管理,但也用于 SMTP 中继目的。如果我们删除了最后一个 Exchange 服务器,我们应该如何处理 SMTP 中继?

如果最后一个 Exchange 服务器关闭,我们建议您使用 Exchange 边缘传输服务器来帮助您中继 SMTP 电子邮件。

可以用第三方管理工具代替吗?

经常有人问是否可以使用第三方管理工具或ADSIEDIT的问题。答案是您可以使用它们,但它们不受支持。 Exchange 管理工具是删除最后一个 Exchange Server 后唯一可用于管理 Exchange 收件人和对象的受支持工具。如果您决定使用第三方管理工具,您将自行承担风险。第三方管理工具通常可以正常工作,但 Microsoft 不会验证这些工具。

我想在将所有邮箱移至 Exchange Online 后删除本地 Exchange 服务器。但是,我们发现他们将 Exchange 用于其他目的,例如用于应用程序的简单邮件传输协议 (SMTP) 中继或用于访问公共文件夹。

如果您需要本地 Exchange 服务器来满足组织的当前需求,则删除本地服务器可能不符合您的最佳利益。

如果我使用 Microsoft Entra Cloud Sync 或 Microsoft Entra Connect Sync 与 Exchange Online,是否仍然需要本地 Exchange 服务器?

如果您部署了 Microsoft Entra Cloud Sync 或 Microsoft Entra Connect Sync 并且正在使用 Exchange Online,则应安装本地 Exchange 服务器或安装 Exchange 管理工具以用于用户管理。

我们有 Microsoft Entra Connect Cloud Sync 或 Microsoft Entra Connect Sync 以及 Exchange Online,通过我们的本地 AD 设置。我们需要安装 Exchange 管理工具吗?

是的。当为租户启用目录同步并且从本地同步用户时,您无法从 Exchange Online 管理大多数属性。相反,您必须从本地管理这些属性。

如果组织中不再运行 Exchange 服务器,我们是否需要将管理工具更新到较新的累积更新 (CU) 或安全更新 (SU)?

是的。

结论

您了解了如何删除组织中最后一台 Exchange 混合服务器。首先,检查所有邮箱是否已迁移到 Exchange Online,并且本地 Exchange Server 上是否未设置 SMTP 中继。

如果您确信团队可以使用 PowerShell 管理收件人并且不希望组织中运行 Exchange Server,则可以安全地将其删除。如果您希望保留一台 Exchange 混合服务器用于 GUI 管理目的,请保持一台运行。

请记住,每次发布最新的 CU/SU 时,您都必须使 Exchange 管理工具保持最新。

您喜欢这篇文章吗?您可能还喜欢如何配置 Microsoft 365 域安全。不要忘记关注我们并分享这篇文章。