您可以在 /etc/vmware/config/usr/lib/vmware/config~/.vmware/config 配置文件中设置 USB 配置属性。

使用下面的语法在配置文件中设置 USB 配置属性。

viewusb.property1 = "value1"

通过使用 USB 配置属性,您可以控制是否重定向某些类型的设备。也可以使用筛选属性,以便包含或排除某些类型的设备。此外还提供了用于拆分复合设备的属性。

有些属性值要求提供 USB 设备的 VID(供应商 ID)和 PID(产品 ID)。要查找 VID 和 PID,可在 Internet 上以产品名称与 vidpid 的组合作为关键字进行搜索。或者,也可以在 Horizon Client 运行过程中将 USB 设备插入本地系统,然后在 /tmp/vmware-<current_user>/vmware-view-usbd-*.log 文件中查找。要设置此文件位置,可使用 /etc/vmware/config 文件中的 view-usbd.log.fileName 属性,例如:

 view-usbd.log.fileName = "/tmp/usbd.log"
重要说明: 重定向音频设备时,确保您的 Ubuntu 系统的内核为 3.2.0-27.43 或更高版本。如果无法升级到该内核版本,您也可以禁用音频设备的主机访问。例如,您可以将这行内容 " blacklist snd-usb-audio" 添加到 /etc/modprobe.d/blacklist.conf 文件的末尾处。如果您的系统不满足上述任一要求,当 Horizon Client 尝试重定向音频设备时,客户端系统可能会崩溃。音频设备默认进行重定向。

下表介绍了可用的 USB 配置属性。

表 1. USB 重定向的配置属性
策略名称和属性 说明

允许自动设备拆分

属性:

viewusb.AllowAutoDeviceSplitting

允许复合 USB 设备的自动拆分。

未定义默认值,相当于 false

Exclude Vid/Pid Device From Split(从拆分中排除 Vid/Pid 设备)

属性:

viewusb.SplitExcludeVidPid

从拆分中排除按供应商和产品 ID 指定的复合 USB 设备。该设置的格式为 vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2]...

您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:vid-0781_pid-55**

未定义默认值。

Split Vid/Pid Device(拆分 Vid/Pid 设备)

属性:

viewusb.SplitVidPid

将按供应商和产品 ID 指定的复合 USB 设备的组件视为单独设备。设置的格式为

vid-xxxx_pid-yyyy([exintf:zz[;exintf:ww ]])[;...]

可以使用 exintf 关键字通过指定接口号禁止重定向组件。您必须以十六进制格式指定 ID 号,以十进制格式(包含前导零)指定接口号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:vid-0781_pid-554c(exintf:01;exintf:02)

注: 如果复合设备包含自动排除的组件(例如鼠标和键盘组件),则 Horizon 不会自动包含您未明确排除的组件。您必须指定一个筛选策略(如 Include Vid/Pid Device)来包含这些组件。

未定义默认值。

Allow Audio Input Devices(允许音频输入设备)

属性:

viewusb.AllowAudioIn

允许音频输入设备进行重定向。

未定义默认值,相当于 false,因为默认情况下“实时音频-视频”功能用于音频输入和视频设备,USB 重定向不用于这些设备。

Allow Audio Output Devices(允许音频输出设备)

属性:

viewusb.AllowAudioOut

允许音频输出设备进行重定向。

未定义默认值,相当于 false

允许 HID

属性:

viewusb.AllowHID

允许除键盘或鼠标之外的输入设备进行重定向。

未定义默认值,相当于 true

Allow HIDBootable(允许可引导的 HID)

属性:

viewusb.AllowHIDBootable

允许开机时除键盘或鼠标之外的其他可用输入设备(又称为可引导的 hid 设备)进行重定向。

未定义默认值,相当于 true

允许设备描述符故障防护

属性:

viewusb.AllowDevDescFailsafe

即使 Horizon Client 未能获取配置/设备描述符,依然允许设备进行重定向。

要在设备出现配置/描述符问题时依然允许它进行重定向,可将其添加到 Include 筛选器中,如 IncludeVidPidIncludePath

未定义默认值,相当于 false

Allow Keyboard and Mouse Devices(允许键盘和鼠标设备)

属性:

viewusb.AllowKeyboardMouse

允许键盘以及集成指针设备(例如,鼠标、轨迹球或触摸板)进行重定向。

未定义默认值,相当于 false

Allow Smart Cards(允许智能卡)

属性:

viewusb.AllowSmartcard

允许智能卡设备进行重定向。

未定义默认值,相当于 false

Allow Video Devices(允许视频设备)

属性:

viewusb.AllowVideo

允许视频设备进行重定向。

未定义默认值,相当于 false,因为默认情况下“实时音频-视频”功能用于音频输入和视频设备,USB 重定向不用于这些设备。

禁用远程配置下载

属性:

viewusb.DisableRemoteConfig

在执行 USB 设备筛选时,禁用 Horizon Agent 设置。

未定义默认值,相当于 false

Exclude All Devices(排除所有设备)

属性:

viewusb.ExcludeAllDevices

