

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 限定 USB 设备以用于流应用程序
<a name="qualify-usb-devices"></a>

有两种方法可以指定您的用户可以将哪些 USB 设备重定向到其 WorkSpaces 应用程序流媒体实例：

**注意**  
目前，只有 Windows WorkSpaces 应用程序流式传输实例支持 USB 重定向。macOS 客户端不支持该功能。
+ 可以在保存于映像上的配置文件中创建 USB 设备筛选器字符串。此方法只能用于始终在线和按需实例集。
+ 您可以使用 AWS 管理控制台或 `CreateFleet` API 在创建队列时指定 USB 设备筛选字符串。有关这些字符串的详细信息，请参阅下一节。此方法只能用于弹性实例集。

您可以在 WorkSpaces 应用程序映像上创建一个文件，指定用户可以为其流媒体应用程序提供哪些 USB 设备。要限定您用户的 USB 设备以便它们可用于流应用程序，请执行以下步骤。

**注意**  
出于安全考虑，只能对来自经批准的可信来源的 USB 设备进行认证。对所有通用设备或设备类别进行认证可能会允许将未经批准的设备与您的流应用程序一起使用。

1. 如果您还没有这样做，请安装 WorkSpaces 应用程序客户端。有关信息，请参阅[安装和配置 WorkSpaces 应用程序客户端](install-configure-client.md)。

1. 将要限定的 USB 设备连接到您的计算机。

1. 导航到 **C:\$1Users\$1 < logged-in-user >\$1AppData\$1 Local\$1 AppStreamClient**，然后双击 **dcvusblist.exe**。

1. 在 **DCV - USB devices (DCV – USB 设备)** 对话框中，将显示连接到您的本地计算机的 USB 设备列表。**Filter (筛选条件)** 列将显示每个 USB 设备的筛选条件字符串。右键单击要启用的 USB 设备的列表项，然后选择 **Copy filter string (复制筛选条件字符串)**。

1. 在您的桌面上，选择 Windows **开始**按钮，然后搜索记事本。双击**记事本**以打开一个新文件，将筛选条件字符串复制到该文件中，然后保存它。稍后，您将使用筛选条件字符串来限定 USB 设备。

1. 启动一个新映像生成器。有关更多信息，请参阅 [启动映像生成器来安装和配置流应用程序](tutorial-image-builder-create.md)。

1. 图像生成器处于 “**运行**” 状态后，执行以下步骤以创建直播网址并使用 WorkSpaces 应用程序客户端连接到图像生成器。

   1. 在列表中选择映像生成器后，依次选择 **Actions (操作)** 和 **Create streaming URL (创建流式传输 URL)**。

   1. 在 **Create streaming URL (创建流式传输 URL)** 对话框中，选择 **Copy link (复制链接)**，然后将 Web 地址复制并粘贴到单独的文件中供以后使用。您将在步骤 12 中使用此 URL 重新连接到映像生成器。

   1. 选择 **Launch in Client (在客户端中启动)**。

   1. 如果 “**启动应用程序**” 对话框打开并提示您在打开链接时选择要使用的应用程序，请选择 **Amazon AppStream**，“**打开” 链接**。为防止该对话框在您下次执行此步骤以连接到映像生成器时显示，请选中 **Remember my choice for amazonappstream links (记住我对 amazonappstream 链接的选择)** 复选框。

   1. 如果 A WorkSpaces pplications 客户端显示指向 AWS 客户协议、 AWS 服务条款和 AWS 隐私声明的链接以及第三方通知，请查看这些信息，然后选择 “**完成**”。

   1. 如果显示客户端登录页面，则 Web 地址字段将预填充流式传输 URL。选择**连接**。

   1. 如果出现提示，请以管理员身份登录到映像生成器。

1. 连接到映像生成器后，如果您的 USB 设备要求您安装驱动程序才能使用，请在映像生成器上下载并安装驱动程序。例如，如果您使用 Connexion 3D 鼠标，则必须在映像生成器上下载并安装所需的 Connexion 驱动程序。

1. 在您的映像生成器桌面上，选择 Windows **开始**按钮，然后搜索记事本。右键单击**记事本**，然后选择**以管理员身份运行**。

1. 依次选择 **File (文件)** 和 **Open (打开)**，然后打开以下文件：`C:\ProgramData\Amazon\Photon\DCV\usb_device_allowlist.txt`。您也可以在 `usb_device_allowlist.txt` 文件中使用通配符表达式来允许整个设备类别或来自特定制造商的所有设备。

