配置端点合并

端点配置合并使用 EM 代理将保存在某个端点上的多个 AEMP 配置文件合并到一个配置中。每个配置中的节点、可重复使用的条件和消息库都将添加到合并配置中。

完成合并的过程如下:将各个配置添加到端点上的目录中,然后在清单文件中指定要合并的配置。EM 代理会监控合并目录,并在清单文件添加到目录中时自动合并各个配置。

通过端点配置合并,不同的业务部门可以在配置的特定区域中独立工作,然后各个区域可以进行添加,形成单一配置。如需对大规模配置做出略微更改,则可创建已更改区域的代码段。然后,可将该代码段合并在端点上,从而避免执行大规模配置。

在此部分:

合并中的组件

配置合并依赖于以下组件。

基础配置

每次合并均须具备基础配置 - 这是合并中的第一个配置,其他配置会添加到此配置中。合并的配置会从基础配置中获取全局特性,例如自定义设置、审核选项及任何个性化设置。

因此,在基础配置中定义未合并的设置至关重要。

默认情况下,基础配置只可设置为在端点上保存实时配置时所创建的 AEMP 文件:

%ProgramData%\AppSense\Environment Manager\Configuration.aemp

只有在 10.0 版或更高版本的 Environment Manager 中,才能合并基础配置和所有组件配置。在合并之前,应对任何旧版本配置进行升级。

组件配置

合并的配置由基础配置和一个或多个组件配置组成。组件配置是指在合并过程中添加到基础配置中的 AEMP 文件。若要加入合并,组件配置必须存储在 MergeConfigs 目录中。

来自组件的节点、预触发器、运行身份和用户消息均包含在合并中。其他设置(如审核选项)只能从基础配置中获取。只有在 10.0 版或更高版本的 Environment Manager 中,才能合并基础配置和所有组件配置。在合并之前,应对任何旧版本配置进行升级。

MergeConfigs 目录

此目录是存储要合并的组件配置的位置,也是系统在检测到有效清单时触发合并的位置。

在端点上启动 EMCoreService 时,系统会创建 MergeConfigs 目录:

%ProgramData%\AppSense\Environment Manager\MergeConfigs

此目录受安全保护,因此只有管理员才能写入内容。这可确保最终用户不会影响合并配置。

清单

清单是一个 XML 文件,其中包含要合并配置的详细信息,并可指示将哪些配置设置为基础配置。当代理检测到 MergeConfigs 目录中的清单时,将启动合并。

代理是使用 ManifestGen 命令行工具创建的。

下面是一个 merge_manifest.xml 示例文件。

<MergeManifest UseSystemBase="true" WaitForConfigs="true">

<MergeFiles>

<FileEntry Name="config2.aemp" Checksum="563621a479c06d6d357b327283320288"/>

<FileEntry Name="config4.aemp" Checksum="4bc481043e6991253de15ec6993ee43f"/>

</MergeFiles>

</MergeManifest>

清单特性和标签

属性/标签 说明
MergeManifest 配置的根节点。
MergeFiles 要包含在合并中的 AEMP 文件列表的容器标记。
FileEntry Name 标识要包含在合并中的配置。该文件必须位于 MergeConfigs 目录内才能包含在合并中。

UseSystemBase

(可选)

可以设置为 "true" 或 "false",并指示是要在合并中包含还是排除默认的 Configuration.aemp。这是位于 %ProgramData%\AppSense\Environment Manager 中的实时 Configuration.aemp 文件。如果设置为 true,则在部署清单时,基础配置必须已存在于端点上,否则合并便会失败。如果设置为 false,则 MergeFiles 列表中的第一个配置将用作基础配置,除非 BaseConfig 特性另有定义。

WaitForConfigs

(可选)

确定相应行为,前提是 MergeConfigs 目录中检测到清单 .xml,但并非所有指定配置均已存在。可设置为:
  • True - 合并将无限期等待,直到清单中引用的所有配置均已存在,然后才会完成合并。
  • False - 如果在 MergeConfigs 目录中检测到清单,但该清单引用的配置不存在,则合并将失败。
如果您使用 MSI 等安装程序将配置和清单推送到端点,建议您将此设置为 "true",因为您无法保证配置和清单的添加顺序。如果使用 SystemBase Configuration.aemp 文件,此情况不适用。如果清单合并已触发但 Configuration.aemp 不存在,则合并将失败,它不会等待基础配置。

校验和

(可选)

AEMP 文件唯一的 MD5 校验和。如果包含清单,则 MergeConfigs 文件夹中的 AEMP 文件必须具有相同的校验和才能包含在合并中。校验和不会引用基础配置。

ManifestGen 工具

ManifestGen 是一种命令行工具,可创建 XML 清单文件,用于定义和触发配置合并。该 XML 文件包含要合并的 AEMP 文件的详细信息,可以指示是将默认 configuration.aemp 还是组件配置用作合并中的基础配置。

如果输出目录中已存在 merge_manifest.xml,则该工具将失败并且不会创建新清单 - 当前清单不会被覆盖。

为了更容易使用该工具,请在高级系统属性 > 环境变量 > 路径中向 Path 环境变量添加以下位置:
%PROGRAMFILES%\AppSense\Environment Manager\Console

创建清单

  1. 保存要合并在 MergeConfigs 目录中的配置:
  2. %ProgramData%\AppSense\Environment Manager\MergeConfigs
  3. 打开命令行界面。
  4. 输入 cd %programdata%\appsense\environment manager 更改目录。
  5. 输入 manifestgen mergeconfigs\*.aemp

如果您在 MergeConfigs 文件夹中运行 manifestgen,则代理便会在清单创建后立即选中它,并立即开始合并。

如果成功,系统将在 %ProgramData%\AppSense\Environment Manager 中创建 merge_manifest.xml 文件

