App Layering

准备操作系统映像以便在 Azure 中进行分层

本主题介绍如何准备一个干净的操作系统映像,以便导入到新的操作系统层。在开始之前,请确保满足要求。在准备映像时,如果你认为花了太长的时间,则可以加快 Microsoft Ngen.exe 操作

如果使用 Windows 10 并且运行 Citrix Provisioning、计算机创建或视图,则可以通过删除 Windows 10 内置应用程序加快将桌面启动时间。但是,我们建议删除 新版本 的操作系统层上的应用程序,而 是在操作系统映像本身中。

注意:

在 Azure 中使用无人参与文件。App Layering 软件将删除无人参与文件(如果存在),因为在 Azure 中不是必需的,也不推荐该文件。

在虚拟机上安装操作系统

  1. Microsoft Azure 门户网站 中,通过选择: 新建 > 计算 > 虚拟机 > 从库 > Windows Server Remote Desktop Session Host Windows Server 2012 R2 从 Windows Server Remote Desktop Session Host Windows Server 2016 or 2012 R2 映像创建新虚拟机:
  2. 从 “选择部署模型”选项列表中选择 “ 资源管理器 ”,然后单击 “ 创建 ”。

    注意:

    App Layering 软件不支持 “选择部署模型”选项列表中的 “经典”选项。

  3. 完成“创建虚拟机”向导:

    基础知识:

    • 名称: 为新计算机指定的名称必须符合 Azure 命名约定。
    • 用户名和密码: 指定的新服务器计算机的用户名和密码用于创建的包含此操作系统层的任何打包机。
    • 资源组位置: 确保资源组位置的值与您在连接器配置中配置的存储帐户位置匹配。

    设置

    • 存储: 在 “使用托管磁盘”下,选择 “ ”,然后指定存储帐户。
  4. 选择所需的网络设置。
  5. 查看摘要并创建虚拟机。
  6. 登录到新虚拟机,然后重新启动计算机。
  7. 安装所有重要更新。请务必重新启动系统并检查更多更新。某些更新仅在安装了其他更新后才可用。
  8. 运行 Windows Ngen.exe。
  9. 删除或重命名 C:\Windows\OEM 中的无人参与文件。
  10. 通过选择以下操作清除 Windows 自动更新: 控制面板 > 系统和安全 > Windows 更新 > 更改设置
  11. 确保此计算机未加入域。
  12. 启用内置管理员并选中 密码永不过期
  13. 如果这是服务器操作系统,请在 PowerShell 中运行以下命令:

    Set-ExecutionPolicy Unrestricted
    Enable-PSRemoting
    <!--NeedCopy-->
    

在映像上运行 App Layering 操作系统机器工具

  1. 在新计算机上,打开 Web 浏览器,导航到下载中心并下载操作系统机床。
  2. 将以下 zip 文件下载到操作系统映像中:

    Citrix_App_Layering_OS_Machine_Tools_20.x.x.exe
    <!--NeedCopy-->
    
  3. 运行该文件,并将文件复制到:

    c:\windows\setup\scripts

    注意:

    必须将文件提取到上述目录。不要更改目录。

如果使用密钥管理服务,请配置许可证激活

提取脚本后,SetKMSVersion 实用程序会询问您选择是否使用密钥管理服务 (KMS) 许可。

注意: 将映像发布到同时使用 KMS 和基于 Active Directory 的激活 (ADBA) 的环境中会导致激活问题。

  1. 在以下对话框中,选择是否使用密钥管理服务 (KMS) 许可。

    设置 KMS 版本映像

要为 KMS 配置脚本,请执行以下操作。

  1. 导航到:

    c:\windows\setup\scripts

  2. 以管理员身份运行 SetKMSVersion.exe 以在 c:\windows\setup\scripts\kmsdir 文件夹中创建脚本文件。

当操作系统启动时,将运行相应的 KMS 激活脚本。

安装 App Layering 服务

  1. 在新计算机上,导航到 C:\Windows\Setup\scripts 并运行 setup_x64.exe 以在操作系统计算机上安装 App Layering 驱动程序。
  2. 安装会提示您输入 Unattend.xml 文件所在的位置(默认位置为 C:\windows\panther)。
  3. 确保此计算机未加入域。
  4. 在操作系统计算机上执行挂起的重新启动,以便您可以将此映像导入到层中。
  5. 请确保新操作系统计算机处于以下状态之一,然后再继续操作。
    • 正在运行
    • 已停止
    • 已停止(取消分配)

加快微软 Ngen.exe 操作(如有必要)

安装完所有软件更新后,您必须允许 Ngen.exe 基本上将 .NET 字节码重新编译为本机映像并构建注册表项来管理它们。

Ngen.exe 是 Microsoft Native Image Generator,它是 .NET 系统的一部分。根据安装的软件以及 Windows 在配置中检测到的内容,Windows 确定何时运行 Ngen.exe

重要: Ngen.exe 正在运行时,必须让它完成。中断的 Ngen.exe 操作可能会导致 .NET 组件无法正常运行或 .NET 系统中出现其他问题。

通常情况下, Ngen.exe 是在有前台活动时暂停的后台操作。如果要加快 Ngen.exe 操作,可以将任务带入前台以尽快完成任务。

要将任务置于前台,请执行以下操作:

  1. 以管理员身份打开命令提示符。
  2. 转到当前正在使用的版本的 Microsoft.NET\Framework 目录:

    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy-->

  3. 输入以下 Ngen.exe 命令以运行所有已排队的项目。此命令在构建程序集之前处理排队的组件安装。

    ngen eqi 3 <!--NeedCopy-->

    Ngen.exe 任务会在命令提示符下移动到前台,并列出正在编译的程序集。如果你看到编译消息,这是可以的。

    您可以使用任务管理器查看 MSCORSVW.EXE 的实例是否正在运行。如果是,请允许它完成或运行 ngen update eqi 3

    警告: 不要重新启动以停止任务。允许任务完成!

  4. 确保所有 Ngen.exe 进程都已运行至完成。
准备操作系统映像以便在 Azure 中进行分层