修复 Exchange 累积更新和安全更新的安装故障

本文描述了在服务器上验证 Microsoft Exchange Server 累积更新 (CU) 和安全更新 (SU) 安装的方法,列出了安装 CU 和 SU 时可能出现的已知问题,并提供了用于修复问题的解决方案。

解决 CU 或 SU 安装过程中的错误

其他信息

OWA 或 ECP 中的 HTTP 500 错误

问题:

安装更新后,Outlook 网页版 (OWA) 和 Exchange 控制面板 (ECP) 中可能会出现 HTTP 500 错误。 在提供凭据以登录 OWA 或 ECP 后,登录过程可能会失败,并显示以下错误消息:

无法加载文件或程序集 Microsoft.Exchange.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。 系统找不到指定的文件。

解决办法:

从提升的命令提示符重新安装安全更新。

  1. 选择“开始”,然后键入“cmd”。
  2. 在搜索结果中,右键单击“命令提示符”,然后选择“以管理员身份运行”。
  3. 如果出现“用户帐户控制”窗口,请选择打开提升的命令提示符窗口的选项,然后选择“继续”。 如果 UAC 窗口没有出现,请继续下一步。
  4. 键入安全更新的 .msp 文件的完整路径,然后按 Enter 键。
  5. 安装更新后,重启服务器。

有关更多信息,请参阅 OWA 或 ECP 在安装安全更新后停止工作

返回页首

OWA 和 ECP 中的 HTTP 400 错误以及 PowerShell 中的连接失败错误

问题:

安装更新后,Outlook 网页版 (OWA) 和 Exchange 控制面板 (ECP) 中可能会出现 HTTP 400 错误。 在提供凭据以登录 OWA 或 ECP 后,登录过程可能会失败,并显示以下错误消息:

HTTP 400 - 错误请求
无法序列化上下文

同样,当您启动 Exchange 命令行管理程序时,您还会收到以下错误消息:

ErrorCode:-2144108477
TransportMessage:WS-Management 服务无法处理该请求,因为 XML 无效。
ErrorRecord:连接到远程服务器 exchange.contoso.com 失败,并显示以下错误消息: 有关更多信息,请参阅 about_Remote_Troubleshooting 帮助主题:

原因:

如果用户名以美元符号 ($) 结尾,则会发生此问题,例如 admin$

解决办法:

从用户名中删除美元符号 ($),或使用另一个不以美元符号 ($) 结尾的管理帐户。

返回页首

ECP 中缺失图像

问题:

安装 SU 后,OWA 或 ECP 可能不会显示图像。

原因:

如果 SU 未正确安装,则会出现此问题。

解决办法:

通过从管理命令提示符运行更新来卸载并重新安装 .msp 文件。 在安装完成后,重启服务器。

返回页首

EAC 或 OWA 显示空白页

问题:

当你从 Exchange Server 2016 或 Exchange Server 2013 登录到 Exchange 管理中心 (EAC) 或 OWA 时,将显示一个空白页。 如果发生此问题,系统可能会记录事件 ID 15021。

原因:

如果 0.0.0.0:444 上的 SSL 绑定存在以下一个或多个问题,就会发生此问题:

  • 未正确安装绑定。
  • 未向绑定分配证书。
  • 绑定包含的信息不正确。

解决办法:

  1. 在客户端访问服务器 (CAS) 上,打开 Internet 信息服务 (IIS)。

  2. 展开 “网站”,选择 “默认网站”,然后单击 “操作” 窗格上的 “绑定”

  3. “网站绑定” 对话框中,打开以下值的绑定:
    类型https端口443

  4. 检查是否为默认网站指定了有效的 SSL 证书。 如果没有,请指定有效的 SSL 证书,如 Microsoft Exchange,并选择 “确定”

    屏幕截图显示,已选择 Microsoft Exchange 作为默认网站的 SSL 绑定的 SSL 证书。

  5. 在提升权限的 PowerShell 窗口中运行以下命令以重新启动 IIS:

    Restart-Service WAS,W3SVC  
    
  6. 在邮箱服务器上,对 Exchange 后端 站点执行验证步骤 1 到 5。

    显示选择 Microsoft Exchange 作为邮箱服务器上 Exchange 后端站点的 SSL 绑定的 SSL 证书的屏幕截图。

有关更多信息,请参阅本文章

返回页首

无法登录到 OWA 或 EAC

问题:

尝试在 Exchange Server 中登录到 OWA 或 EAC 时,Web 浏览器会冻结,或者会显示已达到重定向限制的消息。 此外,事件查看器中会记录事件 1003。

