了解进程匹配条件

应用到: Windows Server 2008 R2

进程匹配条件用于匹配系统上正在运行的进程并将匹配的进程聚合成组。然后,可以使用资源分配策略管理这些组。

匹配进程的方式

每个进程匹配条件由一个或多个匹配条件组成,这些匹配条件指定用于匹配进程的逻辑。定义了进程匹配条件之后,可以将其包含在一个或多个资源分配中。

进程匹配条件提供两套匹配进程的机制。一套机制匹配文件或命令行。另一套机制匹配用户或组。下表中介绍了这两套机制。

 

匹配条件 描述

文件或命令行

可以使用文件匹配或命令行匹配来选择一个或多个已注册的服务、正在运行的进程或应用程序的可执行文件。

对于用来创建进程的应用程序可执行文件的完整命令行路径,可以使用文件匹配或命令行匹配,针对该路径的任一部分匹配正在运行的进程。

例如,可以按如下所述使用通配符:

C:\Program Files\*

此示例将匹配目录 C:\Program Files\ 中的某个应用程序可执行文件启动的所有应用程序。

还可以匹配在创建进程时传递给进程的命令行字符串的任意部分。

可以使用文件匹配来匹配包含在匹配条件中的可执行文件名创建的所有进程,还可以使用命令行匹配来匹配包含准确命令行路径字符串的所有进程。除非使用正则表达式或通配符,否则,只有进程和匹配条件完全匹配,才会匹配该进程。

例如,如果启动帮助和支持中心,其创建的一个进程是 helpctr.exe,这是可执行文件名。该进程的命令行字符串为:

C:\Windows\PCHealth\HelpCtr\Binaries\helpctr.exe -FromStartHelp

若要匹配此进程,可以创建一个包含字符串 helpctr.exe 的文件匹配条件。此字符串与进程的可执行文件名 helpctr.exe 完全匹配。但是,如果创建了命令行匹配条件(例如 C:\Windows\PCHealth\HelpCtr),则不会匹配。这是由于命令行匹配需要字符串 C:\Windows\PCHealth\HelpCtr\Binaries\helpctr.exe 或正则表达式或通配符(例如 C:\Windows\PCHealth\HelpCtr\*)的完全匹配项。

用户或组

通过用户或组的匹配,可以选择用户帐户或组。然后,将匹配该用户帐户或任何组成员创建的任何进程。

使用用户或组的匹配时,将匹配指定用户或作为指定组成员的任何用户帐户启动的所有进程。此匹配属于相等匹配。只匹配与指定的用户或组完全匹配的用户帐户或组。

如果使用组匹配,将包含启动进程的用户帐户的组与进程匹配条件中指定的组进行比较。如果存在相等匹配,将匹配该进程。

用户或组的匹配不能使用通配符或正则表达式。

note注意
使用“Windows 系统资源管理器”管理单元创建进程匹配条件时,在创建期间将验证指定的用户名和组名。但是,不会验证导入的进程匹配条件。在将导入的进程匹配条件包括在资源分配策略中之前,验证该进程匹配条件中的所有用户名或组名在将条件导入的计算机上是否存在。

包括的进程匹配条件

Windows 系统资源管理器附带了两个进程匹配条件:

  • Residual 进程匹配条件匹配符合下列条件的所有进程:

    • 未包括在用户定义的排除列表中。

    • 受 Windows 系统资源管理器管理。

    • 不匹配其他进程匹配条件。

  • IISAppPool 进程匹配条件匹配属于 Internet 信息服务 (IIS) 应用程序池的所有进程。

创建进程匹配条件时的考虑事项

在创建进程匹配条件时,您将包括或排除特定的进程、路径、用户或组。

一个进程只能匹配一个进程匹配条件。

创建进程匹配条件时,应考虑应用程序的所有进程是已知的还是未知的。

  • 如果所有进程都是已知的:可以创建一个应用程序特定的进程匹配条件,该条件将只匹配属于指定应用程序的进程。

  • 如果并非所有进程都是已知的:在创建匹配条件时必须谨慎,不要匹配不需要的进程。最佳做法是使用完整的命令行路径匹配。命令行路径匹配可以确保只匹配应用程序的特定可执行文件启动的进程。

在创建进程匹配条件时,还需要考虑第三种特殊情况,即应用程序创建同名的进程时。有关详细信息,请参阅创建进程匹配条件

进程匹配条件逻辑

可以在一个进程匹配条件中创建多个匹配条件,以增大匹配的进程数。随着匹配条件越来越复杂,可以指定常规规则不会匹配的特定进程。若要将进程从匹配集中删除,可以使用排除规则。

进程匹配条件必须至少包括下表中的“规则组件”下所述的任一规则。还支持在一个进程匹配条件中使用多个规则。

 

规则组件 注释

包括的文件或命令行

首先将匹配条件与所有受管理的进程的完整命令行路径进行比较。匹配该条件的所有进程将组合到关联的资源分配中。

接下来,将匹配条件与所有其他受管理的进程的文件名进行比较,所有匹配的进程将包括在资源分配中。

例如,如果指定匹配条件 *.exe,则将匹配不在用户定义的排除列表或系统定义的排除列表中的所有正在运行的进程。始终先评估包括的规则,然后再评估排除的规则,以确定是否存在匹配项。

排除的文件或命令行

应用程序创建的、以此命令行路径或文件名作为属性的所有进程,都不会按照与包括的条件的相同的顺序来匹配。例如,如果指定匹配条件 C:\Program Files*,则将不匹配在完整命令行路径中包含该字符串的任何进程。

包括的用户或组

将匹配以包括的用户或组作为属性的所有进程。例如,如果指定 Users 组,则将匹配 Users 组中的用户创建的所有进程。包括的规则要优先于排除的规则,始终先对包括的规则进行评估,以确定是否存在匹配项。

排除的用户或组

将不匹配以排除的用户或组作为属性的所有进程。例如,如果指定 Administrators 组,则将不匹配 Administrators 组中的用户创建的所有进程。

如果进程匹配条件过于宽松,则可能会匹配您不希望匹配的进程。例如,如果系统卷是 C,则 c*.exe 将是所有受管理的进程的命令行路径匹配项。这是由于所有正在运行的进程都将在其命令行路径中包含 C,例如:

C:\Program Files\Internet Explorer\iexplore.exe

但是,在同一个系统上,如果没有卷 M,则 m*.exe 将是命令行匹配项,这是由于任何受管理进程的命令行路径中均不存在字符串 m。

其他参考

社区附加资源

添加
显示: