App Layering

将应用程序层部署为弹性层

借助 Elastic Layers 功能,您可以在基础映像之外提供目标范围较窄的应用程序。事实上,您可以根据需要将层分配给特定用户。在映像模板中启用弹性层设置后,登录到已发布映像的用户可以被指定为弹性层。

关于弹性层

弹性层 是您分配给单个用户和组以便按需交付的应用程序层。除了基础映像中包含的应用程序之外,用户还会收到分配给他们的弹性层。

弹性层允许您为每个用户提供一组唯一的应用程序以及基础映像中包含的常用应用程序。在会话主机上,会跨会话使用弹性层。在独立桌面上,弹性层可跨浮动池和共享组使用。

根据用户授权,弹性层会在登录时传递到用户的桌面。您可以为会话主机上的用户以及独立桌面上的用户分配弹性层,只要映像是使用 App Layering 发布的。

弹性层分配

每次组成员登录桌面时,您都可以向他们提供特定的应用程序层版本。您可以将应用程序层版本指定为弹性层。然后,层的副本将存储在设备的网络文件共享中,并按需传递给分配的 AD 用户和组,以及他们通过基础映像接收的层。

要使用此功能,您需要添加 弹性分配 ,指定哪些用户和组接收每个应用程序层。然后,在启用“弹性分层”设置的情况下发布基础映像。

用户如何访问分配给他们的弹性层

当用户登录其会话或桌面时,其弹性层的图标会作为快捷方式显示在桌面上。

在以下情况下,用户会收到弹性层:

  • 用户(管理控制台中的 AD 用户)被分配了层。
  • 用户所属的 AD 组将分配该层。
  • 用户登录到的计算机是接收弹性层的 AD 组的成员。
  • 用户登录的计算机与通过管理控制台分配给层的 AD 组关联。

为用户分配了多个版本的层

将层直接分配给用户,并间接分配给一个或多个用户组时,他们将收到最新的直接分配的版本。例如:

  • 如果为用户分配了 版本 2,并且该用户所属的组被分配了 版本 3,则该用户将获得 版本 2

  • 如果为用户所属的两个或多个组分配了同一层的不同版本,则用户将收到所分配层的最新版本。

当用户在基础映像和弹性层中接收应用程序层时

当应用程序层包含在基本映像中时,请勿将其作为弹性层分配给同一用户。如果用户最终确实分配了两种方式的同一层,则无论版本如何,他们都会收到弹性层。

必备条件

  • 启用弹性层的任何分层映像都需要 .NET 框架 4.5。
  • 您要指定为弹性层的应用程序层。

注意事项

与分层映像具有相同操作系统层的应用程序层

为了获得最佳效果,将应用程序层指定为弹性层时,可以分配与分层映像中使用的操作系统层相同的应用程序层。但是,使用这种传统方法,您可能需要创建和管理某些应用程序层的额外副本,每个副本用于部署的操作系统层。

弹性层的操作系统层切换

要在使用不同操作系统层的分层映像上为用户分配弹性层,您需要在应用程序层属性中启用此功能,方法是选中“允许将此应用程序层弹性分配给所有分层映像,无论操作系统层如何”复选框。切换操作系统层时,所有弹性分层限制均有效。

什么时候可能效果很好

适用于可以安装在任何操作系统上的简单应用程序。 示例:Notepad++、WinRAR、7Zip

当它可能无法正常工作时

适用于安装取决于所安装操作系统的复杂应用程序。 示例:

  • 如果您使用 Windows 10 操作系统层来创建应用程序层,并将映像指定为 Server 2019 操作系统层,则应用程序可能无法按预期运行。
  • 如果新操作系统未安装正确版本的 .NET,则依赖于特定版本的 .NET 的应用程序可能无法成功运行。

注意:

  • 建议您使用相同的操作系统类和彼此接近的操作系统版本。示例:您可以使用两个相隔一周的 Windows 10 22H2 修订版。
  • 使用不同的操作系统映像时,必须验证弹性分配给任何用户的层。如果层未经过验证,则必须使用用于映像的操作系统层创建应用程序层,并将层分配给用户,而无需选中“允许将此应用程序层弹性分配给所有分层映像,无论操作系统层如何”复选框。
  • 向应用程序层添加版本时,必须使用原始应用程序层中包含的操作系统层。

弹性分层限制

您不能将弹性层用于以下用途:

  • Microsoft Office、Office 365、Visual Studio.
  • 使用驱动程序存储的驱动程序的应用程序。示例:打印机驱动程序。
  • 修改网络堆栈或硬件的应用程序。示例:VPN 客户端。
  • 具有引导级驱动程序的应用程序。示例:病毒扫描仪。

应用程序层 不会 保留您为需要它的应用程序添加的本地用户或管理员,但操作系统层会保留这些用户或管理员。因此,在安装应用程序之前,请将本地用户或管理员添加到操作系统层。应用程序层工作后,您可以将其指定为弹性层。

弹性层兼容模式

当用户登录到使用分层映像置备的桌面时,弹性层将在用户登录后合成到映像中。如果弹性层加载不正确,请尝试启用 弹性层兼容模式。启用兼容模式后,弹性层会在登录完成之前开始加载。

重要提示:

使用已发布的应用程序时需要兼容模式,因为该层必须在启动前挂载。否则,我们建议禁用兼容模式,除非弹性层无法按预期运行。在太多层上启用此设置会减慢登录时间。

弹性层在其下运行的用户帐户

默认情况下,当第一个分配弹性层的用户登录到其桌面时,将挂载分配给该用户的所有弹性层。登录到托管层的计算机的其他用户使用与第一个用户相同的连接。第一次登录后连接持续 10 小时,然后所有弹性层都断开连接。在基于班次的环境中,第二班的用户将在班次内大约两小时(或者在初始用户登录第一班班次后 10 小时)受到影响。

如果要在基于 Shift 的环境中提供弹性层,则可以更改运行所有弹性层的默认帐户。您可以将所有 Elastic Layers 的默认用户更改为在本地 SYSTEM 帐户下运行的 ulayer 服务,而不是在第一个登录用户下运行。SYSTEM 帐户对应于访问共享时运行 ulayer 服务的计算机的域计算机帐户。包含弹性层的文件共享需要所有用户或每个计算机帐户的 read-only 访问权限。

  • 要更改要在其下运行的弹性层的帐户,请创建注册表 DWORD 值,并将其设置为 1

    HKEY_LOCAL_MACHINE\Software\Unidesk\Ulayer:AsSelfAppAttach to **1**

  • 要恢复到在第一个登录用户下运行弹性层,请将注册表 DWORD 值设置为 0

    HKEY_LOCAL_MACHINE\Software\Unidesk\Ulayer:AsSelfAppAttach to **0**

  • 要移除此设置以使弹性层只能在默认模式下运行,请移除 DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Unidesk\Ulayer:AsSelfAppAttach

在基础映像上启用弹性层

您可以通过配置用于发布基本(分层)映像的映像模板来启用弹性层:

  1. 在管理控制台中,选择用于发布分层映像的映像模板。

  2. 选择 映像 选项卡,然后选择要启用弹性分层的映像模板。

  3. 从操作栏中选择 编辑模板

  4. 选择分 层映像磁盘 选项卡。

  5. 在“弹性分层”字段中,选择“应用程序分层”。

  6. 选择“确认并完成”选项卡,然后单击“保存模板并发布”。

  7. 使用 Provisioning 系统分发虚拟机。

    当用户登录时,桌面会为其每个弹性应用程序层包含一个图标。

在应用程序层上运行弹性配合分析器

在弹性分配应用程序层之前,请使用 Elastic Fit Analyzer 来确定层分配成功的可能性。

弹性拟合分析

在层详细信息中,Elastic Fit 等级表示弹性分配层起作用的可能性。

良好的弹性贴合。该层在弹性部署时起作用。

弹性贴合通道

弹性贴合度不佳。弹性部署层时,弹性交付层不太可能起作用。层的行为可能与在分层映像中部署时的行为不同。

弹性贴合失败

弹性贴合细节

您可以通过展开弹性拟合分析来了解有关应用程序层弹性拟合评级的更多信息。如果弹性拟合不理想,则会显示违反规则的列表。

低严重性警告。对于大多数应用程序来说,弹性地交付层不太可能导致行为或功能发生任何变化。

低严重性警告

中等严重性警告。弹性地交付层可能会导致某些应用程序的行为或功能发生细微变化。

中等严重性警告

高严重性警告。弹性地交付层可能会导致许多应用程序的行为或功能发生重大变化。

高严重性警告

注意:

如果您收到检测到主密钥文件更改的警告,并且您没有故意更改该文件,请将注册表位置 HKLM\System\ControlSet001\Services\Uniservice 中的 DeleteMasterKeys 标志值设置为 1 (true)。现在,当应用程序层最终完成时,主密钥文件将从该层中删除。此值不是永久性的,仅适用于每个修订版本。每次创建层的修订版本时都必须对其进行设置。

分析应用程序层的弹性配合

最终确定层版本的所有新版本时,都会对其弹性分层兼容性进行分析。要分析现有应用程序层的弹性配合,请执行

  1. 登录到管理控制台。
  2. 选择“层”>“应用程序层”。
  3. 选择要分析的层,然后单击 分析层
  4. 在选择版本选项卡上,选择要分析的层版本。
  5. 在确认并完成选项卡上,单击 分析层版本。分析需要几秒钟。
  6. 要查看 Elastic Fit Analysis,请选择应用程序层模块,将鼠标指针移到层图标上,然后单击 信息 图标。
  7. 展开每个层 版本的版本信息 ,然后查找 Elastic Fit 等级。
  8. 有关详细报告,请展开 弹性版型详情。如果弹性拟合不理想,将显示违反规则的列表。
  9. 您可以通过单击确认层不太可能按预期工作的按钮来显示 AD 树并隐藏违反的规则。

从早期版本升级

从早期的 App Layering 版本升级后,弹性拟合详细信息显示尚未分析现有层版本。这些版本具有单一的“高”严重程度 的弹性贴合细节和 的弹性贴合度。要获得准确读数,请在现有层版本上运行分析。

弹性地将应用程序层分配给 AD 用户和组

首次弹性分配应用程序层时,我们建议您从 Notepad ++GIMP之类的简单应用开始。

  1. 以管理员用户身份登录管理控制台,然后选择 层 > 应用程序层
  2. 选择 打算包含在基础映像中的应用程序层,然后选择要分配的应用程序版本。
  3. 单击“更新分配”。
  4. 选择要分配给用户的应用程序层版本。
  5. 跳过 映像模板分配。这是为了将层分配给映像模板。
  6. 选择您想要接收此应用程序层版本的用户和组。
  7. 查看您的选择,然后单击“分配层”。

当用户登录时,分配给他们的每个弹性层都有一个图标。

通过计算机分配和关联向用户弹性分配应用程序层

您可以通过将计算机添加到 AD 组或将计算机与 AD 组关联来为计算机分配层。然后弹性地将应用程序层分配给 AD 组。

成功登录到该计算机的每个用户都可以使用分配给该计算机的层。App Layering 服务每 10 分钟扫描一次计算机的 AD 组成员资格和关联的更改。当用户登录时,他们会看到已分配的每个弹性应用程序层的图标。

使用 Active Directory 将计算机添加到 AD 组

假设您的环境中启动了已发布的分层映像,则可以将计算机添加到 AD 组,然后将弹性层分配给 AD 组。

  1. 使用 Active Directory (AD) 将计算机添加到 AD 组。

  2. 选择 打算包含在基础映像中的应用程序层,然后将该层弹性分配给 AD 组。

  3. 您可以等待 AD 传播更改并等待 App Layering Service,也可以通过执行以下操作 之一 强制App Layering 服务更新其计算机组列表:

    • 等待 App Layering 服务检测更改(默认情况下,在 10 分钟内)。

    • 重新启动 App Layering 服务。

    • 重新启动 App Layering 服务计算机。

    • 运行 refresh.groups 命令:

      C:\Program Files\Unidesk\Layering Services\ulayer.exe refresh.groups

示例

首先是 AD 用户、AD 组以及使用分层映像置备的计算机。

  • AD 用户: 肯尼亚
    • Kenya 没有弹性任务。
  • AD 组:市场营销
    • 营销 组包括成员肯尼亚。
  • 机器:ElasticTestMachine
    • ElasticTestMachine 基础映像包括 MS Office 应用程序层

