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

[玩转系统] Exchange 邮件流中断(禁用反恶意软件扫描)

作者:精品下载站 日期:2024-12-14 03:28:03 浏览:16 分类:玩电脑

Exchange 邮件流中断(禁用反恶意软件扫描)


邮件流似乎不起作用,邮件队列越来越大。如果您看到这些问题,请立即在本地 Exchange 服务器上禁用 AntiMalWareScanning,然后重新启动 Microsoft Exchange Server 传输服务。

更新:微软发布补丁。请参阅Exchange 邮件流中断的解决方案部分。

介绍

邮件流无法正常工作,您可以在事件查看器中检查错误。

错误
FIP-FS“Microsoft”扫描引擎加载失败。 PID:9244,错误代码:0x80004005。错误描述:无法将“2201010005”转换为long。

[玩转系统] Exchange 邮件流中断(禁用反恶意软件扫描)

获取邮件队列

以管理员身份运行 Exchange 命令行管理程序并检查队列。

[PS] C:\>Get-ExchangeServer | Get-Queue

微软针对卡在传输队列中的电子邮件发布了补丁。跳到下面的解决方案!!

修复 Exchange 邮件流中断问题

有两种方法可以修复 Exchange 邮件流:

  1. 禁用反恶意软件扫描 (1a+2a)
  2. 绕过反恶意软件过滤(2a+2b)

两种方法都会起作用。选择这些选项之一并按照以下步骤操作。

1a.禁用反恶意软件扫描

在 Exchange 命令行管理程序中,运行命令以禁用本地 Exchange Server 上的反恶意软件扫描。

注意:此命令可能需要一分钟或更长时间。让它运行直到成功运行。

[PS] C:\>& $env:ExchangeInstallPath\Scripts\Disable-AntimalwareScanning.ps1

WARNING: The following service restart is required for the change(s) to take effect : MSExchangeTransport
Anti-malware scanning is successfully disabled. Please restart MSExchangeTransport for the changes to take effect.

注意:要重新启用恶意软件过滤,请使用 Enable-Antimalwarescanning.ps1 而不是 Disable-Antimalwarescanning.ps1

您可以在文件资源管理器中找到脚本 Disable-AntiMalWareScanning.ps1

[玩转系统] Exchange 邮件流中断(禁用反恶意软件扫描)

1b.绕过反恶意软件过滤

在 Exchange 命令行管理程序中,运行命令以绕过本地 Exchange 服务器上的反恶意软件筛选。

[PS] C:\>Get-ExchangeServer | % {Set-MalwareFilteringServer -BypassFiltering $true -Identity $_.Name}

2a.验证反恶意软件扫描已禁用

要验证恶意软件过滤是否已禁用,请运行 Get-TransportAgent cmdlet 并确认它返回值 False

[PS] C:\>Get-ExchangeServer | % {Get-TransportAgent "Malware Agent"}

Identity       Enabled  Priority
--------       -------  --------
Malware Agent  False    5

2b.验证旁路过滤已禁用

要验证恶意软件绕过过滤是否已禁用,请运行 Get-MalwareFilteringServer cmdlet 并确认它返回值 True

[PS] C:\>Get-ExchangeServer | % {Get-MalwareFilteringServer}

Name      ForceRescan BypassFiltering DeferWaitTime DeferAttempts UpdateFrequency PrimaryUpdatePath
----      ----------- --------------- ------------- ------------- --------------- -----------------
EX01-2019 False       True            5             3             30              http://amupdatedl.microsoft.com/server/amupdate

3. 重新启动 Exchange Server 传输服务

重新启动 Microsoft Exchange Server 传输服务。

[PS] C:\>Restart-Service MSExchangeTransport

重新启动所有 Exchange 服务器上的 Microsoft Exchange Server 传输服务。

[PS] C:\>Get-ExchangeServer | % {Get-Service -ServiceName MSExchangeTransport | Restart-Service -Force}

了解更多:通过 PowerShell 重新启动 Exchange Server 服务 »

队列将开始处理邮件。

