You can set USB configuration properties in the /etc/vmware/config, /usr/lib/vmware/config, and ~/.vmware/config configuration files.
Use the following syntax to set USB configuration properties in the configuration files.
viewusb.property1 = "value1"
With USB configuration properties, you can control whether certain types of devices are redirected. Filtering properties are also available to enable you to include or exclude certain types of devices. Properties for splitting composite devices are also provided.
Some property values require the VID (vendor ID) and PID (product ID) for a USB device. To find the VID and PID, you can search on the Internet for the product name combined with vid and pid. Alternatively, you can look in the /tmp/vmware-<current_user>/vmware-view-usbd-*.log file after you plug in the USB device to the local system when Horizon Client is running. To set the location of this file, use the view-usbd.log.fileName property in the /etc/vmware/config file, for example:
view-usbd.log.fileName = "/tmp/usbd.log"
The following table describes the available USB configuration properties.
Policy Name and Property | Description |
---|---|
Allow Auto Device Splitting Property: viewusb.AllowAutoDeviceSplitting |
Allow the automatic splitting of composite USB devices. The default value is undefined, which equates to false. |
Exclude Vid/Pid Device From Split Property: viewusb.SplitExcludeVidPid |
Excludes a composite USB device specified by vendor and product IDs from splitting. The format of the setting is vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2]... You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID. For example: vid-0781_pid-55** The default value is undefined. |
Split Vid/Pid Device Property: viewusb.SplitVidPid |
Treats the components of a composite USB device specified by vendor and product IDs as separate devices. The format of the setting is vid-xxxx_pid-yyyy([exintf:zz[;exintf:ww ]])[;...] You can use the exintf keyword to exclude components from redirection by specifying their interface number. You must specify ID numbers in hexadecimal, and interface numbers in decimal including any leading zero. You can use the wildcard character (*) in place of individual digits in an ID. For example: vid-0781_pid-554c(exintf:01;exintf:02)
Note: If the composite device includes components that are automatically excluded, such as mouse and keyboard components, then
Horizon Client does not automatically include the components that you have not explicitly excluded. You must specify a filter policy such as
Include Vid/Pid Device to include those components.
The default value is undefined. |
Allow Audio Input Devices Property: viewusb.AllowAudioIn |
Allows audio input devices to be redirected. The default value is undefined, which equates to false because the Real-Time Audio-Video feature is used for audio input and video devices, and USB redirection is not used for those devices by default. |
Allow Audio Output Devices Property: viewusb.AllowAudioOut |
Allows audio output devices to be redirected. The default value is undefined, which equates to false. |
Allow HID Property: viewusb.AllowHID |
Allows input devices other than keyboards or mice to be redirected. The default value is undefined, which equates to true. |
Allow HIDBootable Property: viewusb.AllowHIDBootable |
Allows input devices other than keyboards or mice that are available at boot time (also known as hid-bootable devices) to be redirected. The default value is undefined, which equates to true. |
Allow Device Descriptor Failsafe Property: viewusb.AllowDevDescFailsafe |
Allows devices to be redirected even if the Horizon Client fails to get the config/device descriptors. To allow a device even if it fails the config/desc, include it in the Include filters, such IncludeVidPid or IncludePath. The default value is undefined, which equates to false. |
Allow Keyboard and Mouse Devices Property: viewusb.AllowKeyboardMouse |
Allows keyboards with integrated pointing devices (such as a mouse, trackball, or touch pad) to be redirected. The default value is undefined, which equates to false. |
Allow Smart Cards Property: viewusb.AllowSmartcard |
Allows smart-card devices to be redirected. The default value is undefined, which equates to false. |
Allow Video Devices Property: viewusb.AllowVideo |
Allows video devices to be redirected. The default value is undefined, which equates to false because the Real-Time Audio-Video feature is used for audio input and video devices, and USB redirection is not used for those devices by default. |
Disable Remote Configuration Download Property: viewusb.DisableRemoteConfig |
Disallows the use of Horizon Agent settings when performing USB device filtering. The default value is undefined, which equates to false. |
Exclude All Devices Property: viewusb.ExcludeAllDevices |
Excludes all USB devices from being redirected. If set to true, you can use other policy settings to allow specific devices or families of devices to be redirected. If set to false, you can use other policy settings to prevent specific devices or families of devices from being redirected. If you set the value of Exclude All Devices to true on Horizon Agent, and this setting is passed to Horizon Client, the Horizon Agent setting overrides the Horizon Client setting. The default value is undefined, which equates to false. |
Exclude Device Family Property: viewusb.ExcludeFamily |
Excludes families of devices from being redirected. The format of the setting is family_name_1[;family_name_2]... For example: bluetooth;smart-card If you have enabled automatic device splitting, Horizon Client examines the device family of each interface of a composite USB device to decide which interfaces should be excluded. If you have turned off automatic device splitting, Horizon Client examines the device family of the whole composite USB device. The default value is undefined. |
Exclude Vid/Pid Device Property: viewusb.ExcludeVidPid |
Excludes devices with specified vendor and product IDs from being redirected. The format of the setting is vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]... You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID. For example: vid-0781_pid-****;vid-0561_pid-554c The default value is undefined. |
Exclude Path Property: viewusb.ExcludePath |
Exclude devices at specified hub or port paths from being redirected. The format of the setting is bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]... You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths. For example: bus-1/2/3_port-02;bus-1/1/1/4_port-ff The default value is undefined. |
Include Device Family Property: viewusb.IncludeFamily |
Includes families of devices that can be redirected. The format of the setting is family_name_1[;family_name_2]... For example: storage The default value is undefined. |
Include Path Property: viewusb.IncludePath |
Include devices at a specified hub or port paths that can be redirected. The format of the setting is bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]... You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths. For example: bus-1/2_port-02;bus-1/7/1/4_port-0f The default value is undefined. |
Include Vid/Pid Device Property: viewusb.IncludeVidPid |
Includes devices with specified vendor and product IDs that can be redirected. The format of the setting is vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]... You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID. For example: vid-0561_pid-554c The default value is undefined. |
Exclude Automatic Forwarding of Device Families Property: viewusb.ExAutoRedirectFamily |
Exclude families of devices from being forwarded automatically. The format of the setting is family_name_1[;family_name_2]... For example: storage The default value is undefined. |
Exclude Automatic Forwarding of Vid/Pid Device Property: viewusb.ExAutoRedirectVidPid |
Excludes devices with specified vendor and product IDs from being forwarded automatically. The format of the setting is vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]... You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID. For example: vid-0561_pid-554c The default value is undefined. |
USB Redirection Examples
Each example is followed by a description of the effect on USB redirection.
-
Include most devices within the mouse device family.
viewusb.IncludeFamily = "mouse" viewusb.ExcludeVidPid = "Vid-0461_Pid-0010;Vid-0461_Pid-4d20"
The first property in this example tells Horizon Client to allow mouse devices to be redirected to a remote desktop. The second property overrides the first and tells Horizon Client to keep two specific mouse devices local and not redirect them.
-
Turn on automatic device splitting, but exclude one particular device from splitting. For another particular device, keep one of its components local and redirect the other components to the remote desktop:
viewusb.AllowAutoDeviceSplitting = "True" viewusb.SplitExcludeVidPid = "Vid-03f0_Pid-2a12" viewusb.SplitVidPid = "Vid-0911_Pid-149a(exintf:03)" viewusb.IncludeVidPid = "Vid-0911_Pid-149a"
Composite USB devices consist of a combination of two or more devices, such as a video input device and a storage device. The first property in this example turns on automatic splitting of composite devices. The second property excludes the specified composite USB device (Vid-03f0_Pid-2a12) from splitting.
The third line tells Horizon Client to treat the components of a different composite device (Vid-0911_Pid-149a) as separate devices but to exclude the following component from being redirected: the component whose interface number is 03. This component is kept local.
Because this composite device includes a component that is ordinarily excluded by default, such as a mouse or keyboard, the fourth line is necessary so that the other components of the composite device Vid-0911_Pid-149a can be redirected to the remote desktop.
The first three properties are splitting properties. The last property is a filtering property. Filtering properties are processed before splitting properties.