1. 将筛选条件字符串从本地计算机复制到映像生成器。**特定 USB 设备的筛选字符串是以下字段的逗号分隔字符串：“**名称**”、“**基类**”、“**协议”、“**ID 供应商”、“ID** **产品**” **SubClass**、“**Suppor **t Autoshar** e” 和 “跳过重置”。**有关这些字符串的详细信息，请参阅[使用 USB 设备筛选条件字符串](USB-device-filter-strings.md)。

1. 断开与您的映像生成器的连接，重新启动它，然后使用 WorkSpaces 应用程序客户端重新连接到它。为此，请打开 WorkSpaces 应用程序客户端，将您在步骤 7 中创建的直播 URL 粘贴到客户端登录网址字段中，然后选择 **Connect**。

1. 在映像生成器上，测试您的 USB 设备以确认它按预期工作。

1. 您的用户必须先与其会话共享该设备，然后才能在 WorkSpaces 应用程序会话中使用 USB 设备。有关您可以向用户提供的旨在帮助其执行此任务的指导信息，请参阅[USB 设备](client-application-windows-how-to-share-usb-devices-user.md)。

1. 如果 USB 设备按预期使用映像生成器，请创建映像。有关更多信息，请参阅 [教程：使用 WorkSpaces 应用程序控制台创建自定义 WorkSpaces 应用程序镜像](tutorial-image-builder.md)。

1. 创建完映像后，更新您的 WorkSpaces 应用程序队列以使用新映像。

# 使用 USB 设备筛选条件字符串
<a name="USB-device-filter-strings"></a>

本节介绍可用于符合 WorkSpaces 应用程序流式传输会话条件的 USB 设备的筛选字符串。它还提供了有关如何使用这些字符串的指导信息。可使用以下筛选条件字符串：
+ `Name` – 默认情况下，此筛选条件字符串的值是设备的名称，但您可以指定自己的值。
+ `Base Class,SubClass,Protocol` – 设备的 USB 类别代码。有关更多信息，请参阅[已定义的类代码](https://www.usb.org/defined-class-codes)。
+ `ID Vendor (VID)` – 由 USB 组织分配给 USB 设备制造商的唯一标识符。
+ `ID Product (PID)` – 由制造商分配给 USB 设备的唯一标识符。
+ `Support Autoshare`— 让 WorkSpaces 应用程序客户端在直播会话开始时自动共享设备。将此值设置为 `1` 可允许自动设备共享。将此值设置为 `0` 可禁止自动设备共享。
+ `Skip Reset`— 默认情况下，当 WorkSpaces 应用程序通过流媒体会话共享 USB 设备时，该设备会被重置以确保其正常运行。但是，某些 USB 设备重置后在流式传输会话期间无法正常工作。为防止出现此问题，请将此筛选字符串的值设置为，`1`以指示 WorkSpaces 应用程序客户端在与流媒体会话共享设备时不要重置设备。要确保设备在与流式传输会话共享时重置，请将此值设置为 `0`。在设置 `Skip Reset` 的值时，请确保将 `Support Autoshare` 的值设置为 `0` 或 `1`。

 从本地计算机复制的筛选条件字符串特定于 USB 设备。在某些情况下，您可能希望允许整个类别的设备，而不是允许每个可能的 USB 设备。例如，您可能希望允许用户使用任何类型的 Wacom 设计平板电脑或使用任何 USB 大容量存储设备。在这种情况下，您可以为特定筛选条件字符串字段提供通配符。如果您不知道 USB 设备的 VID 和 PID，可以在 [USB ID 数据库](https://www.the-sz.com/products/usbid/index.php)中搜索此信息。

以下示例介绍了如何配置筛选条件字符串以在流式传输会话期间共享 USB 设备：
+ 在启动流式传输会话时自动允许所有大容量存储设备 – "Mass storage, 8, \$1, \$1, \$1, \$1,1,0"
+ 在启动流式传输会话时自动允许所有 Wacom 设备 – "Wacom tablets, 3, \$1, \$1, 1386, \$1,1,0"
+ 允许提供音频接口的所有设备 – "Audio, 1, \$1, \$1, \$1, \$1,1,0"
+ 允许设备 X，但在共享该设备时不要将其重置。不要在启动流式传输会话时自动共享设备 – "X, Y, \$1, \$1, 1386, \$1,0,1"