6

I'm running VirtualBox Version 4.2.0 r80737.

I have a USB keyboard that I usually just want filtered to the VirtualBox, but occasionally I want to free it up so that I can use it in the host OS as well. I was looking at VBoxManage in the documentation, and saw the promising looking "usbfilter" option, but when I tried usbfilter add/modify I got the error:

The machine 'your name here' is already locked for a session (or being unlocked)

So it seems that it doesn't affect the running machine (at least not through that option). I really just want to be able to programatically do the same thing as going through the menu to Devices > USB Devices > USB Keyboard [0001].

I don't care whether it's from the host or guest OS that I can access it.

Is this possible, and if so, how can I do it?

Kenster
  • 8,620
Wayne Werner
  • 2,463

2 Answers2

7

This is done with usbattach command as described in manual.

VBoxManage controlvm <VM_ID> usbattach <uuid>|<address>
VBoxManage controlvm <VM_ID> usbdetach <uuid>|<address>

In order to find your VM ID, run VBoxManage list vms

For list of USB device UUIDs, run VBoxManage list usbhost (you may need to add sudo)

1

The other answer didn't work "out of the box" so here's what I got from his answer combined with looking at vboxmanage help:

(You may need to do: vboxmanage.exe, or cd \your\vbox\dir .\vboxmanage)

vboxmanage list vms
# Find your vm in the list and note the left string (ex "some_machine_123412341234_12345")
vboxmanage list usbhost
# Find your device in that list and note the uuid
vboxmanage controlvm "some_machine_123412341234_12345" usbattach "DEVICE_UUID"

Or to detach:

vboxmanage controlvm "some_machine_123412341234_12345" usbdetach "DEVICE_UUID"
csga5000
  • 111