技术论文:部署 Google Chrome

概述

Google Chrome 是现今最受欢迎的浏览器之一,是许多 Citrix Virtual Apps and Desktops 环境的必备工具。Google Chrome 在推出时主要面向使用者和桌面操作系统,但如今,它在企业中很常见,并且越来越多的管理员正在他们的 Virtual Apps and Desktops 环境中部署该浏览器。这促使 Google 在 2017 年发布了新的 Chrome Enterprise Bundle 软件包,比过去的迭代版本相比,该软件包对企业部署更加友好。要正确安装和配置 Google Chrome,您需要了解一些细节。本文向您展示了在贵组织中成功部署、配置和优化 Google Chrome 的推荐步骤。

安装

首先,请下载最新版本的 Google Chrome。可以选择下载 Enterprise Bundle,也可以下载独立版本。Enterprise Bundle 包括 Chrome 浏览器和 Chrome 旧版浏览器的安装程序,以及 Microsoft 组策略模板 (ADMX) 文件。选择 32 位或 64 位版本。下载后解压 ZIP 文件。

注意:Chrome Legacy Browser Support extension(Chrome 旧版浏览器支持扩展程序)允许用户在 Chrome 与其他浏览器之间自动切换。当用户单击需要旧版浏览器才能打开的链接(例如需要 ActiveX 的站点)时,该 URL 将自动在 Chrome 的旧版浏览器中打开。

要在主映像上安装 Google Chrome,无论是托管共享还是 VDI,都请执行以下步骤:

  • 使用 MSI 安装程序安装 Chrome:msiexec.exe /i "C:\GoogleChromeStandaloneEnterprise64.msi" /qn /norestart /l*v "C:\Logs\GoogleChromeStandaloneEnterprise64.log" 如果您在 Chrome 无法连接 Internet 时遇到问题,请添加 MSI 参数 NOGOOGLEUPDATEPING=1
  • 可选:使用 MSI 安装程序安装 Chrome 旧版浏览器支持扩展程序:msiexec.exe /i "C:\LegacyBrowserSupport_4.7.0.0_en_x64.msi" /qn /norestart /l*v "C:\Logs\LegacyBrowserSupport_4.7.0.0_en_x64.log"

我们强烈建议您始终使用最新版本的 Google Chrome。至少应使用版本 59,因为自本版本及更高版本起,Chrome 会自动检测其是否在远程桌面环境中运行并相应地调整其设置。此外,在 Citrix Studio 中发布 Chrome 比以前更加容易;您只需要发布以下命令行即可:

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

32 位和 64 位安装的安装目录相同。

不再需要在命令行中添加参数 –allow-no-sandbox-job –disable-gpu

但是,Citrix API 挂钩仍然存在问题。Google Chrome 无法正常启动,您可能必须从这些挂钩中排除 Chrome 进程 chrome.exe 和 nacl64.exe。Google 文章 Run Chrome as a virtual application(将 Chrome 作为虚拟应用程序运行)更详细地描述了这个问题。Citrix 文章 How to Disable Citrix API Hooks on a Per-application(如何在每个应用程序上禁用 Citrix API 挂钩)提供了有关如何禁用单个进程(应用程序)挂钩的分步说明。请注意,在 XenApp 和 XenDesktop 版本 7.9 及更高版本中,更改 API 挂钩配置后必须重新启动。

Citrix 文章 Chrome fails to launch in a published desktop(Chrome 无法在已发布的桌面中启动)涉及 Chrome 错误,例如“Aw, Snap!”页面崩溃和不包含任何消息的灰屏。这些错误的解决方案与上文提到的相同;进程 chrome.exenacl64.exe 需要从 Citrix API 挂钩中排除。

配置

使用组策略管理 Google Chrome

可以使用 Microsoft 组策略管理 Google Chrome。如前所述,Enterprise Bundle 包括 ADMX 文件。将 ADMX 文件和语言文件 (*.ADML) 复制到组策略管理模板的中央存储中(例如 \\contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions)。您可以在“计算机配置 \ 策略 \ 管理模板 \ Google”部分中找到所有与 Chrome 相关的策略。

管理 master_preferences 文件

Google Chrome 附带 master_preferences 文件。此文件包含默认的 Chrome 设置。管理员可以修改此文件,以确保安装后设置可用。默认情况下,master_preferences 文件位于目录 C:\Program Files (x86)\Google\Chrome\Application 中。

单个用户设置存储在用户的配置文件中存储的名为 Preferences 的文件中。此 Preferences 文件是在首次使用 Chrome 时创建的。默认情况下,此文件位于目录 C:\Users\%UserName%\AppData\Local\Google\Chrome\User Data\Default 中。

有关更多详细信息,请参阅配置其他首选项一文。

漫游用户设置

Google Chrome 提供三种漫游用户设置的方式:

  • Google 帐户
  • Chrome 漫游配置文件
  • 漫游配置文件

