你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
排查 Azure 虚拟桌面中的自定义映像模板问题
通过 Azure 虚拟桌面中的自定义映像模板,可以轻松创建自定义映像,以供在部署会话主机虚拟机 (VM) 时使用。 本文有助于排查你可能遇到的一些问题。
创建映像时的常规故障排除
Azure 映像生成器使用 Hashicorp Packer 来创建映像。 Packer 会将所有日志条目输出到名为 customization.log 的文件。 默认情况下,该文件位于 Azure 映像生成器使用命名约定 IT_<ResourceGroupName>_<TemplateName>_<GUID>
自动创建的资源组中。 可通过在模板创建阶段指定你自己的名称来替代此名称。
此资源组中有一个存储帐户,其中包含名为 packerlogs 的 Blob 容器。 该容器中有一个以 GUID 命名的文件夹,你可以在其中找到日志文件。 用于自定义映像的内置脚本条目将开始启动 AVD AIB 自定义:{Script name}:{Timestamp},以帮助查找与脚本相关的任何错误。
若要了解如何解释 Azure 映像生成器日志,请参阅排查 Azure VM 映像生成器问题。
重要
对于客户创建的任何脚本或从 Microsoft 存储库复制并修改的任何脚本或模板,Microsoft 支持部门不会处理与其相关的问题。 欢迎在我们的 GitHub 存储库上展开协作并改进这些工具,你可以从中提出问题。 有关详细信息,请参阅为什么我们不支持客户或第三方脚本?
资源组必须为空
如果你指定了自己的资源组供 Azure 映像生成器使用,则在映像生成启动之前,该资源组必须为空。 这意味着,若要出于此目的重复使用现有资源组,只需删除其中的所有资源即可。 或者,如果需要保留这些项,可以在模板创建的“生成属性”选项卡上指定另一个新资源组。
脚本不可用
如果你看到消息“资源 <URI> 不可用”。请确认该文件存在并且映像生成器可以访问它,检查脚本的统一资源标识符 (URI)。 它必须是公开可用的位置,例如 GitHub 或 Web 服务。
Azure Compute Gallery VM 映像定义生成不匹配
如果你看到消息“验证失败:Hyper-V 版本验证出错(不支持多个 Hyper-V 版本的交叉生成)。提供的 SIG:<资源 ID> 具有与源映像<版本>不同的 Hyper-V 生成<版本>”,请确保源映像的生成与为 Azure Compute Gallery VM 映像定义指定的生成相同。
选择要使用的映像时,将显示源映像的生成。 可以在 Azure 门户、Azure CLI(使用 az sig image-definition list 参考命令)或 PowerShell(使用 Get-AzGalleryImageDefinition cmdlet)中检查 VM 映像定义的生成。
未针对给定的子网禁用 PrivateLinkService 网络策略
如果收到指明“未针对给定的子网禁用 PrivateLinkService 网络策略”的错误消息,则需要在子网上禁用专用服务策略。 有关详细信息,请参阅在子网上禁用专用服务策略。
在 Windows 10 映像上安装或启用其他语言时出现问题
可以通过使用 Install-Language PowerShell cmdlet 的自定义映像模板添加其他语言。 如果在 Windows 10 企业版和 Windows 10 企业版多会话映像上安装或启用其他语言时遇到问题,请确保:
未禁用在映像上按组策略安装语言包。 可在以下位置找到策略设置:
“计算机配置”>“管理模板”>“控制面板”>“区域和语言选项”>“限制语言包和语言功能安装”
“用户配置”>“管理模板”>“控制面板”>“区域和语言选项”>“限制语言包和语言功能安装”
你的会话主机可以连接到 Windows 更新以下载语言和最新的累积更新。
无法从 Azure 门户中的“源映像”选项卡前进。
在 Azure 门户中创建自定义映像模板时,如果选择“Azure Compute Gallery”作为源类型,则可能无法从“源映像”选项卡前进。 选项卡名称旁边会显示一个红色的 X
。 解决方法是,选择“上一个”以返回到“基本信息”选项卡,然后选择“下一个”来返回到“源映像”选项卡。现在应该能够前进到下一个选项卡,选项卡名称旁边会显示一个绿色复选标记。
操作 Azure 容器组期间发生授权错误
由于依赖于 Azure 映像生成器,自定义映像模板需要在你的订阅上注册 Microsoft.ContainerInstance
资源提供程序。 如果收到错误 The client '<GUID>' with object id '<GUID>' does not have authorization to perform action 'Microsoft.ContainerInstance/register/action' over scope '/subscriptions/<subscription ID>' or the scope is invalid
,则需要在订阅上注册 Microsoft.ContainerInstance
资源提供程序。 注册资源提供程序后,再次尝试该操作。 有关如何检查其注册状态以及如何注册这些提供程序(如果需要)的信息,请参阅 Azure 资源提供程序和类型。