Microsoft Defender 防病毒中的排除项

排除项告知Microsoft Defender防病毒在扫描时跳过特定文件、文件夹或进程。 每个排除项都是一个保护差距,可降低防御能力,因此请谨慎使用排除项。 定义排除项以解决特定问题,例如性能或应用兼容性问题,并首先考虑自定义 指示器 等替代项。 不要仅仅因为你觉得某件事将来可能会出问题,就把它排除掉。 有关更多绝不应排除的项目,请参阅Microsoft Defender 防病毒和 Defender for Endpoint 中应避免的排除项。 有关权衡的详细信息,请参阅Microsoft Defender for Endpoint中的排除项和指标概述

Microsoft Defender防病毒支持以下类型的排除:

  • 内置排除项:由 Microsoft Defender 防病毒自动应用于操作系统文件的预定义排除项,无需你进行任何配置。 有关详细信息,请参阅 内置排除项。
  • 自定义排除项:你自己定义的排除项:
    • 文件和文件夹排除:排除特定文件或文件夹中的所有内容。 也称为 路径排除
    • 文件扩展名排除:排除具有特定扩展名的任何文件,而不考虑位置。
    • 进程排除:排除特定进程打开的所有文件。
    • 上下文排除:缩小路径排除范围,使其仅在特定上下文中应用,例如仅在特定进程打开文件时应用。

若要配置任何自定义排除类型,请参阅配置Microsoft Defender防病毒的自定义排除项。

有关排除项的要点

定义排除项时,请记住以下几点:

  • 排除项会直接影响 Microsoft Defender 防病毒是否会阻止、补救或检查与已排除文件、文件夹或进程相关的事件。 它们还会影响依赖于防病毒引擎的功能,例如恶意软件保护、 文件泄露指示器(IOC)证书 IOC。 任何平台上的进程排除也阻止网络保护和攻击面减少(ASR)规则检查流量或强制执行排除的进程规则。

  • 即使配置了排除项,Microsoft Defender防病毒也会执行最小的评估,以确定是否适用排除项。 此评估不涉及完整内容扫描。 满足排除条件后,Microsoft Defender防病毒会跳过对指定文件、文件夹或进程的扫描。

  • 在Windows Server,Microsoft Defender防病毒还对已安装的服务器角色应用预定义的自动排除项,并为操作系统文件应用内置排除项。 这些预定义排除项与定义的自定义排除项分开。 有关详细信息,请参阅Windows Server上的Microsoft Defender防病毒排除项。

  • 排除适用于计划扫描按需扫描实时保护以及潜在不需要的应用程序 (PUA) 检测,但并非适用于 Defender for Endpoint 的所有功能。 若要为整个 Defender for Endpoint 排除文件,请使用自定义指示器

  • Microsoft Defender 防病毒软件排除项适用于某些 ASR 规则。 有关详细信息,请参阅 ASR 规则的文件和文件夹排除项。

  • 已排除的文件仍可触发终结点检测和响应 (EDR) 警报,并且仍可在 Microsoft Defender 门户中触发防病毒行为检测或启发式检测。 若要更广泛地排除文件,请将其添加到Microsoft Defender for Endpoint自定义指示器

  • 不要排除映射的网络驱动器。 请改为指定实际的网络路径。

  • 通配符(例如) *更改排除规则的解释方式。 有关更多信息,请参阅 Microsoft Defender 防病毒排除项中的通配符

  • 默认情况下,管理员对排除项所做的本地更改(包括使用 PowerShell 和 Windows Management Instrumentation (WMI) 所做的更改)会与通过组策略、配置管理器或 Microsoft Intune 下发的排除项合并。 组策略部署的排除项在发生冲突时优先,并且它们在Windows 安全中心应用中可见。 若要让本地更改替代托管设置,请参阅 配置如何合并本地和全局定义的排除列表

  • 定期审查并审核您的排除项。 在审查过程中,重新检查并再次落实缓解措施,并保留说明为何需要每项排除的背景信息。