Google 帐户(首选方法)

您可以创建一个 Google 帐户,然后在所有可信环境和所有可信设备上使用该帐户登录(登录或注销 Chrome)。

根据文章 Common Problems and Solutions(常见问题和解决方案),这是首选方法(请参阅“我能否将我的用户的 Chrome 配置文件存储在漫游配置文件中?”部分)

默认存储和同步以下特定于用户的设置:

  • 应用程序
  • 自动填充
  • 书签
  • 扩展
  • 历史记录
  • 密码
  • 设置
  • 主题和壁纸
  • 打开标签页
  • 使用 Google Pay 的信用卡和地址

用户可以自定义要同步的设置(同步您的帐户设置)。

Chrome 漫游配置文件

如果您无法选择使用 Google 帐户同步用户设置,请改为使用 Chrome 漫游配置文件。正如在 Using Chrome on roaming user profiles(在漫游用户配置文件中使用 Chrome)一文中所解释的那样,书签、自动填充数据、密码、每台计算机的浏览历史记录、浏览器首选项和已安装的扩展程序等设置可以存储在名为 profile.pb 的文件中。默认情况下,此文件存储在目录 C:\Users\%UserName%\AppData\Roaming\Google\Chrome 中,但可以更改默认目录。

包括 Citrix Profile Management 在内的所有配置文件解决方案都会同步目录 C:\Users\%UserName%\AppData\Roaming (= %AppData%),从而确保文件 profile.pb 也得到同步。有三种方法可以启用 profile.pb 文件的创建:

  • 在“用户或计算机配置 \ 策略 \ 管理模板 \ Google \ Google Chrome”中启用组策略设置“Enable the creation of roaming copies for Google Chrome profile data”(启用为 Google Chrome 配置文件数据创建漫游副本)。
  • 在注册表项 HKEY_LOCAL_MACHINE\Software\Policies\Google\ChromeHKEY_CURRENT_USER\Software\Policies\Google\Chrome 中将注册表值 RoamingProfileSupportEnabled 设置为 00000001,如 Chromium.org 上的 Policy List(策略列表)一文中的 RoamingProfileSupportEnabled 部分中所述。
  • 在 Chrome 快捷方式中的 Chrome.exe 中添加命令行标志 –enable-local-sync-backend。有关详细信息,请参阅 Using Chrome on roaming user profiles(在漫游用户配置文件上使用 Chrome)一文。

有三种方法可以更改 profile.pb 文件的默认目录:

  • 在“用户或计算机配置 \ 策略 \ 管理模板 \ Google \ Google Chrome”中启用组策略设置“Set the roaming profile directory”(设置漫游配置文件目录)。
  • 在注册表项 HKEY_LOCAL_MACHINE\Software\Policies\Google\ChromeHKEY_CURRENT_USER\Software\Policies\Google\Chrome 中将注册表值 RoamingProfileLocation 中添加配置文件目录,如 Chromium.org 上的 Policy List(策略列表)一文中的“RoamingProfileLocation”部分中所述。
  • 在 Chrome 快捷方式中的 Chrome.exe 中添加命令行标志 –local-sync-backend-dir=path_to_directory。有关详细信息,请参阅 Using Chrome on roaming user profiles(在漫游用户配置文件上使用 Chrome)一文。

漫游配置文件

那么,如果用户未使用 Google 帐户登录或者未配置 Chrome 漫游配置文件 (profile.pb),会发生什么?在此类情况下,Google Chrome 会将所有用户数据存储在目录 C:\Users\%UserName%\**AppData\Local**\Google\Chrome\User Data 中(另请参阅 Chromium 文章用户数据目录)。默认情况下,此目录由 Citrix Profile Management 同步。

这种方法有其缺点,应谨慎使用。正如文章 Common Problems and Solutions(常见问题和解决方案)中所述,Chrome 用户配置文件不向后兼容。如果您尝试使用不匹配的配置文件和 Chrome 版本,则可能会遇到崩溃或数据丢失的情况。如果将 Chrome 配置文件同步到具有不同版本的 Chrome 的多台计算机上的漫游配置文件或网络驱动器,则通常会出现这种不匹配情况。

简而言之,重要的是不要将不同版本的 Chrome 混合到一个漫游配置文件中。如果要使用此方法同步用户的设置,请务必为每个环境或设备类型创建单独的漫游配置文件。这种方法可能适用于贵组织,但请自担风险。

请注意,Citrix 建议排除以下四个子文件夹:

  • !ctx_localappdata!\Google\Chrome\User Data\Default\Cache
  • !ctx_localappdata!\Google\Chrome\User Data\Default\Cached Theme Images
  • !ctx_localappdata!\Google\Chrome\User Data\Default\JumpListIcons
  • !ctx_localappdata!\Google\Chrome\User Data\Default\JumpListIconsOld

