流控制条件
在此部分:
关于流控制条件
“流控制”条件组包含以下条件:
条件 | 说明 | “计算机”触发器 | “用户”触发器 |
---|---|---|---|
If 条件(和 Else If 条件) | 这些条件可为 If Else 组中的条件创建容器,通过允许使用在大多数编程语言中找到的标准 If/Else If/Else 逻辑来启用高级流控制 | 是 | 是 |
计数器 | 此条件用于控制子操作和条件在单一会话中运行或评估的次数。使用计数器字段选择所需的数字;可以添加的最小值为 1;没有最大值。 | 是 | 是 |
If 条件
If 条件可创建一个逻辑容器,您可在该容器中将一组条件配置在一起并依次进行评估。只要满足其中一个条件,系统就会运行任何关联的条件和操作,并停止对组进行评估。如果不满足任何条件,则可配置为应用最终的默认操作。
条件由表达式生成器创建,生成器默认包含 If 条件和 Else 区段。您可根据需要添加可选的 Else If 条件。
创建 If 条件
-
在“策略配置”导航树中,创建新节点或选择要添加条件的现有节点。
If 条件无法在可重复使用的条件内创建。
-
在“条件”功能区上,选择流控制 > If 条件。
表达式生成器显示在“If 条件”对话框中。
创建 If 和 Else if 容器时,使用表达式生成器来配置对用户或端点进行评估的条件。
条件和可重复使用的条件将添加到表达式生成器中,并使用与任何其他节点中的条件相同的对话框以相同方式进行配置。您可将任意数量的条件添加到表达式生成器中,并向其应用与任何其他节点中的条件相同的 AND 和 OR 规则。对于条件可以应用于哪些触发器的情况,常规规则同样适用。例如,无法在“计算机启动”触发器中创建“用户”条件。
- 选择条件或可重复使用的条件下拉列表,然后选择要添加到表达式生成器中的必需条件。
- 根据需要,为条件选中失败时停止子节点和已启用复选框。必须启用至少一个条件。
- 重复步骤 3 至 4 以添加更多条件。
- 在表达式生成器中输入描述。此文本是必填项,用于命名配置中的第一个 (If) 条件。
- 输入 If 组描述。此文本用于命名配置中的条件组。
-
单击确定。
系统即会在选定节点中创建 If Else 组。该组包含表达式生成器中配置的 If 条件和自动创建的 Else 区段。
- 选择 If 条件,然后通过相应的选项卡添加所需的操作和条件。多个操作和条件可以在同一级别添加,也可以根据需要嵌套到多个级别。
- 选择 Else 区段并添加所需的操作和条件。多个操作和条件可以在同一级别添加,也可以根据需要嵌套到多个级别,或者也可以将该区段留空。如果 Else 区段留空,同时不满足任何 If 和 Else If 条件,则完成组处理时不会执行任何操作。
-
根据需要,为已添加的操作和条件选中失败时停止子节点和已启用复选框。
无法剪切、复制、粘贴 If 条件和 Else 区段。但是对于其中的条件和操作,可以如同正常处理操作和条件一样剪切、复制、粘贴。
以下配置显示默认的 If Else 组,其中包含一个 If 条件和一个 Else 区段:
触发器激发后,组的评估方法如下:
- 满足 If 条件 - 执行相关操作并停止正在处理的组评估。
- 不满足 If 条件 - 忽略该操作并执行 Else 操作。
- 操作与 Else 区段无关 - 不对整个组执行任何操作。
若要添加额外的评估级别,可将进一步的条件添加到 If 条件和 Else 区段:
触发器激发后,组的评估方法如下:
- 满足 If 条件 - 评估子条件。如果满足此条件,系统将执行相关操作并停止组处理。如果不满足子条件,系统将评估 Else 区段。
- 满足 Else 子条件 - 执行相关操作并停止处理。
- 不满足 Else 子条件 - 不对整个组执行任何操作。
创建 Else If 条件
Else If 条件是可选的 If 条件,可以添加在 If 条件和 Else 区段之间。Else If 条件可以应用任何数量的条件和操作,因此其工作方式与 If 条件完全相同。
- 选择 If 或现有的 Else If 条件。
- 在“条件”功能区上,选择流控制 > Else If 条件。
- 单击条件或可重复使用的条件下拉列表,然后选择所需条件。可根据需要向表达式生成器添加任何数量的条件。
- 输入描述。此文本是必填项,用于命名组中的 Else If 表达式。
-
单击确定。
Else If 条件创建完成。
-
选择 Else If 条件,然后从“操作”选项卡添加所需的操作。可根据需要添加多个操作。
可在配置的同一级别中添加多个 Else If 条件。若要添加进一步的 Else If 条件,请重复上述流程。
Else If 条件的工作方式与 If 条件相同;如果满足条件,则执行相关操作并停止对组的评估;如果不满足条件,则忽略操作并评估下一个 Else If 条件或 Else 区段。
可以剪切、复制、粘贴 Else If 条件以及其中的操作和条件。
以下示例组在登录时对用户组进行评估,并在 C 盘上创建相关的文件夹。
当“管理员”用户组中的用户登录到受管端点时,系统会执行以下评估:
-
用户是否为“用户”组的成员?否。
不应用相关操作,而是评估下一个条件。
-
用户是否为“管理员”组的成员?是。
执行与该条件相关的操作;在用户的 C 盘上创建一个名为 Administrators 的文件夹。由于用户满足相应条件,因此系统不会对该组执行进一步评估。
当“开发人员”用户组中的用户登录到受管端点时,系统会执行以下评估:
-
用户是否为“用户”组的成员?否。
不应用相关操作,而是评估下一个条件。
-
用户是否为“管理员”组的成员?否。
不应用相关操作,而是评估下一个条件。
-
用户是否为“高级用户”组的成员?否。
不应用相关操作,而是评估下一个条件。
-
用户不是条件中指定的任何用户组的成员。
默认应用 Else 操作,并在用户的 C 盘上创建一个名为 Guests 的文件夹。
失败时停止子节点和 If 条件
失败时停止子节点选项可防止失败操作继续执行任何相关的子操作或条件。常规失败时停止子节点行为适用于 If 条件中的操作和条件。但是,失败时停止子节点不适用于组级别,也不适用于以下任意情况:
- If 条件
- Else If 条件
- Else 区段
无法为这些条件和容器选中“失败时停止子节点”复选框。
删除 If 条件
以下删除规则适用于 If 条件:
- 禁止从组中删除 If 条件
- 禁止从组中删除 Else 区段
- 可以删除 Else If 条件,使用 Ctrl 或 Shift 选择时可以删除多个 Else If 条件。如果选择中包含 If 条件或 Else 区段,则删除操作将不起作用
计数器
计数器条件允许子操作和条件在单一会话中运行指定的次数。例如,可以将操作设置为仅在会话中某一应用程序前三次使用时运行。如果三次后再运行应用程序,则操作不会运行。
单个触发器中存在多个计数器条件时,处在层次结构最上层的条件会覆盖所有子条件。
例如在下面的示例中,所有操作均会按照第一个条件的规定只运行一次。子条件中规定的每次会话运行两次则会被忽略。
“流控制”会替换 8.0 版控制台中的“运行一次”条件,而且可将计数器设置为 1 进行复制。从 8.0 版升级时,所有“运行一次”条件都会自动升级为“流控制”条件。
创建计数器条件
- 在“策略配置”导航窗格中,选择节点或创建新节点。
- 可以将计数器条件添加到所有触发器,但以下情况除外,因为这些条件仅在每个用户会话或端点启动时运行一次:
- 计算机启动
- 计算机关闭
- 用户登录
- 用户注销
- 在工作区中,选择一个操作或条件。
- 在“条件”功能区中,选择流控制 > 计数器,然后选择子条件和操作的运行次数。可以添加的最小值为 1,最大值不限。
- 单击确定。