您可以在 /etc/vmware/config、/usr/lib/vmware/config 和 ~/.vmware/config 配置文件中设置 USB 配置属性。
使用下面的语法在配置文件中设置 USB 配置属性。
viewusb.property1 = "value1"
通过使用 USB 配置属性,您可以控制是否重定向某些类型的设备。也可以使用筛选属性,以便包含或排除某些类型的设备。此外还提供了用于拆分复合设备的属性。
有些属性值要求提供 USB 设备的 VID(供应商 ID)和 PID(产品 ID)。要查找 VID 和 PID,可在 Internet 上以产品名称与 vid 和 pid 的组合作为关键字进行搜索。或者,也可以在 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"
下表介绍了可用的 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 筛选器中,如 IncludeVidPid 或 IncludePath。 未定义默认值,相当于 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 桌面。
前三项属性属于拆分属性。最后一项属性为筛选属性。筛选属性的处理顺序先于拆分属性。