内置排除项

Microsoft Defender 防病毒在所有受支持的 Windows 客户端和服务器版本中都包含适用于操作系统文件的内置排除项。 随着威胁环境的变化,这些排除项通过 安全智能更新 提供并保持最新,因此它们无需任何手动配置即可应用。 它们不会显示在Windows 安全中心应用中的标准排除列表中。

Tip

本文中所述的默认位置可能与设备上的位置不同。

  • Windows temp.edb 文件

    • %windir%\SoftwareDistribution\Datastore\*\tmp.edb
    • %ProgramData%\Microsoft\Search\Data\Applications\Windows\windows.edb
  • Windows 更新文件或自动更新文件

    • %windir%\SoftwareDistribution\Datastore\Datastore.edb
    • %windir%\SoftwareDistribution\Datastore\*\edb.chk
    • %windir%\SoftwareDistribution\Datastore\*\edb\*.log
    • %windir%\SoftwareDistribution\Datastore\*\Edb\*.jrs
    • %windir%\SoftwareDistribution\Datastore\*\Res\*.log
  • Windows 安全中心 文件

    • %windir%\Security\database\*.chk
    • %windir%\Security\database\*.edb
    • %windir%\Security\database\*.jrs
    • %windir%\Security\database\*.log
    • %windir%\Security\database\*.sdb
  • 组策略文件

    • %allusersprofile%\NTUser.pol
    • %SystemRoot%\System32\GroupPolicy\Machine\registry.pol
    • %SystemRoot%\System32\GroupPolicy\User\registry.pol

在受支持的 Windows Server 版本中,Microsoft Defender 防病毒会对服务器功能(如 Windows Internet 名称服务和文件复制服务)应用更多内置排除项,并对已安装的服务器角色应用自动排除项。 有关详细信息,请参阅Windows Server上的Microsoft Defender防病毒排除项。

文件和文件夹排除

文件和文件夹排除可用于单个文件和文件夹,这些文件和整个文件夹存储在单个路径排除列表中。 文件和文件夹排除始终适用于特定位置(路径)。 若要排除具有特定扩展名的所有文件,而不考虑位置,请改用单独的 文件扩展名排除

  • 文件:有以下类型的排除项可用:

    • 由其完全限定路径指定的单个文件,例如 c:\sample\sample.test。 仅排除该位置中的该文件。
    • 由其完全限定路径指定的可执行程序文件,例如 c:\test\process.exe。 排除可执行文件会停止Microsoft Defender防病毒扫描文件本身,而不是程序打开的文件。 若要跳过进程打开的文件,请改用 进程排除 项。

    注释

    sample.test 这样仅包含文件名的值,无法可靠地排除该文件。 请改为指定该文件的完整路径。 通配符每个代表一个文件夹层级,因此 c:\*\sample.test 仅匹配位于 c:\ 下一级文件夹中的文件,而不会匹配根目录中的文件,也不会匹配更深层嵌套文件夹中的文件。

  • 文件夹:排除文件夹下的所有内容,例如文件夹下 c:\test\sample的所有文件和子文件夹。 下列条件适用:

    • 排除范围包括该文件夹中的所有文件和子文件夹,但重解析点子文件夹除外。 为要排除的每个重新分析点子文件夹单独添加一个文件夹排除项。
    • 在 Microsoft Defender 防病毒服务启动后创建的重解析点文件夹,在重启 Windows 之前不会被识别为有效的排除目标。

文件扩展名排除项

文件扩展名排除项存储在单独的扩展排除列表中,与文件和文件夹排除项不同。 类似于 test 的值仅被视为扩展,因为它位于扩展列表中,而不是在文件和文件夹路径列表中。

  • 扩展排除(如 .test (前导点是可选的),适用于设备上任何具有该扩展名的文件。
  • 若要将扩展限制为特定位置,请改用带通配符的 文件和文件夹排除 ,例如 c:\example\*.test

进程排除

进程排除指示Microsoft Defender防病毒跳过进程打开的文件。 针对已排除进程打开的文件所设的排除项适用于计划扫描和始终启用的实时保护和监视

若要排除进程的可执行文件本身,请为其添加单独的 文件和文件夹排除 项。

使用以下方法排除进程:

  • 映像名称排除项:不含路径的进程文件名,例如 MyProcess.exe。 排除由具有该名称的任何进程打开的文件,无论它从何处运行,包括可移动媒体。
  • 完整路径排除项:进程的文件名和路径,例如 C:\MyFolder\MyProcess.exe。 仅排除该特定进程打开的文件。 尽可能使用完整路径。

下面是一些进程排除示例:

  • test.exe 排除由具有该名称的任何进程打开的任何文件,其中包括由以下进程打开的文件:
    • c:\sample\test.exe
    • d:\internal\files\test.exe
  • c:\test\test.exe 仅排除进程打开的任何文件。
  • c:\test\sample\* 排除由该特定文件夹路径下的任何进程打开的任何文件。 例如:
    • c:\test\sample\test.exe
    • c:\test\sample\test2.exe
    • c:\test\sample\utility.exe

上下文排除项

上下文排除会进一步限定文件和文件夹排除的适用范围,以便 Microsoft Defender 防病毒仅在特定上下文中跳过该文件或文件夹。 例如,仅当特定进程或扫描类型打开文件时,才能排除文件。 由于每个排除项都提高了性能,但减少了保护,因此上下文限制会通过控制何时应用排除来限制权衡。

基于上下文的文件和文件夹排除项要求在 Windows 设备上将 Microsoft Defender 防病毒设为主要防病毒应用:

  • 平台版本: 4.18.2205.7 (2022 年 5 月)或更高版本。
  • 引擎版本: 1.1.19300.2 (2022 年 5 月)或更高版本。

上下文相关的文件和文件夹排除是仅限 Windows 的功能。 它们在 Linux 或 macOS 设备上不可用,即使是载入Microsoft Defender for Endpoint的设备也是如此。

通过向标准 文件和文件夹排除添加上下文限制,可以创建上下文排除项,然后以与其他任何排除项相同的方式应用它。 有关配置方法,请参阅为 Microsoft Defender 防病毒配置自定义排除项

注释

Windows 安全中心应用不支持上下文排除。

基于上下文的文件和文件夹排除项使用以下语法:

<RegularFileOrFolderExclusion>\:{ContextualRestrictionKeyword1:value1,ContextualRestrictionKeyword2:value2,...ContextualRestrictionKeywordN:valueN}

<RegularFileOrFolderExclusion>部分是标准文件或文件夹排除项,因此它支持相同的通配符(*?和环境变量),并遵循相同的路径匹配规则。 有关详细信息,请参阅文件和文件夹排除项中的通配符。 在上下文排除项中,反斜杠(\)始终必须紧接在分隔路径和 : 限制的冒号({})前面,如 ...\:{...} 所示。

{} 部分添加上下文限制。 每个上下文限制都有一个关键字和一个值,如下表所示:

上下文限制类型 关键 字 价值
文件和文件夹限制 PathType file

folder
扫描类型限制 ScanType quick

full
扫描触发限制 ScanTrigger OnDemand

OnAccess

BM (行为监视)
进程限制 Process <path>

Important

上下文关键字约束(如 PathType)及其值(如 fileOnAccessBM)区分大小写,如表中和下面的示例中所示。 文件、文件夹和进程路径遵循常规Windows路径规则,不区分大小写。

注释

在同一个上下文排除项中,多个 ScanTypeScanTriggerPathType 关键字-值对使用 AND 逻辑。 例如, {ScanTrigger:OnAccess,ScanTrigger:OnDemand} 永远不能为 true,并且排除从不适用,因为单个扫描事件只有一个扫描触发器。 若要排除多个ScanTypeScanTriggerPathType值,请创建多个上下文排除项。

同一上下文排除中的多个 Process 键值对采用 OR 逻辑,因此可以在一个排除项中排除多个 Process 值。 有关详细信息,请参阅 “处理上下文限制”。

可以在一个上下文排除中组合不同的关键字类型,如以下子节所示。

上下文排除不是解决误报的可靠方法(合法文件或进程被错误检测为恶意)。 如果遇到误报,可以将文件提交到 Microsoft,以便在 Microsoft 安全 Intelligence 进行分析。 如果使用 Microsoft Defender for Endpoint 计划 2 或 Microsoft Defender XDR,你也可以改为从 Microsoft Defender 门户中提交文件。 如果你使用了 Microsoft Defender for Endpoint,还可以创建自定义允许指示器,用作临时抑制方法。 有关详细信息,请参阅 为文件创建指示器

文件或文件夹路径上下文限制

使用 PathType 上下文限制关键字将排除项标识为仅文件或仅文件夹。

  • 使用 PathType:folder 仅在排除项是文件夹而非文件时应用排除规则。 例如:

    C:\documents\*\:{PathType:folder}

  • 仅当排除的项是文件而不是文件夹时,才使用 PathType:file 排除项。 例如:

    C:\documents\*.mdb\:{PathType:file}

  • PathType如果限制与排除的项类型不匹配,则排除项不适用:

    • 上下文限制将排除项标识为文件夹,但扫描的项目是一个文件。
    • 上下文限制将排除标识为文件,但扫描的项目是一个文件夹。
  • 此示例从按需扫描中排除 .docx C: 驱动器的任何一级文件夹中的文件:

    c:\*\*.docx\:{PathType:file,ScanTrigger:OnDemand}

    如果您未在排除项中包含 PathType:file,则这些相同的一级文件夹中任何名称以 结尾的.docx也会被排除在按需扫描之外。

扫描类型上下文限制

使用 ScanType 上下文限定关键字,使排除仅在特定扫描类型下生效:

  • 快速扫描quick):恶意软件、内存和某些注册表项使用的常见启动位置。
  • 完全扫描full):快速扫描位置以及完整的文件系统(所有文件和文件夹)。