Exchange 邮件流中断的解决方案

微软确实发布了一个补丁,您可以在您的环境中运行它。

解决方案的实施需要客户采取行动。这些操作可以使用 https://aka.ms/ResetScanEngineVersion 中的扫描引擎重置脚本自动执行,也可以手动执行。

重要提示:无论您自动还是手动执行这些步骤,都必须在组织中的每台 Exchange 2016 和 Exchange 2019 服务器上执行这些步骤。

如果您使用自动化脚本,则可以在多个服务器上并行运行它。我们建议从您环境中具有最大队列的服务器开始。您可以使用Get-Queue查看队列大小并确定哪些队列最大。

注意:如果您之前禁用或绕过反恶意软件扫描来缓解此问题,我们建议您在执行以下步骤后重新启用它。

1a.自动化解决方案

下载 ResetScanEngineVersion.ps1 PowerShell 脚本并将其放置在 Exchange Server C:\scripts 文件夹中。如果您没有 scripts 文件夹,请创建一个。

  1. 以管理员身份运行 Exchange 命令行管理程序
  2. 运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  3. 更改脚本文件夹的路径
  4. 运行脚本.\ResetScanEngineVersion.ps1

重要提示:在每个 Exchange Server 上运行 .\ResetScanEngineVersion.ps1 PowerShell 脚本。

在组织中的每台 Exchange 服务器上运行该脚本。您可以在多个服务器上并行运行此脚本。脚本完成后,您将看到以下输出:

[PS] C:\>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
[PS] C:\>cd C:\scripts
[PS] C:\scripts>.\Reset-ScanEngineVersion.ps1
EX01-2019 Stopping services...
EX01-2019 Removing Microsoft engine folder...
EX01-2019 Emptying metadata folder...
EX01-2019 Starting services...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Filtering Management Service (FMS)' to start...
WARNING: Waiting for service 'Microsoft Exchange Transport (MSExchangeTransport)' to start...
EX01-2019 Starting engine update...
Running as EXOIP\administrator.
--------
Connecting to EX01-2019.exoip.local.
Dispatched remote command. Start-EngineUpdate -UpdatePath http://amupdatedl.microsoft.com/server/amupdate
--------

注意:您是否收到与 FIP-FS 中的 updateservice.exe 相关的错误“无法停止进程”?确保您登录 Exchange Server 的帐户在本地组策略下具有调试程序用户权限。否则,进程将不会终止,并且脚本将无法运行。

1b.手动解决方案

您还可以手动执行步骤来解决问题并恢复服务。要手动解决此问题,您必须在组织中的每台 Exchange 服务器上执行以下步骤:

删除现有引擎和元数据

  1. 停止 Microsoft 筛选管理服务。当提示您同时停止 Microsoft Exchange 传输服务时,单击“是”。
  2. 使用任务管理器确保 updateservice.exe 未运行。
  3. 删除以下文件夹:%ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\amd64\Microsoft。
  4. 从以下文件夹中删除所有文件:%ProgramFiles%\Microsoft\Exchange Server\V15\FIP-FS\Data\Engines\metadata。

更新到最新引擎

  1. 启动 Microsoft 筛选管理服务和 Microsoft Exchange 传输服务。
  2. 打开 Exchange 命令行管理程序。
  3. 导航到脚本文件夹 (%ProgramFiles%\Microsoft\Exchange Server\V15\Scripts)。
  4. 运行 .\Update-MalwareFilteringServer.ps1
[PS] C:\>cd "$env:ProgramFiles\Microsoft\Exchange Server\V15\Scripts"
[PS] C:\Program Files\Microsoft\Exchange Server\V15\Scripts>.\Update-MalwareFilteringServer.ps1 EX01-2019

Running as EXOIP\administrator.
--------
Connecting to EX01-2019.
Dispatched remote command. Start-EngineUpdate -UpdatePath http://amupdatedl.microsoft.com/server/amupdate
--------

