如何排查卡在“待处理”状态的 AppStream 2.0 映像生成器问题?

2 分钟阅读
0

当我尝试启动 Amazon AppStream 2.0 映像生成器时,状态停留在“待处理”状态,且不能更改为“正在运行”。

解决方法

映像生成器和实例集实例最多需要 25 分钟才能可用并变成“正在运行”状态。如果您的映像生成器在 25 分钟后仍处于“待处理”状态,请参阅以下常见原因和问题排查步骤。

注意:如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI。

弹性网络接口被删除或分离

缺少网络接口可能会使映像生成器无法完成启动工作流,从而使状态卡在待处理状态。

要验证您的网络接口的状态,请打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,然后选择 Network Interfaces (网络接口)。或者,要使用 AWS CLI,请输入以下命令:

aws ec2 describe-network-interfaces --filters 'Name=description,Values="AppStream 2.0 - image-builder:*"'

如果网络接口缺少或分离,请从上一个工作映像启动一个新的映像生成器。或者,使用 AWS 提供的基础映像。

注意:您可以检查 AWS CloudTrail 日志中是否有与网络接口删除或分离相关的事件详细信息,包括 eventTime 和 userIdentity。

PowerShell 策略限制

映像生成器卡在“待处理”状态的另一个原因是 PowerShell 执行策略过于严格。在创建映像之前将此策略设置为 Restricted(受限)会导致映像生成器卡在“待处理”状态。此外,其他 AS2 资源在下次启动时将无法启动。这是由于 Restricted(受限)策略阻止任何脚本(例如 SSM、Sysprep 或 reg 密钥设置)运行。您可以改用 AllSignedRemoteSigned 策略避免这个问题。

使用 AppX 软件包的应用程序

使用 AppX 软件包的应用程序(例如 Adobe Creative Cloud)可能会导致 Sysprep 失败,映像生成器卡在“待处理”状态。

在完成映像创建过程的最后一步之前,以管理员身份在 PowerShell 中运行以下命令。

要获取设备上 AppX 软件包的列表,请输入以下命令:

Get-AppxPackage | select Name, PackageFullName

要删除特定的 AppX 软件包,请输入以下命令。将 AppXpackageName 替换为您要删除的软件包,如上一个命令的输出中所列:

Get-AppxPackage -AllUsers -Name AppXpackageName | Remove-AppxPackage -AllUsers

注意:映像生成器必须运行 Server 2019。-AllUsers 参数是在版本 1709 中添加的。映像生成器中的 Server 2016 在版本 1607 上运行,并返回带有 -AllUsers 参数的错误。

有关更多信息,请参阅 Microsoft 网站上的 Get-AppxPackage

设备驱动程序冲突或不正确

映像生成器预安装了所有必要的驱动程序。如果用户安装冲突或不正确的驱动程序,映像生成器可能会停留在“待处理”状态。

由于映像生成器无法到达,无法卸载冲突或不正确的驱动程序。要修复这一问题,请从最近的自定义映像中或者使用 Amazon 提供的其中一个基础映像启动新的映像生成器

网络接口限制

您的 AWS 账户可能已达到该区域的网络接口限制。有关限制和如何请求增加数量的更多信息,请参阅 Amazon VPC 限额

Sysprep 答案文件自定义问题

最佳实践是不自定义 Sysprep Unattend 答案文件。不正确的自定义可能会阻止映像生成器正确启动并卡在欢迎屏幕上,从而干扰 Windows 启动过程。

要修复这一问题,请从最近的自定义映像中或者使用 Amazon 提供的其中一个基础映像启动新的映像生成器

IPv6 已关闭

如果您在关闭 IPv6 的情况下创建映像,映像生成器将停留在“待处理”状态。要修复这一问题,请从最近的自定义映像中或者使用 Amazon 提供的其中一个基础映像启动新的映像生成器

端口可用性

确认没有使用以下端口安装任何应用程序:

  • 端口 8300 上的入站 TCP,用于建立流式处理连接。
  • 端口 8000 和 8443 上的入站 TCP,用于通过 AppStream 2.0 管理流式处理实例。

有关更多信息,请参阅管理网络接口 IP 地址范围和端口

要允许访问 Amazon EC2 元数据服务,所有流式处理实例都要求端口 80(HTTP)对 IP 地址 169.254.169.254 开放。如果配置了代理,该代理必须排除 169.254.169.254。有关详细信息,请参阅客户网络接口端口

杀毒软件异常