有关每个扫描类型的详细信息,请参阅 比较快速扫描、完全扫描和自定义扫描

此示例仅在完全扫描期间排除指定文件夹:

C:\documents\:{ScanType:full}

此示例仅在快速扫描期间排除指定文件:

C:\program.exe\:{ScanType:quick}

若要确保排除仅适用于文件,而不是文件夹(c:\program.exe 可以是文件夹),也可以使用 PathType 上下文限制,如以下示例所示:

C:\program.exe\:{ScanType:quick,PathType:file}

扫描触发器的上下文限制

ScanTrigger仅当特定事件启动扫描时,才使用上下文限制关键字应用排除项:

此示例仅在访问后扫描指定文件夹时才排除该文件夹:

c:\documents\:{ScanTrigger:OnAccess}

此示例仅在通过命令或管理员操作扫描指定文件(而非文件夹)时,将该文件排除。

c:\documents\design.docx\:{PathType:file,ScanTrigger:OnDemand}

进程上下文限制

Process仅当特定进程访问文件或文件夹时,才使用上下文限制关键字应用排除项。

  • 避免排除进程本身,因为排除进程会导致Microsoft Defender防病毒忽略该进程执行所有其他操作。

  • 通配符可用于进程名称和路径中。

  • 可以使用以下语法在单个上下文排除中列出多个进程:

    <RegularFileOrFolderExclusion>\:{Process1:value1,Process2:value2,...ProcessN:valueN}

    与其他上下文限制类型不同,多个 Process 限制与 OR 逻辑匹配:如果列出的任何进程访问文件或文件夹,则排除项适用。

  • 对设备使用许多进程限制可能会降低性能。

  • 如果排除仅限于特定进程,则其他活动进程(如索引、备份或更新)仍可以触发文件扫描。

