如果发现Microsoft Defender防病毒扫描出现问题,例如扫描未完成,或扫描导致设备上的性能问题,则可能需要对扫描过程进行故障排除。 本文介绍如何识别信息以解决Microsoft Defender防病毒扫描的问题。 你将了解扫描的启动方式、将哪些策略应用于扫描、扫描结束的原因以及影响扫描性能的原因。

注意

若要了解防病毒扫描类型之间的差异,请参阅 比较快速扫描、完全扫描和自定义扫描。

如何启动扫描

了解启动扫描的原因有助于确定哪些设置应用于扫描以及可以调整哪些设置。 在 Microsoft Defender for Endpoint 中,可以通过多种方式启动防病毒扫描。 下表汇总了这些选项:

方法

说明

计划

根据策略表由策略定义

更新后扫描

由策略定义(Intune 中的设置目录)

补扫

当计划扫描连续错过两次时启动

手动启动

扫描是使用以下任一方法手动启动的:

MpCmdRun 命令行工具: MpCmdRun.exe -Scan -ScanType 在 Microsoft Defender 门户中对设备执行响应操作。在设备上使用Windows 安全中心应用或Microsoft Defender应用

Microsoft Defender 防病毒中的 CPU 性能和扫描节流

Microsoft Defender防病毒包括多个可配置的设置,用于在扫描期间管理 CPU 使用率。 这些设置通过控制 Defender 使用系统资源的主动程度,帮助平衡系统性能和安全性。 如果使用 组策略,这些设置位于 下Computer Configuration > Administrative Templates > Windows Components > Microsoft Defender Antivirus > Scan。 若要在计算机上检查这些设置的当前值,Get-MpPreference请使用 PowerShell 命令。

下表列出了要注意的关键设置:

设置

详细信息

ScanOnlyIfIdle

说明:启用后,Microsoft Defender防病毒仅在系统空闲时执行扫描。

目的:这通过在系统未使用之前延迟扫描来最大程度地降低在活动使用期间对性能的影响。

典型用例:非常适合用户体验优先且扫描延迟且不会影响安全性的环境。

策略名称:

组策略:不可用。

-

Intune:./Device/Vendor/MSFT/Defender/Configuration/ScanOnlyIfIdleEnabled