优化

禁用自动更新

在非永久性计算机上,不应允许 Chrome 自动更新。只有在修改或创建主映像或更新应用程序层 (Citrix App Layering) 时,才允许安装更新。要禁用自动更新,请按如下所示进行操作:

  • 在包含您的生产工作线程的 Active Directory 中的组织单位上的“计算机配置 \ 策略 \ 管理模板 \ Google \ Google Update \ 应用程序 \ Google Chrome”部分中禁用组策略设置“Update policy override”(更新策略覆盖)。
  • 禁用以下服务和计划的任务(负责自动更新):
  • Google Update Service (gupdate)
  • Google Update Service (gupdatem)
  • GoogleUpdateTaskMachineCore
  • GoogleUpdateTaskMachineUA

禁用 Active Setup

Chrome 还会创建一个 Active Setup 项目。正如 Citrix CTP Helge Klein 所解释的那样:“Active Setup 是一种在登录初期为每位用户执行一次命令的机制。某些操作系统组件(例如 Internet Explorer)使用 Active Setup 为首次登录的新用户设置初始配置。“ Active Setup 在登录时由 explorer.exe 进程运行,这意味着它不适用于已发布的应用程序。通常,我建议完全禁用 Active Setup 以缩短用户登录时间。如果您想在用户登录时运行一次 Chrome Active Setup 命令,我建议使用登录脚本,该脚本会自动从 stubpath 注册表值中读取命令行并运行该命令。

删除 Chrome 桌面图标

您可以配置的最后一个项目是删除自动创建的桌面图标。这需要两个步骤:

  • 删除位于目录 %Public%\Desktop 中的快捷方式文件 Google Chrome.lnk,该文件默认指向 C:\Users\Public
  • 将以下行添加到 Chrome 的 master_preferences 文件(前面在“配置”部分中已有说明),以防止为新用户创建快捷方式:
    • "create_all_shortcuts": false,
    • "do_not_create_desktop_shortcut": true,
    • "do_not_create_quick_launch_shortcut": true

内存和 CPU 优化

浏览器可能会占用大量内存和 CPU 资源,Chrome 也不例外。在本机客户端上,这可能不是什么大问题,但这是在 Citrix Virtual Apps and Desktops 环境中,(通常)所有工作线程都是虚拟机,共享底层硬件。资源密集型应用程序会降低每台物理主机的最大用户密度。

您是否知道 Chrome 自带任务管理器,可让您查看每个单独的选项卡标签页的资源消耗量?要访问 Chrome 任务管理器,请使用快捷方式 Shift + Esc 或进入菜单(三个垂直圆点),然后导航到“更多工具 \ 任务管理器”。任务管理器允许您确定哪些 Web 页面消耗的资源最多。

可以降低 Chrome 的内存和 CPU 使用率:

  • 首先,请使用 Citrix Workspace Environment Manager (WEM)。CPU 管理内存管理功能降低了许多进程和应用程序(包括 Chrome)的内存和 CPU 使用率。
  • 降低 Chrome 占用空间的另一种方法是使用 Chrome 扩展程序来管理标签页以释放系统资源。这些扩展程序会暂停未使用的选项卡,从而降低内存和(尤其是!)CPU 消耗量。测试这些插件并使用 Chrome 任务管理器查看每个暂停的标签页的资源消耗量如何显著降低。
  • 如果您的物理主机带有图形处理器 (GPU),则某些处理任务会转移到 GPU,从而释放 CPU。Citrix CTP Helge Klein 写了两篇关于此主题的精彩文章:Impact of GPU Acceleration on Browser CPU Usage(GPU 加速对浏览器 CPU 使用率的影响)和 Comparison: CPU & GPU Usage of 4 Browsers(比较:4 个浏览器的 CPU 和 GPU 使用率)。

管理 Chrome 扩展程序

在构建您的工作线程主映像(无论是托管共享还是 VDI)时,您可能倾向于添加所需的 Google Chrome 扩展程序。请勿执行此操作!可以使用 Microsoft 组策略管理和部署 Chrome 扩展程序。更重要的是,Chrome 扩展程序是基于每个用户安装的!您无需更新映像即可添加或删除扩展名。如果您通过策略添加大量扩展程序,则应注意,这可能会对 Google Chrome 的启动时间产生负面影响。

安装目录如下:C:\Users\%UserName%\AppData\Local\Google\Chrome\User Data\Default\Extensions

使用 Citrix Provisioning Server (PVS) 部署映像时,使用 Microsoft 组策略来管理扩展程序也同样有效,而不仅仅是 Machine Creation Services (MCS)。

有关如何使用 Microsoft 组策略管理 Chrome 扩展程序的更多详细信息,请参阅 Deploying Google Chrome extensions using Group Policy(使用组策略部署 Google Chrome 扩展程序)一文。

技术论文:部署 Google Chrome