App Layering

为 Azure 中的分层准备 OS 映像

本主题介绍如何准备干净的操作系统映像,以便将其导入新的操作系统层。开始之前,请确保您满足要求。在准备映像时,如果您认为操作耗时过长,可以加快 Microsoft Ngen.exe 操作

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

注意:

将无人参与文件与 Machine Creation Services™ (MCS) Azure 连接器一起使用。如果存在无人参与文件,App Layering 软件会将其删除,因为对于 MCS Azure 连接器而言,它既非必需也非推荐。

在虚拟机上安装操作系统

  1. Microsoft Azure 门户中,通过选择以下选项,从 Windows Server 远程桌面映像创建新的虚拟机: 新建 > 计算 > 虚拟机
  2. 完成“创建虚拟机”向导:

    基本信息:

    • 名称: 为新计算机指定的名称必须符合 Azure 命名约定。
    • 用户名和密码: 指定的新服务器计算机的用户名和密码将用于创建的包含此操作系统层的任何打包计算机。
    • 资源组位置: 请确保“资源组位置”的值与您在连接器配置中配置的“存储帐户位置”匹配。
  3. 选择所需的网络设置。
  4. 查看摘要并创建虚拟机。
  5. 登录到新的虚拟机,然后重新启动计算机。
  6. 安装所有重要更新。请务必重新启动系统并检查更多更新。某些更新仅在安装其他更新后才可用。
  7. 运行 Windows Ngen.exe。
  8. 删除或重命名 C:\Windows\OEM 中的 Unattend 文件。
  9. 通过选择以下选项清除 Windows 自动更新: 控制面板 > 系统和安全 > Windows 更新 > 更改设置
  10. 确保此计算机未加入域。
  11. 启用内置管理员并选中“密码永不过期”。
  12. 如果这是服务器操作系统,请在 PowerShell 中运行以下命令:

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

在映像上运行 App Layering OS Machine Tools

  1. 在新计算机上,打开 Web 浏览器,导航到下载中心并下载 OS Machine Tools。
  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) 许可。

    Set KMS version image

要为 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. 在继续操作之前,请确保新的操作系统计算机处于以下状态之一:
    • 正在运行
    • 已停止
    • 已停止(已解除分配)

如有必要,加快 Microsoft Ngen.exe 操作

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

Ngen.exe 是 Microsoft 本机映像生成器,它是 .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

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

    ngen eqi 3

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

    You can use the Task Manager to see if an instance of MSCORSVW.EXE is running. If it is, allow it to complete, or run ngen update eqi 3.

    注意: 请勿重新启动以停止任务。请让任务完成!

  4. 确保所有 Ngen.exe 进程都已运行完成。
为 Azure 中的分层准备 OS 映像