2. 验证引擎更新信息

  1. 启动 Exchange 命令行管理程序。
  2. 运行 Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell。
  3. 运行 Get-EngineUpdateInformation 并验证 UpdateVersion 信息是否为 2112330001 或更高。

注意:运行Get-EngineUpdateInformation cmdlet 并验证UpdateVersion 信息是否为2112330001或更高版本。

[PS] C:\>Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell

[PS] C:\>Get-EngineUpdateInformation


Engine            : Microsoft
LastChecked       : 01/02/2022 08:22:33 AM +01:00
LastUpdated       : 01/02/2022 08:22:41 AM +01:00
EngineVersion     : 1.1.18800.4
SignatureVersion  : 1.355.1227.0
SignatureDateTime : 01/01/2022 12:29:06 PM +01:00
UpdateVersion     : 2112330001
UpdateStatus      : UpdateAttemptSuccessful

过滤事件源:FIPFS上的应用程序日志

3. 重新启用反恶意软件扫描

如果您在 Microsoft 发布解决方案之前应用了修复程序,请启用反恶意软件扫描。如果您没有应用任何修复并立即应用了解决方案,则无需重新启用反恶意软件扫描,因为它是默认启用的。

您是否禁用了反恶意软件扫描?运行以下命令并重新启动 Microsoft Exchange 传输服务。

[PS] C:\>& $env:ExchangeInstallPath\Scripts\Enable-AntimalwareScanning.ps1

Anti-malware engines are updating. This may take a few minutes.
Checking for engines updated after 12/26/2021 8:31:11 AM.
Updating Microsoft. Last updated : 1/2/2022 8:22:41 AM
WARNING: The following service restart is required for the change(s) to take effect : MSExchangeTransport
Anti-malware scanning is successfully enabled. Please restart MSExchangeTransport for the changes to take effect.

您是否绕过了反恶意软件扫描?运行以下命令并重新启动 Microsoft Exchange 传输服务。

[PS] C:\>Get-ExchangeServer | % {Set-MalwareFilteringServer -BypassFiltering $false -Identity $_.Name}

4. 验证邮件流和 FIPFS 错误事件不存在

更新引擎后,我们还建议您验证邮件流是否正常工作,并且应用程序事件日志中不存在 FIPFS 错误事件。

[玩转系统] Exchange 邮件流中断(禁用反恶意软件扫描)

测试并验证邮件流是否有效:

  • 测试 Exchange Server 中的内部邮件流
  • 测试 Exchange Server 中的入站邮件流
  • 在 Exchange Server 中测试出站邮件流

重要提示:运行 ResetScanEngineVersion.ps1 PowerShell 脚本后,您是否在事件日志中看到 FIPFS 错误,并且电子邮件仍然卡在队列中/邮件流无法正常工作? 重新启动 EXCHANGE 服务器

最新更新

更新:微软推送了代理更新,但尚未生效。因此,请禁用反恶意软件扫描。

更新1:更新了屏幕截图,说明如何检查事件查看器是否存在问题。

更新2:下载了最新的MS过滤引擎更新:更新版本:2201010006,但仍然无法正常工作。

MS 筛选引擎更新进程已成功提交并移交 Microsoft 的更新
上次检查:2022-01-01T12:05:10Z
上次更新:2022-01-01T12:05:18Z
引擎版本: 1.1.18800.4
签名版本:”1.355.1234.0”
更新版本:2201010006
最后定义更新:2022-01-01T05:20:29.000Z
更新路径:http ://amupdatedl.microsoft.com/server/amupdate

更新3:添加了有关如何禁用反恶意软件扫描或绕过反恶意软件过滤的选项。

更新4: MS 过滤引擎更新不会解决此问题。您不必检查引擎更新。实施此修复并等待 Microsoft 发布适当的修复程序。

更新5: Microsoft 产品经理向我发送了一条消息,他们正在修复问题。该修复程序将随操作说明一起发布。敬请关注。

Update6:如果您有足够的磁盘空间并且不介意 Exchange Server 稍后传送邮件,您可以等待 Microsoft 补丁。如果没有,请稍后在 Microsoft 发布时应用修复程序和补丁。