杀毒软件可以阻止映像生成器需要的文件和端口。考虑在以下文件夹路径中添加异常情况:

  • %PROGRAMFILES%\Amazon\*
  • %PROGRAMFILES%\NICE\*
  • %PROGRAMFILES%\nodejs\*
  • %PROGRAMFILES%\Internet Explorer\*
  • C:\Windows\*

这些文件夹路径与以下服务相对应:

  • AWSLiteAgent
  • AmazonSSMAgent
  • Ec2Config
  • PhotonAgent
  • PhotonAgentWebServer(侦听端口 8443)
  • DcvServer(侦听端口 8300)
  • QWAVE

AWS CLI 凭证作为系统环境变量

将 AWS CLI 凭证设置为系统环境变量可以防止 AppStream 2.0 创建映像。有关更改您的队列实例间的系统环境变量的说明,请参阅更改系统环境变量

默认语言被更改为不受支持的语言

您可以为您的 AppStream 2.0 流式处理会话配置默认的区域设置,包括显示语言。如果您将默认语言更改为不支持的语言,映像生成器将卡在“待处理”状态。要查看 AppStream 2.0 目前支持的语言,请参阅指定默认显示语言

已删除或重命名本地管理员账户

AppStream 2.0 不支持重命名或删除本地管理员账户。如果重命名或删除此账户,映像创建将会失败。

对于加入域的映像生成器,如果组策略已停用、删除或重命名本地管理员账户,则可以更新组策略对象 (GPO)。

如果 GPO 未更新本地管理员账户,则从最近的自定义映像启动新的映像生成器。或者,使用 Amazon 提供的基础映像。

通知代码(加入域的映像生成器)

要查看通知,请打开 AppStream 2.0 控制台,然后从导航窗格中选择 Images (映像)。从 Image Builder (映像生成器) 选项卡中,选择您的映像生成器,然后选择 Notifications (通知) 选项卡。有关更多信息,请参阅通知代码问题排查

  • DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN 映像生成器实例无法连接 Active Directory 域。这将阻止映像生成器完成启动工作流。为确保网络连接,确认您的 VPC、子网和安全组设置。在 VPC 的 DHCP 选项集部分下确认 VPC DNS 服务器配置正确。域名服务器通常设置为负责您的域的域控制器或 DNS 服务器的 IP 地址。有关更多信息,请参阅 DHCP 选项集
  • DOMAIN_JOIN_ERROR_FILE_NOT_FOUND 组织单位(OU)识别名无效。AppStream 2.0 计算机对象必须放置在一个组织单位中,且识别名必须以 OU= 开头。有关更多信息,请参阅查找组织单位识别名

防火墙和网络配置(加入域的映像生成器)

使用 AppStream 2.0 控制台在您的映像生成器中添加目录配置对象之前,确认防火墙和网络配置正确。然后执行以下步骤。

1.    从您的映像生成器中打开 PowerShell 窗口,然后运行以下命令:

Test-NetConnection -ComputerName yourdomain.exampleco.com -Port 389 -InformationLevel "Detailed"
Test-NetConnection -ComputerName yourdomain.exampleco.com -Port 88 -InformationLevel "Detailed"
Test-NetConnection -ComputerName yourdomain.exampleco.com -Port 53 -InformationLevel "Detailed"

2.    对于每个命令的输出,请验证 TcpTestSucceeded 为 True。这表示您可以达到所需的端口来加入域。有关详细信息,请参阅 Microsoft 网站上的 Test-NetConnection

3.    从相同的 PowerShell 窗口中,运行 Resolve-DnsName 命令以确认您可以查找域名:

Resolve-DnsName -Name yourdomain.exampleco.com

或者,下载并运行 Microsoft PortQryUI 工具以验证所有需要的端口。

新的计算机对象未创建(加入域的映像生成器)

在 Active Directory 中,验证是否已在正确的组织单位(OU)中创建了新的计算机对象。

如果有新对象,则映像生成器实例很快将可用。

如果计算机对象未创建,则映像生成器将停留在“待处理”状态。要排查此问题,请先确认已授予所有必需的服务账户权限。然后,验证 AppStream 2.0 Directory Config 对象中的以下目录配置详细信息正确:

  • 目录名称(目录的完全限定域名)
  • 服务账户用户名和密码
  • 组织单位(OU)识别名

相关信息

如何创建 AppStream 2.0 映像并将其部署到我的实例集?

使用 Microsoft AppLocker 管理 Amazon AppStream 2.0 上的应用程序体验

相关视频

AWS 官方
AWS 官方已更新 1 年前