现在,清单便可用于触发合并及创建配置。

附加命令

ManifestGen 工具中的参数可用来更改清单并影响合并。您可以指定不同的基础配置和输出文件,为配置创建不含校验和值的清单。

后缀 说明和用途
-o 输出文件夹 - 指定 manifest.xml 文件的创建位置,例如,manifestgen mergeconfigs\*.aemp -o c:\configs 即会在 C 盘的 Configs 文件夹中创建清单。
-b 基础配置 - 确定基础配置并排除默认的基础配置。例如,manifestgen mergeconfigs\*.aemp -b config1.aemp 可创建一个清单,该清单将创建一个 Config1.aemp 设置为基础配置的合并配置。
-nc 无校验和条目 - 默认情况下,清单中列出的每个配置都有一个 MD5 校验和,它是配置的唯一标识。如果清单中的校验和与配置的校验和不匹配,则合并将失败,或者等待具有正确校验和的配置。将 -nc 后缀与 ManifestGen 工具一起使用不会列出清单中的校验和,这意味着如果配置文件名正确,则无论校验和值为何,合并都会成功。例如:manifestgen mergeconfigs\*.aemp -nc
-nw 当清单添加到 MergeConfigs 目录中时,默认行为会无限期等待,直到清单中的所有配置均已存在,然后才会执行合并。使用 -nw 后缀时,如果列出的配置在清单添加到 MergeConfigs 目录中后仍不存在,则合并将失败。例如:manifestgen mergeconfigs\*.aemp -nw。如果清单列出五个配置,但在清单添加到 MergeConfigs 目录后仅存在四个配置,则合并将失败。 如果您使用 MSI 等安装程序将配置和清单推送到端点,建议您不要使用此后缀,因为您无法保证配置和清单的添加顺序。

编辑清单

尽管清单可以在文本编辑器中进行编辑和创建,但建议您使用 ManifestGen 工具,因为它可以确保 merge_manifest.xml 文件的格式准确无误。例如,如果文件名包含 "&",ManifestGen 工具便会对其进行转义,确保它是有效的 XML 文件。

创建清单文件后,可对其进行编辑以更改属性,例如基础配置和合并应发生的顺序。

例如,命令:

manifestgen mergeconfigs / * .aemp -b mergeconfigs / config3.aemp -nc

创建一个清单,该清单不包含默认的基础配置,因而将 config3.aemp 设置为基础配置。WaitForConfigs 特性设置为默认值 "true",不包括校验和。

<MergeManifest UseSystemBase="false" WaitForConfigs="true">

<MergeFiles>

<FileEntry Name="config3.aemp" BaseConfig="true"/>

<FileEntry Name="config1.aemp"/>

</MergeFiles>

</MergeManifest>

若要编辑清单,请在文本编辑器中打开该清单,执行所需更改并保存文件。

在本例中,UseSystemBase 设置为 "true",而 BaseConfig 命令已从 Config3.aemp 中删除。合并顺序也已发生更改。

<MergeManifest UseSystemBase="true" WaitForConfigs="true">

<MergeFiles>

<FileEntry Name="config1.aemp"/>

<FileEntry Name="config3.aemp"/>

</MergeFiles>

</MergeManifest>

合并后,默认基础 configuration.aamp 文件便会作为基础配置包含在合并中,并且组件配置合并到基础配置中的顺序也会逆转。请注意,设置为基础配置的配置包括全局配置设置,例如您希望包含在合并中的自定义设置。因此,在选择不同的配置作为基础配置时应格外小心。

如果在同一清单中为配置设置 BaseConfig="true"UseSystemBase="true",则会导致冲突,并且合并将失败。

BatchConfig 工具

只有最新版本的 AEMP 文件才能包含在合并中。BatchConfig 工具可将旧的 AEMP 文件和 XML 代码段转换为正确版本的 AEMP 文件。

可以同时转换多个文件,每个输入生成一个输出文件。

如果源中的一个或多个配置已存在于输出目录中,则该工具将会操作失败,并且不会转换任何配置。

为了更容易使用该工具,请在高级系统属性 > 环境变量 > 路径中向 Path 环境变量添加以下位置:
%PROGRAMFILES%\AppSense\Environment Manager\Console

批量转换配置文件

  1. 保存或复制要转换为单个文件夹的 AEMP 和 XML 文件。
  2. 打开命令行界面。
  3. 输入 BatchConfigTool,后跟源文件夹和目标文件夹的详细信息,格式如下:

    BatchConfigTool <source directory\file type> -o <output directory>

批量转换示例

BatchConfigTool C:\Configs\Source\*.xml -o C:\Configs\Output

此示例是将源目录中的 XML 代码段转换为保存在输出目录中的当前版本 AEMP 文件。您可以使用相同的格式将旧的 AEMP 文件更新为当前版本:

BatchConfigTool C:\Configs\Source\*.aemp -o C:\Configs\Output

您还可以同时转换这两种文件类型:

BatchConfigTool C:\Configs\Source\*.aemp C:\Configs\Source\*.xml -o C:\Configs\Output

在下面的示例中,源目录中包含一个 8.3 AEMP 文件和两个 XML 代码段。转换后,输出目录包含三个当前版本的 AEMP 文件。

ð

BatchConfig 工具随 Environment Manager 控制台一起安装。不过,您也可以使用包含在 User Workspace Manager 介质中的 EnvironmentManagerPolicyTools 32 位和 64 位安装程序单独安装此工具。

审核事件 - 配置端点合并

针对配置端点合并的新审计事件已成功添加至 Environment Manager。在 Windows 事件查看器(选择 Windows 日志 > 应用程序)中查看事件时,您可以获得更多详细信息,例如导致合并失败的原因。

相关主题