此示例仅在指定进程访问指定文件时排除指定文件:

c:\documents\design.docx\:{Process:"winword.exe"}

仅当指定的进程访问指定文件时,此示例才会排除指定的文件(而不是文件夹):

c:\documents\design.docx\:{PathType:file,Process:"winword.exe",Process:"msaccess.exe",Process:"C:\Program Files*\Microsoft Office\root\Office??\winword.exe"}

Microsoft Defender 防病毒排除项中的通配符

可以将星号 *、问号 ?或环境变量用作文件、文件夹和进程排除项中的通配符。 可以在单个排除项中混合和匹配 *?和 环境变量。

Microsoft Defender防病毒解释通配符的方式与其他应用和语言的常用用法不同:

  • Microsoft Defender防病毒服务使用 LocalSystem 帐户在系统上下文中运行。 该服务从 系统 环境变量(而不是 用户 环境变量)获取信息。 仅使用以下类型的环境变量作为通配符:
    • 系统环境变量
    • 适用于以 NT AUTHORITY\SYSTEM 帐户身份运行的进程的环境变量。
  • 每个条目最多可使用六个通配符。
  • 不能使用通配符来代替驱动器号。

文件和文件夹排除项中的通配符

以下列表中描述了文件和文件夹排除项的通配符行为。 由于这些是排除条目,excludes 表示该条目会匹配并跳过所列项目。

  • * (星号)
    • 在文件名或扩展名中:匹配任意数量的字符,但仅适用于条目中最后一个文件夹中的文件(而不是子文件夹)。 例如, C:\MyData\*.txt 排除 C:\MyData\notes.txt
    • 在文件夹路径中:匹配单个文件夹。 对嵌套的未命名文件夹使用多个 \*\ 实例。 已命名文件夹和通配符文件夹匹配后,其所有子文件夹也会被包含在内。 例如:
      • C:\somepath\*\Data 排除 C:\somepath\Archives\Data 及其子文件夹中的任何文件,以及 C:\somepath\Authorized\Data 及其子文件夹中的任何文件。
      • C:\Serv\*\*\Backup 排除 C:\Serv\Primary\Denied\Backup 及其子文件夹中的任何文件,以及 C:\Serv\Secondary\Allowed\Backup 及其子文件夹中的任何文件。
  • ? (问号)
    • 在文件名或扩展名中:匹配单个字符,但仅适用于条目中最后一个文件夹中的文件(而不是子文件夹)。 例如, C:\MyData\my?.zip 排除 C:\MyData\my1.zip
    • 在文件夹路径中:匹配文件夹名称中的单个字符。 已命名文件夹和通配符文件夹匹配后,其所有子文件夹也会被包含在内。 例如, C:\somepath\?\Data 排除其子文件夹中的任何文件 C:\somepath\P\Data ,并 C:\somepath\test0?\Data 排除其子文件夹中的任何文件 C:\somepath\test01\Data 及其子文件夹。
  • 环境变量:在计算排除项时扩展到路径。 例如, %ALLUSERSPROFILE%\CustomLogFiles 排除 C:\ProgramData\CustomLogFiles\Folder1\file1.txt
  • 混合搭配:在单个条目中组合环境变量、*?。 例如, %PROGRAMFILES%\Contoso*\v?\bin\contoso.exe 排除 C:\Program Files\Contoso Labs\v1\bin\contoso.exe

Important

如果将文件排除与文件夹排除混合使用,规则将停止在匹配文件夹中的文件排除匹配项,并且不会在子文件夹中查找文件匹配项。