事件 ID: 1003 来源:MSExchange 前端 HTTPS 代理 发生内部服务器错误。 未处理的例外是:System.NullReferenceException:对象引用未设置为对象实例。 在 Microsoft.Exchange.HttpProxy.FbaModule.ParseCadataCookies(HttpApplication httpApplication)

原因:

此问题之所以发生,是因为 Exchange Server 开放式身份验证 (OAuth) 证书已过期。

解决办法:

按照本文中的步骤解决问题。

返回页首

Exchange 安装后无法访问 EAC 或 OWA

问题:

安装 Exchange Server 2016 或 Exchange Server 2013 时,安装过程可能失败或在某个阶段中断,然后继续并最终成功完成。 但是,尝试访问 EAC 或 OWA 时,你收到以下错误消息:

出现问题

很抱歉,我们现在无法获取该信息。 请稍后重试。 如果问题仍然存在,请与支持人员联系。

原因:

如果 SharedWebConfig.config 文件从以下位置之一丢失,则会出现此问题:

  • C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess
  • C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy

解决办法:

请执行以下操作:

  1. 在发生错误的服务器上,确定 SharedWebConfig.config 文件丢失的位置。

  2. 生成缺失的文件:

    1. 运行 cd %ExchangeInstallPath%\bin,将当前目录更改为 Exchange 安装路径下的 bin 文件夹。

    2. 使用 DependentAssemblyGenerator.exe 工具根据需要生成文件:

      • 如果 C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess 中缺失该文件,请运行以下命令:
      DependentAssemblyGenerator.exe -exchangePath "%ExchangeInstallPath%\bin" -exchangePath "%ExchangeInstallPath%\ClientAccess" -configFile "%ExchangeInstallPath%\ClientAccess\SharedWebConfig.config"
      
      • 如果 C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy 中缺失该文件,请运行以下命令:
      DependentAssemblyGenerator.exe -exchangePath "%ExchangeInstallPath%\bin" -exchangePath "%ExchangeInstallPath%\FrontEnd\HttpProxy" -configFile "%ExchangeInstallPath%\FrontEnd\HttpProxy\SharedWebConfig.config"
      
  3. 重新启动服务器或打开提升权限的 PowerShell 会话并运行以下命令:

    Restart-Service WAS,W3SVC
    

    有关更多信息,请参阅本文章

返回页首

Exchange Server 安装程序未运行

问题:

通过使用 setup.exe 运行无人参与安装以从 PowerShell 或命令提示符升级 Microsoft Exchange Server 2019、Microsoft Exchange Server 2016 或 Microsoft Exchange Server 2013。 安装程序会启动并可能表明它已成功完成。 但是,Exchange 未更新。

安装介质位于 D: 驱动器上,且无人参与安装是通过使用下列命令之一启动的:
setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(从 PowerShell 或命令提示符)启动,而不是
.\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(从 PowerShell)或
D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(从 PowerShell 或命令提示符)。

原因:

在 PowerShell 或命令提示符中运行命令时,会首先检查系统环境变量“Path”中的路径以验证要执行的命令,然后再检查 PowerShell 或命令提示符中的当前路径。 除非满足以下条件,否则将遵循此检查顺序:

  • 在 PowerShell 中执行的命令或程序前面输入 "." 。
  • Tab 键用于在 PowerShell 中执行的命令或程序前面自动添加 "."。
  • 完整路径用于在 PowerShell 或命令提示符中运行 setup.exe(例如“D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”)。

在不满足这些条件的情况下,PowerShell 将找到并执行位于 C:\Program Files\Microsoft\Exchange Server\V15\bin 中的另一个 setup.exe 文件,而不是正确路径中的 setup.exe 文件。

解决办法:

使用“.\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(PowerShell) 或“D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(PowerShell 和命令提示符)运行升级。

有关更多信息,请参阅本文章

返回页首

无法安装升级修补程序

问题:

安装 SU 时可能会看到以下错误消息:

Windows Installer 服务无法安装升级修补程序,因为要升级的程序可能丢失,或者升级修补程序可能会更新程序的其他版本。 验证要升级的程序是否存在于你的计算机上,并且你拥有正确的升级修补程序。

原因:

如果 CU 和 SU 版本不匹配,将出现此错误消息。

解决办法:

要么升级到正确的 CU,要么为预期使用的 CU 下载正确的 SU。

返回页首

由于服务未停止,安装失败