在此示例中,您可以将 Chrome 应用程序层 弹性分配给 ElasticTestMachine

  1. 在 AD 中,您可以将计算机 ElasticTestMachine 添加到营销 AD 组中。
  2. 在管理控制台中,您可以将 Chrome 应用程序层 弹性分配给 营销 组。
  3. 作为营销团队成员的 Kenya 登录 ElasticTestMachine 时,她会同时收到基础映像中的 MS Office 应用程序层Chrome 应用程序层
  4. 当任何市场营销组中的用户登录 ElasticTestMachine 时,他们还会收到两个层: MS Office(因为它位于基础映像中)和 Chrome,因为 ElasticTestMachine营销 AD 组。

管理弹性分配

您可以:

  • 添加弹性分配。
  • 更新应用程序层并弹性分配新版本的层。
  • 删除弹性分配。
  • 调试弹性分配。

更新应用程序层及其弹性分配

您已向应用程序层添加了弹性分配,并且用户正在按预期方式访问该应用程序。应用程序的新版本已发布,因此您可以使用层的新版本对其进行更新。现在,您需要将新版本分配给拥有该层的用户。

  1. 登录管理控制台并选择“层”>“应用程序层”。

  2. 选择您更新的弹性分配的应用程序层。

  3. 单击“版本信息”>“更新分配”

  4. 选择新版本。

  5. 跳过映像模板分配 选项卡。

  6. 在 Elastic Assignment( 弹性分配 )选项卡中,有一个已为选定层分配了不同版本的用户和组的列表。选择要向其分配新版本层的用户和组。

    备注:

    • 如果列表很长,请使用“搜索”字段筛选结果。
    • 如果列表为空,请单击名为“显示已使用此版本的 AD 用户和组”的复选框。此时将显示灰色的名称列表。已为这些用户分配了版本。
  7. 在“确认并完成”选项卡上,验证要接收新版本的用户和组。

  8. 单击“更新分配”。

移除层的弹性分配

  1. 登录管理控制台并选择“层”>“应用程序层”。

  2. 选择要移除任务的应用程序层,然后选择 移除任务

  3. 选择要从中移除层的已分配模板。此时将列出层的分配。

    如果列表很长,请使用“搜索”字段筛选结果。

  4. 在确认并完成选项卡上,验证是否选择了正确的映像模板以接收新版本。

  5. 单击“移除分配”。

排除弹性层问题

您可以通过查明是否正在交付层以及层是否正常工作来诊断弹性分层问题的根源。如果需要,收集数据以获得支持,如此处所述。

层交付有问题吗

在那里安装此应用程序时您期望看到的东西吗?

  • 您看到层的文件和注册表项了吗?
  • 如果应用程序应该在“开始”菜单中,它是否存在?
  • 如果您希望在用户桌面上有应用程序的快捷方式,是否有一个快捷方式?

如果您发现应用交付存在问题,您可以收集以下数据、打开案例并将数据发送给支持人员。

  1. 从以下日志中收集数据:

    • Windows 应用程序事件日志 — 在 Windows 事件查看器Windows 日志下,将应用程序事件日志导出为 EVTX 文件。
    • App Layering 服务日志 (ulayersvc.log) — C:\ProgramData\Unidesk\Logs\ulayersvc.log
  2. 收集这些注册表项的值:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Unidesk\ULayer:AssignmentFile
    • HKEY_LOCAL_MACHINE\SOFTWARE\Unidesk\ULayer:RepositoryPath
  3. 从存储库路径中收集作业 (ElasticLayerAssignments.json) 和层 (layers.json) 文件的内容。

  4. 请联系支持部门。

这个问题是否可操作

以下任何行为都可能表示弹性分层问题:

  • 应用正在交付,但无法正确启动。
  • 应用程序中的操作无法正常工作。
  • 许可问题或安全问题。
  • 应用程序启动,但后来行为不当,例如,它在启动时崩溃,或启动,但不能正常工作。

如果层的问题是可操作的,请在基础映像中测试应用程序层以排除一般的分层问题:

  1. 将应用程序层添加到映像模板,然后发布包含应用程序层的分层映像。
  2. 弹性分配层的用户身份登录,并确保应用程序在基础映像中可运行。
  3. 请联系支持部门,了解您的发现