默认值:已启用) (True

DisableCpuThrottleOnIdleScans

说明:如果设置为 true,则会在空闲时扫描期间禁用 CPU 节流。

目的:允许 Defender 在系统空闲时使用更多 CPU 资源,从而可能更快地完成扫描。

与其他设置的交互:可与 ScanOnlyIfIdle 配合使用。 如果两者都已启用,则扫描仅在空闲时运行,且不会被限制。

策略名称:

-

组策略:不可用。

-

Intune:./Device/Vendor/MSFT/Defender/Configuration/DisableCpuThrottleOnIdleScans

默认值:已启用) (True

AvgCPULoadFactor

说明:指定 Microsoft Defender 防病毒在扫描期间不应超过的平均 CPU 负载(以百分比表示)。 此设置不适用于实时保护扫描。

目的:通过限制 Defender 的 CPU 使用率,帮助维护整体系统响应能力。

示例:值50表示Microsoft Defender防病毒尝试在扫描期间将其 CPU 使用率保持在 50% 以下。

与其他设置的交互:此设置会受到 DisableCpuThrottleOnIdleScans 和 ThrottleForScheduledScanOnly 的影响,这些设置可能会覆盖或限制应用节流的时机。

策略名称:

-

组策略:Specify the maximum percentage of CPU utilization during a scan

-

Intune:./Device/Vendor/MSFT/Policy/Config/Defender/AvgCPULoadFactor

ThrottleForScheduledScanOnly

说明:启用后,CPU 限制仅应用于计划的扫描,而不适用于手动扫描。

目的:确保计划的扫描侵入性较低,同时允许手动扫描在需要时全速运行。

与其他设置的交互:与 AvgCPULoadFactor 一起使用时,节流限制仅适用于计划扫描。 手动扫描会忽略 CPU 负载系数,并且可能会使用更多资源。

策略名称:

-

组策略:Cpu throttling type

-

Intune:./Device/Vendor/MSFT/Policy/Config/Defender/ThrottleForScheduledScanOnly

默认值:已启用) (True

EnableLowCpuPriority

说明:此策略设置允许你为计划扫描启用或禁用低 CPU 优先级。

目的:通过允许其他进程优先于Microsoft Defender防病毒的扫描任务,帮助降低扫描对系统性能的影响。

与其他设置的交互:通过进一步降低 Microsoft Defender 防病毒的 CPU 使用优先级,对 AvgCPULoadFactor 和 ThrottleForScheduledScanOnly 形成补充。 在扫描期间保持响应能力至关重要的环境中,此功能特别有用。

策略名称:

-

组策略:Configure low CPU priority for scheduled scans

-

Intune:./Device/Vendor/MSFT/Policy/Config/Defender/EnableLowCPUPriority

默认值:False (禁用)

影响扫描的策略

了解应用于扫描的策略可让你了解扫描的行为,以及可以调整哪些内容来修正扫描挑战。

下表汇总了适用于 Windows 设备的 Microsoft Intune 中的防病毒设置:

设置

说明

扫描

允许对映射的网络驱动器进行完全扫描

此策略设置允许您配置对已映射网络驱动器的扫描。 请记住,配置此设置可能会降低完全扫描的性能。

扫描

允许对可移动驱动器进行全面扫描

通过此策略设置,可以管理在运行完全扫描时是否扫描可移动驱动器(如 U 盘)内容中的恶意软件和不需要的软件。

扫描

允许扫描网络文件

此策略设置允许配置对通过网络访问的文件进行的计划扫描和按需(手动启动)扫描。 建议启用此设置。

扫描

平均 CPU 负载因子

通过此策略设置,可以配置扫描期间允许的最大 CPU 使用率百分比。 此设置的有效值为 5 到 100 整数表示的百分比。 值为 0 表示不应限制 CPU 使用率。 默认值为 50。

扫描

允许存档扫描

此策略设置允许在存档文件(如 .ZIP 或 .CAB 文件)中配置恶意软件和不需要的软件的扫描。 请记住,配置此设置可能会降低扫描时的性能。

扫描

存档最大深度

扫描

存档最大大小

扫描

在运行扫描之前检查签名

使用此策略设置,可以管理在运行扫描之前是否发生针对新病毒和间谍软件安全智能的检查。 它适用于计划扫描,但对从用户界面手动启动的扫描或从 命令提示符进行的扫描没有任何影响: MpCmdrun.exe -Scan [Options]。

扫描

禁用 Catchup Full Scan

此策略设置允许为计划的完整扫描配置追赶扫描。 跟进扫描是由于错过了定期计划的扫描而启动的扫描。 通常,之所以会错过这些预定扫描,是因为计算机在预定扫描时间处于关机状态。 如果禁用或未配置此设置,则会执行针对计划的完全扫描的补做扫描。 如果计算机在连续两次计划扫描中处于脱机状态,则下次有人登录计算机时将启动追赶扫描。 如果未配置计划扫描,则不会运行追赶扫描。 如果启用此设置,则会禁用计划完整扫描的补扫。

扫描

启用低 CPU 优先级

此策略设置允许为计划扫描启用或禁用低 CPU 优先级。 - 如果启用此设置,则计划扫描期间将使用低 CPU 优先级。 - 如果禁用或未配置此设置,则不会更改计划扫描的 CPU 优先级。

一般信息

已排除的扩展

一般信息

排除的路径

一般信息

排除的进程

扫描计划

扫描参数

此策略设置允许指定在计划扫描期间使用的扫描类型。 扫描类型选项包括: - 1 = 快速扫描 (默认) - 2 = 完全扫描 如果启用此设置,扫描类型将设置为指定的值。 如果禁用或未配置此设置,则使用默认扫描类型。

扫描计划

计划快速扫描时间

使用此策略设置,可以指定执行每日快速扫描的时间。 时间值表示为自午夜(00:00)起经过的分钟数。 例如,120 (0x78) 相当于凌晨 02:00。 默认情况下,此设置设置为“禁用”。 计划基于正在执行扫描的计算机上的本地时间。 如果启用此设置,则每日快速扫描将在指定的时间运行。 如果禁用或未配置此设置,则此配置控制的每日快速扫描不会运行。

扫描计划

安排扫描日期

此策略设置允许您指定在哪一天执行计划扫描。 还可以将扫描配置为每天运行或根本不运行。 此设置可使用以下序数值进行配置: - (0x0) 每天 - (0x1) 星期日 - (0x2) 星期一 - (0x3) 星期二 - (0x4) 星期三 - (0x5) 星期四 - (0x6) 星期五 - (0x7) 星期六 - (0x8) 从不 (默认) 如果启用此设置,计划扫描将按指定的频率运行。 如果禁用或未配置此设置,则计划扫描以默认频率运行。

扫描计划

设定扫描时间

通过此策略设置,可以指定执行计划扫描的时间。 时间值表示为自午夜(00:00)起经过的分钟数。 例如,120 (0x78) 相当于凌晨 02:00。 默认情况下,此设置设置为凌晨 2:00 的时间值。 计划基于正在执行扫描的计算机上的本地时间。 如果启用此设置,计划扫描将在指定的一天中运行。 如果禁用或未配置此设置,则计划扫描将在默认时间运行。

扫描计划

随机计划任务时间

扩大或缩小计划扫描的随机化周期。 使用设置 SchedulerRandomizationTime将随机化窗口指定为 1 到 23 小时。

扫描计划

调度程序随机化时间

扫描计划

在安全智能更新后启用扫描

在安全智能更新后启用扫描。 请记住,此设置只能通过设置目录使用。

在 Intune 策略中以及在 Defender for Endpoint 的安全设置管理中,可以配置两种扫描计划:

每日快速扫描:可以配置每日快速扫描运行的时间。 禁用或不配置将禁用每日快速扫描。

设置:Schedule Quick Scan Time

计划扫描:可以配置计划扫描的运行时间,可以选择扫描的类型及其运行时间。

设置: Scan Parameter; Schedule Scan Day和 Schedule Scan Time

如果使用 组策略 来管理设备,请参阅使用 组策略 配置 Microsoft Defender 防病毒

有关防病毒设置故障排除的信息,请参阅排查Microsoft Defender防病毒设置问题

有关Microsoft Defender防病毒处于被动模式时的扫描行为的详细信息,请参阅Microsoft Defender防病毒与其他安全产品的兼容性

有关扫描的常见问题

问:我的快速扫描计划在星期一进行,但每天都在进行。 为什么?

答:如果希望计划扫描是唯一的扫描,请将 设置为 ScheduleQuickScanTime0。

问:即使 DisableCatchupQuickScan 设置为 0,为什么追赶扫描不会在我的计算机上运行?

答:当设备使用电池运行时,无法运行追赶扫描。

问:为什么每日快速扫描在我的计算机上不运行,即使我已经安排了这些扫描?

答:检查计算机上是否配置了每日快速扫描。 如果 ScanParameters 设置为 2,则默认计划扫描类型为 Full Scan。 如果 ScheduledQuickScanTime 设置为 0,则不设置每日快速扫描。

问题:为什么我的完全扫描会因内存问题(内存占用过高/超出限制)而失败?

答:计算机上可能存在大量 cab/zip 文件。 建议浏览大文件夹,清理或删除未使用的文件,以及/或针对特定情况实施排除, (例如) 下 C:\Windows 的文件。 请参阅Configuration Manager 的推荐防病毒排除项。

如何确认扫描状态

通过确认扫描是否已取消或成功完成,可以将扫描失败的设备作为目标。 若要了解所发生的情况,可以使用 Windows 中的事件查看器、报表、高级搜寻和Microsoft Defender门户中的“设备”页或 API。

事件查看器

以下事件 ID 与设备上的扫描操作相关。

事件 ID 1000 - 已启动反恶意软件扫描。

事件 ID 1001 - 已完成反恶意软件扫描。

事件 ID 1002 - 反恶意软件扫描在完成之前已停止。

有关详细信息,请参阅 Microsoft Defender防病毒事件 ID 和错误代码。

应用程序或 PowerShell 可以在计算机上访问事件查看器。 有关详细信息,请参阅查看事件查看器中的日志(本文中)。

Microsoft Defender门户中的报表

提供包含当前扫描状态的报告。 可以展开视图并导出详细信息。 有关详细信息,请参阅 设备运行状况报告。

高级搜寻

还可以在 高级搜寻中找到有关扫描完成和取消的信息。 若要获取有关高级搜寻的帮助,请参阅以下文章:

通过Microsoft Defender中的高级搜寻功能主动搜寻威胁

选择引导模式或高级模式,以便在 Microsoft Defender XDR 中进行搜寻

了解高级搜寻查询语言

Microsoft Defender门户中的设备页

在Microsoft Defender门户中,可以在设备页上查看有关扫描的信息。 有关详细信息,请参阅以下文章:

Microsoft Defender for Endpoint 中的设备运行状况报告

设备清单

API

可以使用导出运行状况报告 API 导出有关扫描状态的数据,如下所示:

"quickScanResult": "Completed",

"quickScanError": "",

"quickScanTime": "2202-08-02T18:40:15.882Z",

"fullScanResult": "",

"fullScanError": "",

"fullScanTime": null,

有关详细信息,请参阅 导出设备防病毒运行状况报告。

取消或终止扫描的原因

通过确定取消扫描的原因,可以确定需要查看哪些内容才能成功完成扫描。 下表列出了扫描未完成的原因。

原因

详细信息

设备重启

可以使用设备上的事件查看器查看设备重启的详细信息。 事件日志:系统事件 ID:6005、6006、6007 和 6008

扫描超时

计划扫描使用 MpCmdRun,但如果使用 MpCmdRun 运行按需扫描,计时器仍适用。 由 Windows 安全应用(本地)和 Microsoft Defender 门户发起的防病毒扫描不使用 MpCmdRun。 每个方法都使用 mpclient直接启动扫描。 ,li>在 Microsoft Defender 门户或 Windows 安全中心应用中发起的扫描(快速扫描或完整扫描):没有时间限制计划的完整扫描或 MpCmdRun 完整扫描:限制为 7 天计划的快速扫描或 MpCmdRun 快速扫描:一天限制

设备在电池供电时运行

如果设备在计划的完全扫描期间拔掉电源并使用电池供电,则计划扫描会停止,并记录事件 1002,表明扫描在完成前已停止。 Microsoft Defender 防病毒将在下次计划时间执行完整扫描。 有关详细信息,请参阅 计划防病毒扫描:需要记住的要点。

其他与电源相关的事件

以下来自 Kernel-Power 的事件 ID 表示设备的电源状态发生了更改,这可能会影响扫描能否及时完成: - 107:系统已从睡眠状态恢复。- 42:系统进入睡眠状态。 睡眠原因:从睡眠状态转入休眠 - 超出待机电池预算- 507:系统正在退出新式待机。 原因:睡眠、休眠或关闭。- 506:系统进入新式待机。 原因:盖子。- 105:电源更改。

在设备上使用性能分析器

如果按照本文中的指导操作后,未在设备上发现错误配置问题,则可以使用 New-MpPerformanceRecording 命令生成跟踪来识别设备上的问题。 此性能分析器提供以下信息:

影响扫描时间的首要路径

影响扫描时间的热门文件

影响扫描时间的顶级进程

影响扫描时间的热门文件扩展名

组合,例如以下这些:

各扩展名下排名靠前的文件

每个扩展的顶级路径

每个路径的顶级进程 - 每个文件的顶级扫描数

各进程中文件扫描次数最多的项

有关详细信息,请参阅 Microsoft Defender 防病毒的性能分析器。

此过程的一个结果可能是标识要从防病毒扫描中排除的文件或路径,以提高性能。 请务必查看以下文章:

排除项概述

上下文文件和文件夹排除

查看事件日志

可以使用 事件查看器 应用程序或使用 PowerShell 查看本地事件日志。

查看事件查看器中的日志

在 Windows 设备上,Microsoft Defender 防病毒日志位于 应用程序和服务日志>Microsoft>Windows>Windows Defender>操作。

以下屏幕截图显示了 事件查看器 中的扫描日志:

下面是 事件查看器 中的事件 1000 示例:

使用 PowerShell 查看事件

还可以使用 Get-WinEvent cmdlet 通过 PowerShell 访问此信息。

例如,若要获取所有事件,请使用以下命令:

Get-WinEvent -LogName 'Microsoft-Windows-Windows Defender/Operational'

若要查看扫描事件,请使用以下命令:

Get-WinEvent -LogName 'Microsoft-Windows-Windows Defender/Operational' | where id -eq '1000'

另请参阅

关于计划的快速或完整Microsoft Defender防病毒扫描

排除项概述