例如, c:\data\*\marked\date* 排除在文件夹 c:\data\final\markedc:\data\review\marked中以“日期”开头的所有文件,但不包括这些文件夹的子文件夹中的所有文件。

进程排除项中的通配符

通配符在 进程排除项中可用,但其可用性略有不同:

以下列表描述了完整路径进程排除项的通配符行为。 由于这些是排除项条目,excludes 表示该条目会匹配并跳过由所列进程打开的文件。

  • * (星号):匹配任意数量的字符。 例如:
    • C:\MyFolder\* 排除由 C:\MyFolder\MyProcess.exeC:\MyFolder\AnotherProcess.exe. 打开的任何文件。
    • C:\*\*\MyProcess.exe 排除由 C:\MyFolder1\MyFolder2\MyProcess.exeC:\MyFolder3\MyFolder4\MyProcess.exe. 打开的任何文件。
    • C:\*\MyFolder\My*.exe 排除由 C:\MyOtherFolder\MyFolder\MyProcess.exeC:\AnotherFolder\MyFolder\MyOtherProcess.exe. 打开的任何文件。
  • ? (问号):匹配单个字符。 例如,C:\MyFolder\MyProcess??.exe会排除由C:\MyFolder\MyProcess42.exeC:\MyFolder\MyProcessAA.exeC:\MyFolder\MyProcessF5.exe打开的任何文件。
  • 环境变量:在计算排除项时扩展到路径。 例如, %ALLUSERSPROFILE%\MyFolder\MyProcess.exe 排除由 C:\ProgramData\MyFolder\MyProcess.exe. 打开的任何文件。

系统环境变量

由于Microsoft Defender防病毒服务作为 LocalSystem 帐户运行,排除项中的环境变量将解析为其系统帐户位置,这通常不同于你可能期望的用户帐户位置。 下表列出了最常用的系统环境变量及其解析的默认位置。 与用户位置相同?列表示该变量在普通用户上下文中是否指向相同的路径(No 表示它在 LocalSystem 下会解析到不同的位置)。 有关Windows环境变量的一般信息,请参阅已识别的环境变量

系统变量 解析为 与以下项相同
用户位置?
示例
%ALLUSERSPROFILE% C:\ProgramData Yes %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs

%ALLUSERSPROFILE%\Microsoft\Windows\DeviceMetadataStore

%ALLUSERSPROFILE%\Microsoft\Windows\Templates
%APPDATA% C:\Windows\System32\config\systemprofile\AppData\Roaming No %APPDATA%\Microsoft\Windows\Start Menu

%APPDATA%\Microsoft\Windows\Start Menu\Programs
%CommonProgramFiles% C:\Program Files\Common Files Yes
%CommonProgramFiles(x86)% C:\Program Files (x86)\Common Files Yes
%LOCALAPPDATA% C:\Windows\System32\config\systemprofile\AppData\Local No %LOCALAPPDATA%\Microsoft\Windows\History
%ProgramData% C:\ProgramData Yes
%ProgramFiles% C:\Program Files Yes %ProgramFiles%\Common Files
%ProgramFiles(x86)% C:\Program Files (x86) Yes %ProgramFiles(x86)%\Common Files
%PUBLIC% C:\Users\Public Yes %PUBLIC%\Desktop

%PUBLIC%\Documents

%PUBLIC%\Pictures
%SystemDrive% C: Yes %SystemDrive%\Program Files

%SystemDrive%\Program Files (x86)

%SystemDrive%\Users
%SystemRoot% C:\Windows Yes
%TEMP% C:\Windows\TEMP No
%TMP% C:\Windows\TEMP No
%USERPROFILE% C:\Windows\System32\config\systemprofile No %USERPROFILE%\AppData\Local

%USERPROFILE%\AppData\LocalLow

%USERPROFILE%\AppData\Roaming
%windir% C:\Windows Yes %windir%\Fonts

%windir%\System32

%windir%\Resources

另见