禁止任何 USB 设备进行重定向。如果设置为 true,可以使用其他策略设置来允许对特定设备或设备系列进行重定向。如果设置为 false,可以使用其他策略设置来防止特定设备或系列设备进行重定向。

如果将 Horizon Agent 上的 Exclude All Devices 值设为 true,并将该设置传递到 Horizon Client,则 Horizon Agent 设置将覆盖 Horizon Client 设置。

未定义默认值,相当于 false

Exclude Device Family(排除设备系列)

属性:

viewusb.ExcludeFamily

禁止设备系列进行重定向。设置的格式为 family_name_1[;family_name_2]...

例如:bluetooth;smart-card

如果启用了自动设备拆分,Horizon 将检查复合 USB 设备的每个接口的设备系列以确定应排除哪些接口。如果禁用了自动设备拆分,Horizon 将检查整个复合 USB 设备的设备系列。

未定义默认值。

Exclude Vid/Pid Device(排除 Vid/Pid 设备)

属性:

viewusb.ExcludeVidPid

禁止具有指定供应商和产品 ID 的设备进行重定向。设置的格式为 vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]...

您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:vid-0781_pid-****;vid-0561_pid-554c

未定义默认值。

Exclude Path(排除路径)

属性:

viewusb.ExcludePath

禁止位于指定集线器或端口路径的设备进行重定向。设置的格式为 bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]...

您必须以十六进制格式指定总线和端口号。在路径中不能使用通配符。

例如:bus-1/2/3_port-02;bus-1/1/1/4_port-ff

未定义默认值。

Include Device Family(包含设备系列)

属性:

viewusb.IncludeFamily

包含可以进行重定向的设备系列。设置的格式为 family_name_1[;family_name_2]...

例如:storage

未定义默认值。

Include Path(包含路径)

属性:

viewusb.IncludePath

包含位于指定集线器或端口路径的可重定向设备。设置的格式为 bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]...

您必须以十六进制格式指定总线和端口号。在路径中不能使用通配符。

例如:bus-1/2_port-02;bus-1/7/1/4_port-0f

未定义默认值。

Include Vid/Pid Device(包含 Vid/Pid 设备)

属性:

viewusb.IncludeVidPid

包含具有指定供应商和产品 ID 的可重定向设备。设置的格式为 vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]...

您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:vid-0561_pid-554c

未定义默认值。

禁止自动转发设备系列

属性:

viewusb.ExAutoRedirectFamily

禁止设备系列被自动转发。设置的格式为 family_name_1[;family_name_2]...

例如:storage

未定义默认值。

禁止自动转发 Vid/Pid 设备

属性:

viewusb.ExAutoRedirectVidPid

禁止具有指定供应商和产品 ID 的设备被自动转发。设置的格式为 vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]...

您必须以十六进制格式指定 ID 号。可以使用通配符 (*) 代替 ID 中的单个数字。

例如:vid-0561_pid-554c

未定义默认值。

USB 重定向示例

每个示例后都有对 USB 重定向效果的描述。

  • 将大多数设备加入鼠标设备系列。

    viewusb.IncludeFamily = "mouse" 
    viewusb.ExcludeVidPid = "Vid-0461_Pid-0010;Vid-0461_Pid-4d20"

    该示例中的第一个属性指示 Horizon Client 允许将鼠标设备重定向到 Horizon 桌面。第二个属性覆盖第一个属性,指示 Horizon Client 将两种特定鼠标设备保留为本地状态,不进行重定向。

  • 启用自动设备拆分,但是将其中一个特定设备从拆分操作中排除。对于另外一个特定设备,将其中的一个组件保留为本地状态,其他组件重定向到远程桌面:

    viewusb.AllowAutoDeviceSplitting = "True"
    viewusb.SplitExcludeVidPid = "Vid-03f0_Pid-2a12"
    viewusb.SplitVidPid = "Vid-0911_Pid-149a(exintf:03)"
    viewusb.IncludeVidPid = "Vid-0911_Pid-149a"

    复合 USB 设备包含两台或更多设备,例如视频输入设备和存储设备。本例中的第一个属性启用了对复合设备的自动拆分。第二个属性则从拆分操作中排除了指定的复合 USB 设备 (Vid-03f0_Pid-2a12)。

    第三行指示 Horizon Client 将其他复合设备 (Vid-0911_Pid-149a) 的组件视为独立的设备,但禁止以下组件进行重定向:接口号为 03 的组件。该组件保留为本地状态。

    由于该复合设备包含一个默认情况下通常会排除的组件(例如,鼠标或键盘),因此有必要添加第四行,从而使复合设备 Vid-0911_Pid-149a 的其他组件可以重定向到 Horizon 桌面。

    前三项属性属于拆分属性。最后一项属性为筛选属性。筛选属性的处理顺序先于拆分属性。

重要说明: 这些客户端配置属性可能与针对远程桌面上的 Horizon Agent 设置的相应策略合并,也可能被其覆盖。有关客户端上的 USB 拆分和筛选属性如何与 Horizon Agent USB 策略配合工作的信息,请参阅 《在 Horizon 中配置远程桌面功能》文档中有关使用策略来控制 USB 重定向的主题。