Update7: Microsoft Exchange Server 过期消息默认为 48 小时(2 天)。如果消息在队列中保留的时间超过此时间段,则该消息将作为永久失败返回给发送方。

您可以在 1-90 天之间更改该值。问题是,您设置的天数越长,保留的邮件就越多,邮件队列就会变得越大。这意味着您必须不断添加更多磁盘空间。

我建议运行上述修复。但是,如果您不想禁用反恶意软件扫描,最好在传输服务器中延长邮件过期超时时间。只是为了安全。

在下面的示例中,为 2 天。

[PS] C:\>Get-TransportServer | select Name,MessageExpirationTimeout

Name      MessageExpirationTimeout
----      ------------------------
EX01-2019 2.00:00:00

将其更改为 4 天(或其他值)。

[PS] C:\>Set-TransportServer -Identity EX01-2019 -MessageExpirationTimeout 4.00:00:00

Update8:微软补丁已经发布!运行自动或手动解决方案。我首先推荐自动化解决方案。

Update9:如果您在解决方案之前应用了修复程序,请不要忘记重新启用反恶意软件扫描并重新启动 Microsoft Exchange 传输服务。

更新10:更新了屏幕截图,说明如何在应用解决方案后检查事件查看器。

Update11: mail.que数据库变大了,并且不会自动缩小。发生这种情况是因为 Exchange Server 将邮件保留在队列中,并且在修复/解决方案之前邮件没有被释放。它可能会占用大量空间,我建议通过删除 mail.que 数据库来缩小空间。之后,Exchange Server 将自动创建一个新的 mail.que 数据库。

了解更多: Exchange Server 中的 Mail.que 文件很大 »

Update12:如果您的操作系统驱动器上没有足够的磁盘空间,或者由于 mail.que 数据库已满而导致磁盘空间不足,那么现在是移动 mail.que 的绝佳时机数据库到另一个驱动器。这样,操作系统驱动器将保持活动状态,不会给您带来性能问题。

了解更多:将邮件队列移动到 Exchange Server 中的另一个位置 »

更新13:添加了测试邮件流内部/入站/出站的文章。

更新14:一些管理员提到在应用解决方案需要重新启动Exchange Server。之后,邮件队列变空/邮件流开始工作。

Update15:运行 Update-MalwareFilteringServer.ps1 cmdlet 显示:启动反恶意软件引擎更新时出错。要修复此错误,请运行以下步骤:

  1. 以管理员身份运行 Exchange 命令行管理程序
  2. 运行 Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell
  3. 运行启动引擎更新
  4. 运行 Get-EngineUpdateInformation

更新 16:仅 Exchange Server 2016 和 Exchange Server 2019 受到影响。 Exchange 边缘传输服务器不受此 Microsoft Exchange Y2K22 错误的影响。

更新 17:更新版本现在为2112330003。添加到需要显示 UpdateVersion 2112330001 或更高版本的文章中。

更新 18: 一些管理员提到 Exchange Server 2013 也受到影响,而另一些管理员则表示没有。这不是真的,邮件传输会起作用。但是,您必须自动或手动运行相同的脚本。

如果您的 Exchange 2013 服务器进行了反恶意软件更新,并且现在的版本以“22...”开头,您应该使用本博客文章中的自动或手动步骤将您的服务器安装为引擎版本“21...”,以继续获取反恶意软件更新。如果不采取行动,您的服务器将不会获得任何未来的反恶意软件更新。

Update19:添加了在运行脚本之前在 Exchange Management Shell 中运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 的功能。

更新20:定义下载需要30-45分钟(可能会更慢,具体取决于互联网速度),因此请等待一些时间。

Update21:添加了运行脚本时updateservice.exe访问被拒绝错误的解决方案。

订阅时事通讯并了解最新的 IT 提示和技巧。

这篇文章对您有帮助吗?与您的网络分享这篇文章并帮助他们。

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

取消回复欢迎 发表评论:

关灯