问题:

安装失败,因为服务未正常停止。

解决办法:

在安装 CU 或 SU 之前,使用最佳做法重新启动服务器。 对于你正在运行的防病毒软件,设置适当的排除或考虑在安装期间将其关闭。 在某些情况下,如果服务仍未如预期的那样停止或启动,请执行以下操作。

  1. 重命名 C:\ExchangeSetupLogs 文件夹(例如,ExchangeSetupLogs-OLD)。

  2. 在 services.msc 控制台中将 Exchange 服务的启动类型更改为 “自动”

    注意:仅对安装尝试之前处于活动状态的 Exchange 服务执行此操作。 POP3 和 IMAP4 服务默认停止。 它们仅在有用户需要它们时才有必要运行。

然后再次运行安装程序。

返回页首

SU 安装后服务不启动

问题:

在完成 SU 安装后,Exchange 服务不启动。

解决办法:

检查服务的状态。 如果它们处于 “禁用” 状态,请将其设置为 “自动”,并手动启动它们。

注意:默认情况下,通常会禁用服务 MSExchangeIMAP4、MSExchangeIMAP4BE、MSExchangePOP3 和 MSExchangePOP3BE。 检查位于 C:\ExchangeSetupLogs\ServiceControl.log 的 Exchange 日志,看看在 SU 安装期间哪些服务被禁用。

返回页首

安装日志中安装期间的错误

问题:

在安装过程中,你在安装日志中收到以下错误消息:

安装程序在验证 Active Directory 的状态时遇到问题,或此计算机上未安装邮箱服务器角色。

解决办法:

下载并运行 Exchange 安装日志审阅器脚本 SetupLogReviewer.ps1。 此脚本将检查 ExchangeSetup.log,确定此错误是否为已知问题,并显示你可以采取的能解决此问题的操作。 下载脚本后,将其指向下文所示的 Exchange 安装日志并查看输出。

.\SetupLogReviewer.ps1 -SetupLog C:\ExchangeSetupLogs\ExchangeSetup.log

或者,你可以查看位于 C:\ExchangeSetupLogs\ExchangeSetup.log 中的日志,以查看以下错误:

“安装程序在验证 Active Directory 的状态时遇到问题:尚未创建 Exchange 组织级对象,安装程序无法创建它们,因为本地计算机与架构主机不在同一域和站点中。 在域 <domain_name> 和站点 <Default_First_Site_Name> 中的计算机上使用 /prepareAD 参数运行安装程序,并等待复制完成。”

如果发现此错误,请从与架构主机位于同一域的计算机上运行以下命令。

.\setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

注意:运行命令的用户必须是 企业管理员域管理员架构管理员 组的成员。

要查找架构主机所在的域控制器 (DC),请从 DC 上的管理命令提示符运行以下命令:

netdom query fsmo

返回页首

更新汇总安装期间出错

问题:

在未连接到 Internet 的计算机上安装此更新汇总时,你可能会遇到长时间的安装延迟。 此外,你还可能会收到以下错误消息:

正在创建 .Net 程序集的本机映像。

原因:

此问题是由网络请求连接到以下 URL 引起的:

http://crl.microsoft.com/pki/crl/products/CodeSigPCA.crl

网络请求是指尝试访问每个程序集的证书吊销列表,本机映像生成 (Ngen) 将为这些程序集编译为本机代码。 但是,由于运行 Exchange Server 的服务器未连接到 Internet,因此每个请求必须等待超时才能继续进行该过程。

解决办法:

请执行以下操作:

  1. 在 Internet Explorer 中,选择 “工具” > “Internet 选项”

  2. 选择“高级”选项卡。

  3. “安全” 部分中,清除 “检查发布者的证书是否吊销” 复选框,然后选择 “确定”

    备注

    仅当计算机处于严密控制的环境中时,才能清除此安全选项。

  4. 安装过程完成后,重新选中 “检查发布者的证书是否吊销” 复选框。

返回页首

安装程序失败,并显示“无法启动服务”错误

问题:

CU 安装程序可能会失败,并显示以下错误消息:

无法启动 Microsoft Exchange 服务主机服务

你可能会发现 Microsoft Exchange 服务主机和/或所有其他 Exchange 服务已停止并处于 “禁用” 模式。

解决办法:

请执行以下操作:

  1. 重命名 C:\ExchangeSetupLogs 文件夹(例如,ExchangeSetupLogs-OLD)。

  2. 将 services.msc 控制台中所有 Exchange 服务的启动类型更改为 “自动”

  3. 假设 Exchange CU 介质位于 D: 驱动器上,请以管理员身份打开命令提示符,然后使用以下命令继续安装:

    D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms

返回页首

SU 安装因为现有的 IU 而失败

问题:

在 SU 安装过程中,你可能会看到以下错误消息:

无法继续安装。 安装向导已确定此暂时更新与当前的 Microsoft Exchange Server 2013 累积更新 23 配置不兼容。

解决方案 1:

在应用此 SU 之前卸载以前安装的暂时更新 (IU),因为这些更新是累积的。 你可以在“添加/删除程序”中找到以前的 IU。

解决方案 2:

此错误消息也可能在没有安装 IU 但未连接到 Internet 的服务器上显示。 因此,它不能检查证书吊销列表。 在这种情况下,请执行以下操作:

  1. 在 Internet Explorer 中,选择 “工具” > “Internet 选项”

  2. 选择“高级”选项卡。

  3. “安全” 部分中,清除 “检查发布者的证书是否吊销” 复选框,然后选择 “确定”

    备注

    仅当计算机处于严密控制的环境中时,才能清除此安全选项。

  4. 安装过程完成后,重新选中 “检查发布者的证书是否吊销” 复选框。

返回页首

安装程序安装较旧的 CU 或无法安装语言包

问题:

你正在升级到最新的 CU,但安装程序要么显示它正在服务器上安装现有 CU,要么失败,并显示以下错误消息:

无法打开软件包 'C:\Program Files\Microsoft\Exchange Server\V15\bin\Setup\<package name>。 此安装软件包无法打开。 请验证该软件包是否存在以及你是否可以访问它,或者与应用程序供应商联系以验证这是一个有效的 Windows Installer 软件包。 错误代码为 1619。

原因:

如果从 Windows PowerShell 启动安装并使用 Setup.EXE 命令,则会出现这些问题。

解决办法:

如果 Exchange CU 介质位于 D: 驱动器上,请使用以下任一命令使用 PowerShell 运行升级:“.\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(PowerShell) 或“D:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms”(PowerShell 和命令提示符)

返回页首

上次安装后的重启处于挂起状态

问题:

即使在多次重新启动服务器后,你依然不断收到以下错误消息:

Microsoft Exchange Server 安装程序无法继续,因为上次安装或更新后的重启处于挂起状态。

解决办法:

请按照“上次安装后的重启处于挂起状态”中的信息进行操作,以解决此问题。

如果仍然显示错误消息,请执行以下操作:

  1. 运行 HealthChecker 脚本
  2. 运行 SetupAssist.ps1 脚本。

返回页首

邮件流已停止

问题:

安装 CU 或 SU 后邮件流停止。

解决办法:

若要使邮件流再次正常工作,请确保满足以下要求:

  1. 所有 Exchange 服务都已启用并在运行中。
  2. 服务器不在维护模式
  3. Exchange 消息队列数据库中有足够的可用空间。

返回页首

Exchange 安装程序或 PrepareAD 错误

问题:

在运行 Exchange 安装程序或 PrepareAD 命令时,该过程失败并显示以下错误消息:

容器对象 CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com 中 otherWellKnownObjects 属性上的已知对象条目 B<guid>:CN=Recipient Management\0ADEL:<guid>,CN=Deleted Objects,DC=contoso,DC=com 指向无效的 DN 或已删除的对象。 删除该条目,然后重新运行任务。 在 Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)

原因:

此问题之所以发生,是因为错误中引用的对象“otherWellKnownObjects”已不在 Active Directory 中。 因此,需要删除指向对象的链接。

解决办法:

下载并运行 SetupAssist.ps1 脚本。

.\SetupAssist.ps1 -OtherWellKnownObjects

该脚本将会把 otherWellKnownObjects 属性转储到名为 ExchangeContainerOriginal.txt 的文件中。 然后,它将检查文件以查找已删除的对象。 如果找到任何此类对象,脚本将生成名为 ExchangeContainerImport.txt 的新文件,并使用它来删除错误的值。

如果脚本要求验证结果,请执行以下操作:

  1. 查看 ExchangeContainerImport.txt 文件以检查脚本所做的更改。
  2. 按照脚本提供的说明,将 ExchangeContainerImport.txt 文件导入 Active Directory。
  3. 重新运行 PrepareAD 命令。

现在,你应该能够继续安装。

返回页首

Exchange 安装失败并显示错误代码 1603

问题:

在安装 Exchange 期间显示以下错误消息:

