By default, VMWare does not allow Human Interface Devices to pass through the View client. Fortunately, they have provided a way to force the issue.

5 Steps total

Step 1: Why?

First, why would you want to do this? Simple, using GPO, you can easily enable USB redirection for composite USB devices. A good example of this is the Philips Speechmike family. Many include trackballs as well as microphones. The VMWare client sees the entire package as only a trackball, and excludes it from forwarding. If it did forward, the mouse would only work with the View session, and even then, the cursor would not actually move. It’s a sensible limitation, but if you use Dragon Naturally Speaking within a View environment, and want to use your Speechmike with it, you’ll need the microphone to come across.

Step 2: Let me tell you about my friends, VIDdy and PIDdy.

The biggest hurdle to clear is finding your device’s VID (vendor identification number) and PID (product identification number). To find this, locate your device in Windows Device Manager, then under the Details tab, change to the Hardware Ids selection. Some devices have different Property selections that you’ll have to hunt through. You’re looking for a property that looks like this:

Step 3: GPOs!

After installing the View Client, start your local Group Policy editor (start, run gpedit.msc) and add the VMWare View Client administrative template by right clicking the Administrative Template and clicking on Add/Remove Administrative Template. The .adm file is located in C:\Program Files\VMware\VMware View\Client\extras. You can set this for individual users as well, but I’d rather not repeat this for every user on the computer.
Once the admin template is added, expand Administrative Templates, Classic Administrative Templates, VMWare View Client Configuration and click on (highlight) View USB Configuration. The path should look like the attachment.

Step 4: VIDs and PIDs and underscores, oh my!

Once in there, you’ll see quite a few different areas to play in. There is a lot of power here, so if you’re planning on getting really dirty, make sure you test first. More specifically, we are really only interested in three: Allow Auto Device Splitting, Split Vid/Pid Device and Include Vid/Pid Device.

Splitting means exactly what it sounds like. You are breaking down the individual components of a composite device, and leaving one of them behind. The device(s) and interface(s) that you specify in Split Vid/Pid Devices are the one(s) that you will be leaving local. The rest of the device will get forwarded. The syntax of the GPO is very specific, fortunately, VMWare provides some good examples. One other thing to try is Allow Auto Device Splitting. This prevents the client from treating composite devices as singular. It can cause issues with some devices, as they rely on being composite, but it can save time.

The main one we need to worry about is the Include Vid/Pid Device setting. This will force the View Client to include a device that it would normally exclude. After opening the GPO, enable it, and put in your VID and PID. It should look like this:

vid-0911_pid-0BB8

Again, the syntax is specific, if you have multiple, use semicolons to separate.
That’s it on the PC side. Using GPO, you can push this out to your entire domain, and have all of the clients in your domain push the same devices through.

Step 5: But what if I wear a fedora?

Mac users? Unfortunately, there is no way (I am aware of) to accomplish this on all clients in one fell swoop, but it is possible to implement on a one by one basis via terminal commands.

Using the ‘defaults’ command, you can write to the software domains on a Mac. The VMWare documentation refers to a domain called ‘com.vmware.viewusb’, however, on the Macs that I’ve accomplished this on, this domain does not exist. There is a domain called ‘com.vmware.view’, which we will be writing to. You can check the existing domains by using the ‘defaults domains’ command.

To keep the same interface on the composite device we used above local, we use this command:

References

1 Comment

I'm not sure about previous versions of View but in 6.0.1 the ADM's are located in the Extras zip bundle and not automatically installed with the client, agent or integrated into AD as a schema extension (would be nice!).