安装产品 F:\exchangeserver.msi 失败。 安装过程中出现致命错误。 错误代码为 1603。 MSI 包所报告的最后一个错误为“安装程序没有足够权限访问此目录: C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\15.1.2106”。

解决办法:

  1. 请确保使用本地管理员帐户运行安装程序。
  2. 检查是否将以下权限分配给了错误中指定的文件夹:
    1. 通过身份验证的用户的读取权限
    2. 系统的完全控制权限
    3. <local_machine>\administrators> 的完全控制
  3. 确保在文件夹上启用继承。 如果没有,则启用继承。

更新文件夹权限后,继续安装。

如果仍然显示错误消息,请执行本文中说明的步骤。

返回页首

从不支持的 CU 迁移时更新 .NET

如果你正在将 Exchange Server 从不受支持的 CU 升级到当前 CU,且没有中间 CU 可用,则应首先升级到 Exchange Server 版本支持的 .NET 的最新版本,然后再立即升级到当前 CU。 即使使用了此方法,也还需要保持 Exchange 服务器和支持的 CU 为最新。 Microsoft 并未声明说使用此方法就不会发生升级故障。

重要

任何版本的 Exchange 都不支持未在 Exchange Server 可支持性矩阵中列出的 .NET Framework 版本。 这包括 .NET Framework 的次要版本和修补程序级别的版本。

按照以下步骤安装最新版本的 .NET Framework:

  1. 将服务器置于维护模式。 运行以下命令:

    set-servercomponentstate \<server_name\> -Component serverwideoffline -State inactive -Requester Maintenance

  2. 使用服务 MMC 或 PowerShell 停止所有 Exchange 服务。 如果你想使用 PowerShell,请运行以下命令两次以停止所有 Exchange 服务:

    Get-service \*exch\* \| stop-service

    注意:不建议使用 -Force 命令停止所有服务。

  3. 根据 Exchange Server 可支持性矩阵下载并安装正确版本的 .NET Framework。

  4. 安装完成后,重新启动服务器。

  5. 更新到可用于 Exchange 2013、2016 或 2019 的最新 CU。

  6. 安装 CU 后重新启动服务器。

  7. 确保所有 Exchange 服务均处于正常启动模式并已启动。 你可以使用 PowerShell 运行以下命令来启动它们:

    Get-service \*exch\*

  8. 关闭服务器的维护模式。 运行以下命令:

    set-servercomponentstate \<server_name\> -Component serverwideoffline -State active - Requester Maintenance

返回页首

处理自定义的 OWA 或 .config 文件

重要

在应用 CU 之前,请备份自定义文件。

应用 CU(用于 Exchange Server 2013、2016 或 2019)或汇总包(用于 Exchange Server 2010)时,如果需要,该过程将更新 OWA 文件和 .config 文件。 因此,安装 Exchange CU 时,你对 Exchange 服务器上的 Exchange XML 应用程序配置文件中的 Exchange 或 Internet Information Server (IIS) 设置所做的任何自定义都将被覆盖。 此类应用程序配置文件的示例包括 web.config 文件、EdgeTransport.exe.config 文件,以及任何自定义的 logon.aspx Outlook 网页版文件。 请务必保存此信息,以便在安装 CU 后轻松重新应用设置。

返回页首

安装 CAS-CAS 代理部署的更新

如果你的场景满足以下两种情况,请先在面向 Internet 的 CAS 上应用该更新汇总,然后再在面向非 Internet 的 CAS 上应用该更新汇总:

  • 你是 CAS 代理部署指南客户。
  • 你已部署了 CAS-CAS 代理

备注

对于其他 Exchange Server 2010 配置,你不必按任何特定顺序在服务器上应用该更新汇总。

返回页首

在 DBCS 版本的 Windows Server 2012 上安装此更新

若要在双字节字符集 (DBCS) 版本的 Windows Server 2012 上安装或卸载 Exchange Server 2010 SP3 更新汇总 32,则非 Unicode 程序的语言首选项不应设置为默认语言。 如果是,则必须在开始安装之前更改此设置。

  1. 在“控制面板”中,选择“时钟、区域和语言” > “区域” > “管理”。
  2. 在“非 Unicode 程序的语言”区域中,选择“更改系统区域设置”。
  3. 在“当前系统区域设置”列表中,选择“英语(美国)”,然后选择“确定”。

现在,你可以根据需要安装或卸载更新汇总 32。 过程完成后,根据需要恢复语言设置。

返回页首